cas 单点登录,退出配置

来源:互联网 发布:呼死你 淘宝上叫什么 编辑:程序博客网 时间:2024/05/29 17:10

最近做了单点登录,记录一下,参考网上资料


web.xml

<!--  登录成功后的欢迎页面-->

<welcome-file-list>
<!-- <welcome-file>login1.html</welcome-file> -->
<!-- <welcome-file>index.html</welcome-file> -->
<welcome-file>index.jsp</welcome-file>
</welcome-file-list>

<!--退出-->
<context-param>
<param-name>casServerLogoutUrl</param-name>
<param-value>http://xxx.com/logout</param-value>   <!--server cas 地址-->

</context-param>


<context-param>
<param-name>serverName</param-name>
<param-value>http://127.0.0.1:8080</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>


<!-- 1.2.1 配置业务系统认证过滤器(必须) -->
<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>http://xxx.com</param-value>
</init-param>


<init-param>
<param-name>serverName</param-name>
<param-value>127.0.0.1:8080</param-value>
</init-param>
<init-param>
<param-name>renew</param-name>
<param-value>false</param-value>
</init-param>
<init-param>
<param-name>gateway</param-name>
<param-value>false</param-value>
</init-param>
</filter>
<filter-mapping>
<filter-name>CAS Authentication Filter</filter-name>
<url-pattern>/*</url-pattern>   <!-- 服务端验证 -->
</filter-mapping>


<!-- 配置业务系统票据验证过滤器(必须) -->
<filter>
<filter-name>CAS Validation Filter</filter-name>
<filter-class>org.jasig.cas.client.validation.Cas20ProxyReceivingTicketValidationFilter</filter-class>
<init-param>
<param-name>casServerUrlPrefix</param-name>
<param-value>http://xxx.com</param-value>
</init-param>


<init-param>
<param-name>serverName</param-name>
<param-value>127.0.0.1:8080</param-value>
</init-param>
</filter>
<filter-mapping>
<filter-name>CAS Validation Filter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>




<!-- 自动根据单点登录的结果设置本系统的用户信息 -->
<filter>
<display-name>AutoSetUserAdapterFilter</display-name>
<filter-name>AutoSetUserAdapterFilter</filter-name>
<filter-class>com.syzton.sunread.security.AutoSetUserAdapterFilter</filter-class>
</filter>
<filter-mapping>
<filter-name>AutoSetUserAdapterFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>



Filter 


public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException,  
                    ServletException {  
            HttpServletRequest httpRequest = (HttpServletRequest) request;  
              
            // _const_cas_assertion_是CAS中存放登录用户名的session标志  
            Object object = httpRequest.getSession().getAttribute(AbstractCasFilter.CONST_CAS_ASSERTION);  
              
            if (object != null) {  
                    Assertion assertion = (Assertion) object;  
                    String loginName = assertion.getPrincipal().getName();  
                    System.out.println(loginName);
                    httpRequest.getSession().setAttribute("username", loginName); 
            }  
            chain.doFilter(request, response);  
    }


注销,index

<li><a href="/logout.jsp" ng-click="logout()">注销</a> </li>


退出,logout.jsp


<%  
session.invalidate();  
response.sendRedirect(application  
.getInitParameter("casServerLogoutUrl")  
+ "?service="  
+ application.getInitParameter("serverName"));  
%>  

casServerLogoutUrl 和serverName 为web.xml 配置

为了退出后显示也是不少cas server 退出页面,跳转到登陆页面

0 0
原创粉丝点击