博主之前一直使用了cas客户端进行用户的单点登录操作,决定进行源码分析来看cas的整个流程,以便以后出现了问题还不知道是什么原因导致的
cas主要的形式就是通过过滤器的形式来实现的,来,贴上示例配置:
<listener> <listener-class>org.jasig.cas.client.session.SingleSignOutHttpSessionListenerlistener-class> listener> <filter> <filter-name>SSO Logout Filterfilter-name> <filter-class>org.jasig.cas.client.session.SingleSignOutFilterfilter-class> filter> <filter-mapping> <filter-name>SSO Logout Filterfilter-name> <url-pattern>/*url-pattern> filter-mapping> <filter> <filter-name>SSO Authentication Filterfilter-name> <filter-class>org.jasig.cas.client.authentication.AuthenticationFilterfilter-class> <init-param> <param-name>SSOServerUrlparam-name> <param-value>http://sso.jxeduyun.com/ssoparam-value> init-param> <init-param> <param-name>SSOLoginUrlparam-name> <param-value>http://www.jxeduyun.com/App.ResourceCloud/Src/index.phpparam-value> init-param> <init-param> <param-name>serverNameparam-name> <param-value>http://127.0.0.1:9000param-value> init-param> <init-param> <param-name>needAttributeparam-name> <param-value>trueparam-value> init-param> <init-param> <param-name>excludedURLsparam-name> <param-value>/site2\.jspparam-value> init-param> filter> <filter-mapping> <filter-name>SSO Authentication Filterfilter-name> <url-pattern>/TyrzLogin/*url-pattern> filter-mapping> <filter> <filter-name>SSO Ticket Validation Filterfilter-name> <filter-class>org.jasig.cas.client.validation.Cas20ProxyReceivingTicketValidationFilterfilter-class> <init-param> <param-name>serverNameparam-name> <param-value>http://127.0.0.1:9000param-value> init-param> <init-param> <param-name>needAttributeparam-name> <param-value>trueparam-value> init-param> <init-param> <param-name>SSOServerUrlPrefixparam-name> <param-value>http://sso.jxeduyun.com/ssoparam-value> init-param> filter> <filter-mapping> <filter-name>SSO Ticket Validation Filterfilter-name> <url-pattern>/*url-pattern> filter-mapping>
博主用的不是官方的cas的jar包,是第三方要求的又再次封装的jar包,不过就是属性,获取用户信息的逻辑多了点,其他的还是官方的源码,博主懒 的下载官方的jar在进行一步一步的debug看源码了。
基本配置是添加4个过滤器,请求的时候可以进行拦截进行查看,最后一个是jfinal的开发框架,类似spring,不用管
以上是jetty抓到请求时,进行获取过滤的流程,只关注cas的这四个,里面涉及到了缓存过滤器(节点类型存储)
全