pentaho 单点登录 cas 单点登录,平台不需添加用户帐号

    各种baidu、google、biying之后实现了pentaho的cas单点登录,but,都有一个致命的问题:只有在pentaho中存在的用户才能正常登录。

问题放了一段时间,可最终还是要解决的。花了几天时间,总算解决了:pentaho中用户不存在也可登录,只要cas服务器登录成功即可。

    如果有兴趣知道怎么实现的可以往下慢慢看,只想快点搞定的可以直接去我的百度云盘下载附件,里面有安装手册,直接包含了如何配置cas单点登录。

云盘地址:http://pan.baidu.com/s/1dFMGwoT

最近项目中用到pentaho这个BI平台,用的是ce 6.1.0.1-196社区版。相信很多做pentaho单点登录的都已经配置过很多次cas了吧,如何配置就不再赘述了,挑重点讲下。

    截取cas配置文件里面才一段代码,相信很多人对这段配置不陌生吧!

<property name="userDetailsService">
     <pen:bean class="org.springframework.security.userdetails.UserDetailsService" />
</property>
注意 userDetailsService,这个是单点登录获取用户的,顶层接口只有一个方法:“loadUserByUsername”,更具用户名获取用户的,在pentaho里面有很多不同的实现,其中有一个是我们要用到的 org.pentaho.platform.security.userroledao.service.UserRoleDaoUserDetailsService,在这里我直接用如下配置替代了(有些配置 userDetailsService方式是和我一样的)

<property name="userDetailsService" ref="userDetailsService"/>

经过各种配置文件的找,发现userDetailsService的具体实现类配置在了“applicationContext-spring-security-jackrabbit.xml”这配置文件里面,具体路径配置过的人应该知道去那里找了。里面有这么一段xml配置

<bean id="userDetailsService" class="org.pentaho.platform.security.userroledao.service.UserRoleDaoUserDetailsService">
    <property name="userRoleDao">
      <ref bean="userRoleDaoTxn" />
    </property>
    ......
这里才是关键,为了实现单点登录,我更改了userDetailsService的具体实现类如下:

<bean id="userDetailsService" class="com.cn.custom.UserRoleDaoUserDetailsService">
    <property name="userRoleDao">
      <ref bean="userRoleDaoTxn" />
    </property>
    ......

“com.cn.custom.UserRoleDaoUserDetailsService”则是我在“org.pentaho.platform.security.userroledao.service.UserRoleDaoUserDetailsService”的基础上更改了点代码,判断,原始代码是加载用户,如果不存在就抛出异常,我却在这创建用户
  • 3
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值