为sakai配置单点登录

sakai:2.7.1
cas-server:3.4.3.1
cas-client:3.1.12

关于sakai如何配置单点登录官方有一篇教程,http://confluence.sakaiproject.org/display/~steve.swinsburg/CASifying+Sakai.不过里面使用的cas-client版本较低,目前cas官方最新版本已经是3.1.12。新版本和老版本差异极大,不可能再按照sakai官方给出的教程来配置cas,所以要么使用老版本的cas,要么去cas官方查看文档自己进行配置。我使用了3.1.12版本,为了便于以后查阅,特将配置过程记录下来。
通过web.xml进行配置:
通过编辑/webapp/sakai-login-tool/web-inf/web.xml文件添加如下filter:
首先配置Authentication Filter

<filter>
<filter-name>CAS Authentication Filter</filter-name>
<filter-class>org.jasig.cas.client.authentication.AuthenticationFilter</filter-class>
<init-param>
<param-name>casServerLoginUrl</param-name>
<param-value>https://yourdomain:port/cas/login</param-value>
</init-param>
<init-param>
<param-name>serverName</param-name>
<param-value>http://yourdomain:port/client</param-value>
</init-param>
</filter>

接着配置Validation Filter

<filter>
<filter-name>CAS Validation Filter</filter-name>
<filter-class>org.jasig.cas.client.validation.Cas10TicketValidationFilter</filter-class>
<init-param>
<param-name>casServerUrlPrefix</param-name>
<param-value>https://yourdomain:port/cas</param-value>
</init-param>
<init-param>
<param-name>serverName</param-name>
<param-value>https://yourdomain:port/clietn</param-value>
</init-param>
</filter>

然后配置HttpServletRequestWrapperFilter

<filter>
<filter-name>CAS HttpServletRequest Wrapper Filter</filter-name>
<filter-class>org.jasig.cas.client.util.HttpServletRequestWrapperFilter</filter-class>
</filter>

最后配置AssertionThreadLocalFilter

<filter>
<filter-name>CAS Assertion Thread Local Filter</filter-name>
<filter-class>org.jasig.cas.client.util.AssertionThreadLocalFilter</filter-class>
</filter>

可以看出配置实际上是挺简单的,和使用老版本其实差不多,只是对filter类的引用不同。需要指出的是上面filter的顺序是不可以改变的,另外第一步,第二步可以有多种选择,cas提供了多个不同的filter,具体可以参考官方文档。除了为web.xml添加相应的filter以外,还要配置sakai.properties文件,具体如下:

login.use.xlogin.to.relogin=false
top.login=false
container.login = true
loggedOutUrl=http://localhost:8080/cas/logout?service=http://localhost:8080

#如果同时使用cas登录和sakai内部登录,可以添加如下配置
xlogin.text=Login
xlogin.enabled=true

配置到这里基本已经完成,但是如果你直接使用cas-server中的war包,可能会遇到退出后不能跳转到指定的页面,这时需要修改下cas-server的配置:

<bean id="logoutController" class="org.jasig.cas.web.LogoutController"
p:centralAuthenticationService-ref="centralAuthenticationService"
p:logoutView="casLogoutView"
p:warnCookieGenerator-ref="warnCookieGenerator"
<!--添加followServiceRedirects-->
p:followServiceRedirects="true"
p:ticketGrantingTicketCookieGenerator-ref="ticketGrantingTicketCookieGenerator" />

注意使用的cas帐户必须存在于sakai中,否则无法正常登录。

详细参考cas官方文档:https://wiki.jasig.org/display/CASUM/Home

cas-client 3.1配置:https://wiki.jasig.org/display/CASC/CAS+Client+for+Java+3.1

到这一步对于cas的配置久涮完成了,当然如果需要实现单点登出则还需要进行一些配置,这里就不写出来了,官方有相应的文档。

对cas进行相应配置后,还需要配置ssl,如果不是安全连接,cas就不会发布TGC。如何配置ssl就不赘述了,网上有很多资料,这里

将我遇到的一个问题记录一下:

我的sakai和cas服务器是在统一个tomcat里,而另外一个web服务在别的机器上,在配置完成后发现会抛出如下异常

PKIX path building failed: unable to find valid certification path to requested target

虽然知道是数字签名的问题,但是实在不知到如何解决,后来在网上查到需要将数字签名导入,于是将有cas的数字签名通过如下命令导入到
另一台机子,才解决了问题。

keytool -import -trustcacerts -alias cng_domain -file cas.crt -keystore % $JAVA_HOME/jre/lib/scurity/cacerts

[思开社区 [url]http://www.sakai-edu.net[/url]]
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值