cas的客户端配置web.xml说明

统一sso登录

统一登录sso已经是很常用的技术了,方便多个系统共享登录,客户端配置说明。
引入cas-client的jar包

      <dependency>
            <groupId>org.jasig.cas.client</groupId>
            <artifactId>cas-client-core</artifactId>
            <version>3.2.1</version>
        </dependency>

配置web.xml

 <!-- 字符串,放在sso前面 -->
    <filter>
        <filter-name>encodingFilter</filter-name>
        <filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class>
        <init-param>
            <param-name>encoding</param-name>
            <param-value>UTF-8</param-value>
        </init-param>
        <init-param>
            <param-name>forceEncoding</param-name>
            <param-value>true</param-value>
        </init-param>
    </filter>
    <filter-mapping>
        <filter-name>encodingFilter</filter-name>
        <url-pattern>/*</url-pattern>
    </filter-mapping>

<!-- sso start  ,本地不能运行时,请注释掉sso拦截配置
        serverName 指的是本地地址信息
        sso 指定是远程登录sso地址
        ssoValidateFilter 加入encoding=UTF-8防止出现无法解析web.xml情况 -->
    <listener>
        <listener-class>org.jasig.cas.client.session.SingleSignOutHttpSessionListener</listener-class>
    </listener>

    <filter>
        <filter-name>ssoSingOutFilter</filter-name>
        <filter-class>org.jasig.cas.client.session.SingleSignOutFilter</filter-class>
    </filter>
    <filter-mapping>
        <filter-name>ssoSingOutFilter</filter-name>
        <url-pattern>/*</url-pattern>
    </filter-mapping>

    <filter>
        <filter-name>ssoAuthFilter</filter-name>
        <filter-class>org.jasig.cas.client.authentication.AuthenticationFilter</filter-class>
        <init-param>
            <param-name>casServerLoginUrl</param-name>
            <param-value> 
                http://ip:post/sso/login
            </param-value>
        </init-param>
        <init-param>
            <param-name>serverName</param-name>
            <param-value>
                http://localhost:8088
            </param-value>
        </init-param>
    </filter>
    
    <filter-mapping>
        <filter-name>ssoAuthFilter</filter-name>
        <url-pattern>/*</url-pattern>
    </filter-mapping>
    
    <filter>
        <filter-name>ssoValidateFilter</filter-name>
        <filter-class>org.jasig.cas.client.validation.Cas20ProxyReceivingTicketValidationFilter
        </filter-class>
        <init-param>
            <param-name>casServerUrlPrefix</param-name>
            <param-value>
                http://ip:port/sso
            </param-value>
        </init-param>
        <init-param>
            <param-name>serverName</param-name>
            <param-value> 
                http://localhost:8088
            </param-value>
        </init-param>
        <init-param>  
            <param-name>encoding</param-name>  
            <param-value>UTF-8</param-value>  
        </init-param>
    </filter>
    <filter-mapping>
        <filter-name>ssoValidateFilter</filter-name>
        <url-pattern>/*</url-pattern>
    </filter-mapping>
    <!-- 
         AttributePrincipal principal = (AttributePrincipal) getRequest().getUserPrincipal();
        if(principal != null){
            String account = principal.getName().trim();// 登录账号   
                 }
     -->
    <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>

   <!-- 该过滤器使得开发者可以通过org.jasig.cas.client.util.AssertionHolder来获取用户的登录名。 
                比如AssertionHolder.getAssertion().getPrincipal().getName()。 -->
    <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>

    <!-- sso end -->
    
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 135,771评论 19 139
  • 【环境说明】: 本文演示过程在同一个机器上的(也可以在三台实体机器或者三个的虚拟机上),环境如下: windows...
    yljava阅读 13,099评论 3 8
  • 一. 关于UNIAUTH 二. 快速开始 三. 系统结构 四. 参数配置 五.系统接入 六.SDK使用 七. 系统...
    56630a5632ee阅读 4,798评论 0 0
  • deb是什么? deb是Debian软件包格式的文件扩展名,跟Debian的命名一样,deb也是因Debra Mu...
    小m_up阅读 95,657评论 6 14
  • 文/琅玕 十二点半 想和你躺在床上 你的手压住了我的头发 尖叫着推醒你 后来 后来我的梦里全是你
    大雪封山好几年阅读 2,732评论 0 2