历史版本1 :CAS登出方案 返回文档
编辑时间: 内容长度:图片数:目录数: 修改原因:

目录:

1.概述编辑

通过配置FR作为CAS客户端可以实现通过cas认证来进行FR的登录,但是存在一个问题,如果直接退出FR决策系统,会进入到FR的登录界面,而且此时点击浏览器的返回按钮或在浏览器中直接输入https://suise:8443/WebReport/ReportServer?op=fs会自动登录刚才的账号,说明没有完全退出cas系统,如下图:


222

那么,如果实现FR的退出后真正退出 cas系统并且重新进入到cas登录页面呢,如下图所示


222

2.实现思路编辑

配置FR的退出页面及cas系统退出页面,并进行关联,即可实现FR退出后退出cas系统。

3.实现过程编辑

3.1 配置cas服务器端

修改%TOMCAT_HOME%\webapps\cas\WEB-INF\cas-servlet.xml里的logoutController节点,
找到如下代码
<bean id="logoutController" class="org.jasig.cas.web.LogoutController" p:centralAuthenticationService-ref="centralAuthenticationService" p:logoutView="casLogoutView" p:warnCookieGenerator-ref="warnCookieGenerator" p:ticketGrantingTicketCookieGenerator-ref="ticketGrantingTicketCookieGenerator" p:servicesManager-ref="servicesManager" p:followServiceRedirects="${cas.logout.followServiceRedirects:false}"/>
修改cas.logout.followServiceRedirects:falsecas.logout.followServiceRedirects:true使支持cas退出时支持输入service参数为跳转路径,如下图

222

3.2 配置FR端

打开%TOMCAT_HOME%\webapps\WebReport\WEB-INF\web.inf

的第一个fitler之前添加如下代码

<!-- 填写退出的URL --> <context-param> <param-name>casServerLogoutUrl</param-name> <param-value>https://suise:8443/cas/logout</param-value> </context-param> <!--单点退出配置 --> <listener> <listener-class>org.jasig.cas.client.session.SingleSignOutHttpSessionListener</listener-class> </listener> <filter> <filter-name>CAS Single Sign Out Filter</filter-name> <filter-class>org.jasig.cas.client.session.SingleSignOutFilter</filter-class> </filter> <filter-mapping> <filter-name>CAS Single Sign Out Filter</filter-name> <url-pattern>/*</url-pattern> </filter-mapping>       

 如下图
222

3.3 新增logout.jsp页面

如果需要退出后定位到cas退出页面,必须重写退出页面,实现退出cas系统并重新进入到cas登录页面

logout.jsp页面内容如下

<body> <% response.sendRedirect(application.getInitParameter("casServerLogoutUrl") + "?service=https://suise:8443/WebReport/ReportServer?op=fs"); %> </body>

放到%TOMCAT_HOME%\webapps\WebReport\,如下图
222

3.4 配置决策系统的登录页面

用管理员账号登录决策系统后,打开系统管理-外观配置-登录页,设置登录页面为logout.jsp,如下图
222


保存后,重启tomcat服务器,即可看到上面的退出效果了。