CAS服务器实验之五:单点退出测试

cas服务器配置

进行单点退出时,需要通过cas服务器的/logout路径执行退出,以便cas服务器清除对当前session的保持,并通知其他的应用程序用户已经退出。默认情况下,cas服务器执行退出之后,会转向自带的一个退出成功页面,而在实际的项目中,一般都不会使用这个默认的页面,所以需要对caslogoutController进行修改,启用它的退出转向。这样,在退出时,只要在url后面增加service参数指定退出之后的跳转页面,浏览器就会转向该跳转页面。

cas-servlet.xml进行修改,找到logoutController,将属性followServiceRedirects的值修改为true

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

 客户端的测试页面index.jsp中增加退出链接

<body>
 	首页,当前登录用户是:<%=session.getAttribute("User_Info") %>
	<br />
	<a href="http://localhost:8080/cas/logout?service=http://localhost:8081/cas-client1">退出</a>
</body>

 对客户端cas-client2进行相应的修改。

 

客户端的web.xml中增加单点退出的过滤器和监听器

在前面的单点登录中,已经增加过了过滤器和监听器,不再描述。需要注意的是,单点退出的过滤器需要配置在其他过滤器之前。

 

测试

 

重新启动cas-servercas-client1cas-client2进行测试。

 

首先使用http://localhost:8081/cas-client1进行登录,登录之后的页面如下:



 

在同一浏览器的新选项卡中输入cas-client2的地址http://localhost:8082/cas-client2,此时能正常访问到受保护的index.jsp

 

点击这里的“退出”链接,可以看到浏览器又跳转到了cas的登录页面。这里由于退出链接的service地址指向的是http://localhost:8081/cas-client1,而该路径是受安全保护的,所以又跳转到了cas的登录页面。

 

此时,对cas-client2的页面进行刷新,浏览器也跳转到了cas的登录页面,单点退出测试成功。

猜你喜欢

转载自dinguangx.iteye.com/blog/1845119
今日推荐