基于CAS实现单点登录(四)

        现在我们可以进行CAS客户端的配置了。

第一步

        客户端配置,就是我们针对每个应用服务器的配置,添加 cas-client 的jar包。

        在pom.xml里面添加cas依赖。

 <dependency> 

        <groupId>org.jasig.cas.client</groupId>

        <artifactId>cas-client-core</artifactId>

        <version>3.2.1</version> 

</dependency>  

第二步

        在应用程序web.xml里面配置filter。

        1、单点登出配置

<listener>

        <listener-class> org.jasig.cas.client.session.SingleSignOutHttpSessionHandler</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>

        2、用户认证过滤器配置,casServerLoginUrl:cas服务端登录地址,serverName:应用服务器地址

<filter>

        <filter-name>CASFilter</filter-name>

        <filter-class>org.jasig.cas.client.authentication.AuthenticationFilter</filter-class> 

        <init-param>    

                 <param-name>casServerLoginUrl</param-name>

                 <param-value>https://www.bhz.com:8443/cas/login</param-value>

         </init-param>

         <init-param>

                 <param-name>serverName</param-name>

                 <param-value>http://localhost:8080/</param-value>

         </init-param>

 </filter>

<filter-mapping>

         <filter-name>CASFilter</filter-name>

         <url-pattern>/*</url-pattern>

</filter-mapping> 

        3、配置对 Ticket 进行校验工作的过滤器。

<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> https://www.bhz.com:8443/cas</param-value>

         </init-param>

         <init-param>

                 <param-name>serverName</param-name>

                 <param-value>http://localhost:8080/</param-value>

         </init-param>

         <init-param>

                <param-name>encoding</param-name>

                <param-value>UTF-8</param-value>

         </init-param>

 </filter>

  <filter-mapping>      

         <filter-name>CAS Validation Filter</filter-name>

          <url-pattern>/*</url-pattern>

</filter-mapping>

        4、HttpServletRequestWrapperFilter 与 AssertionThreadLocalFilter配置

        HttpServletRequestWrapperFilter实现对HttpServletRequest请求的封装,比如允许开发者通过getUserPrincipal().getRemoteUser()获取SSO登录用户的登录名。

        AssertionThreadLocalFilter使得开发者可以通过getAssertion().getPrincipal().getName();获取SSO登录用户的登录名。

<!--HttpServletRequestWrapperFilter-->

<filter>

        <filter-name>CAS HttpServletRequest Wrapper Filter</filter-name>

        <filter-class>org.jasig.cas.client.util.HttpServletRequestWrapperFilter</filter-class>

</filter>

<filter-mapping>

        <filter-name>CAS HttpServletRequest Wrapper Filter</filter-name>

        <url-pattern>/*</url-pattern>

</filter-mapping>

<!--AssertionThreadLocalFilter-->

<filter>

        <filter-name>CAS Assertion Thread Local Filter</filter-name>

        <filter-class>org.jasig.cas.client.util.AssertionThreadLocalFilter</filter-class>

</filter>

<filter-mapping>

        <filter-name>CAS Assertion Thread Local Filter</filter-name>

        <url-pattern>/*</url-pattern>

</filter-mapping>

        这样客户端的配置工具就完成了。

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容