I am stuck as a point where I've to call pentaho API to authenticate user from a reactJS app. Both are on my local machine. Things I've tried so far:
a) Add a proxy in reactJS config file - package.json. issue - Code hits the localhost:3000 instead of localhost:8080
b) Launch Google chrome with out security and add header. link suggesting above 2 - How to allow CORS in react.js?
c) modify web.xml file on pentaho side and add cors jar file. issue - I downloaded cors jar file from Maven repository. Added the corresponding filter. Server is not launching after these changes. link - https://www.ease2code.com/embedding-pentaho-cde-dashboard-in-web-application/
Version - Pentaho 8.3 and tomcat 8
Error - Access to XMLHttpRequest at 'http://localhost:8080/pentaho/j_spring_security_check' from origin 'http://localhost:3000' has been blocked by CORS policy: No 'Access-Control-Allow-Origin' header is present on the requested resource.
This is working finally. We need to add 2 jar files:
Then update webapps\pentaho\WEB-INF\web.xml file to read these jars.
<filter-name>CORS</filter-name>
<filter-class>com.thetransactioncompany.cors.CORSFilter</filter-class>
<init-param>
<param-name>cors.allowOrigin</param-name>
<!-- Update specific domains instead of giving to all -->
<param-value>*</param-value>
</init-param>
<init-param>
<param-name>cors.supportsCredentials</param-name>
<param-value>false</param-value>
</init-param>
<init-param>
<param-name>cors.supportedHeaders</param-name>
<param-value>accept, authorization, origin</param-value>
</init-param>
<init-param>
<param-name>cors.supportedMethods</param-name>
<param-value>GET, POST, HEAD, OPTIONS</param-value>
</init-param>
</filter>
<filter-mapping>
<filter-name>CORS</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
Restart pentaho server. It will work