java - Pentaho BA 7 社区版与 CAS 集成

标签 java spring-security pentaho cas

最近我正在致力于将Pentaho BA(BI服务器)7 CE与Cas服务器集成。我跟踪 Pentaho 官方文档。 https://help.pentaho.com/Documentation/5.1/0P0/150/010/060/000 但不幸的是它不起作用!实际上,在文档中很难找到第 5 节。我必须在配置中设置 casAuthenticationProvider.MemoryUserDetailsS​​ervice ?我从引擎得到的只是错误,指出它无法找到 CasAuthenticationProvider class 。我添加了所有必需的 JAR。错误是:

Cannot find class for publish type: INTERFACES specified on publish of   bean id: casAuthenticationProvider

最佳答案

我找到了线索,但我仍然无法使其发挥作用。

您应该下载 spring-securiry-cas-client 的 3.0.x 版本,而不是 2.0.5 作为 pentaho 文档中的指南。

我正在使用 3.0.8 版本进行测试。

启动似乎没问题,但有错误,但是当我尝试登录 pentaho 时,不重定向到 CAS,我收到此错误:

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.

添加注释:

我终于按照这个说明让它工作了:

  1. 使用: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

  2. 在文件 pentaho-spring-beans.xml 中注释掉以下行:

    <import resource="applicationContext-spring-security-superuser.xml"/> <import resource="applicationContext-pentaho-security-superuser.xml"/><br/> <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" />

因为pentaho 7.0默认使用jackrabbit。

  • 我没有执行 Pentaho 文档的第 5 项和第 8 项。
  • 现在应用程序重定向到 CAS,但现在我的证书出现了一些问题,但这与这个问题完全不同。我正在解决将 CAS 证书导入应用程序信任库的问题。

    最后说明: 我解决了我的证书问题,现在我有了带 CAS 的 Pentaho 7 CE。

    关于java - Pentaho BA 7 社区版与 CAS 集成,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41600674/

    相关文章:

    java - Spring WebClient - HTTP 错误状态的自定义响应回调

    java - Spring MVC : Getting date and time in specific format and persisting it

    java - 扩展 JASIG CAS 的授权

    Pentaho Spoon - 根据字段内容输出到多个文件

    apache - 我需要在我服务器上的同一个 Tomcat 7 中运行 Pentaho CE BI-Server 和 Geoserver

    java - 如何在java中将字符串转换为日期对象

    java - Spring BOOT资源

    spring - 如何修复 java.lang.NoSuchMethodError : org. keycloak.adapters.PreAuthActionsHandler

    spring - Grails Spring Security Facebook插件-“连接”按钮不会重定向到Facebook

    javascript - JSON.parse() 在 pentaho 的 javascript 中不起作用