问题
Recently I am working to integrate Pentaho BA (BI server) 7 CE with Cas server . I follow up Pentaho official documentation . https://help.pentaho.com/Documentation/5.1/0P0/150/010/060/000 but unfortunately it doesn't work!! Actually it's kind of hard to find about section 5 in documentation . where I have to set casAuthenticationProvider.MemoryUserDetailsService in my configuration ? And all i've get from the engine is the error which says it couldn't found CasAuthenticationProvider class . I added all the necessary JARs . The error is :
Cannot find class for publish type: INTERFACES specified on publish of bean id: casAuthenticationProvider
回答1:
I found a clue, but I still can't make it work.
You should download a 3.0.x version of spring-securiry-cas-client, instead of 2.0.5 as the guide in pentaho documentation.
I am testing with version 3.0.8.
The start seems to be ok withour errors, but when i try to login pentaho don't redirect to CAS and i get this error:
16-Jan-2017 15:09:46.558 SEVERE [localhost-startStop-1] org.apache.catalina.loader.WebappClassLoaderBase.checkThreadLocalMapForLeaks The web application [pentaho] created a ThreadLocal with key of type [java.lang.InheritableThreadLocal] (value [java.lang.InheritableThreadLocal@218e39af]) and a value of type [org.springframework.security.core.context.SecurityContextImpl] (value [org.springframework.security.core.context.SecurityContextImpl@2b468485: Authentication: org.springframework.security.authentication.UsernamePasswordAuthenticationToken@2b468485: Principal: b653234b-34f4-4bff-ba21-01c1b884241f; Credentials: [PROTECTED]; Authenticated: false; Details: null; Not granted any authorities]) but failed to remove it when the web application was stopped. Threads are going to be renewed over time to try and avoid a probable memory leak.
Note Added:
I finally make it work with this instructions:
Using: http://repo1.maven.org/maven2/org/springframework/security/spring-security-cas-client/3.0.8.RELEASE/spring-security-cas-client-3.0.8.RELEASE.jar
Into the file pentaho-spring-beans.xml comment out the lines:
<import resource="applicationContext-spring-security-superuser.xml"/> <import resource="applicationContext-pentaho-security-superuser.xml"/>
<import resource="applicationContext-spring-security-memory.xml" /> <import resource="applicationContext-pentaho-security-memory.xml" /> <import resource="applicationContext-spring-security-ldap.xml" /> <import resource="applicationContext-pentaho-security-ldap.xml" /> <import resource="applicationContext-pentaho-security-jdbc.xml" /> <import resource="applicationContext-spring-security-jdbc.xml" />
Because pentaho 7.0 is using jackrabbit by default.
- I dind't do the item 5 and 8 of Pentaho documentation.
Now the application redirect to CAS, but now I have some problems with the certificates but that's totally different to the matter of this question. I am working on my problem to import CAS certificate to application truststore.
FINAL NOTE: I solved my certificate issue and now I have Pentaho 7 CE with CAS.
来源:https://stackoverflow.com/questions/41600674/integration-pentaho-ba-7-community-edition-with-cas