CAS 单点登录原理总结

环境:两个web服务作为Cas的client端,CAS服务端cas-server-webapp-3.5.1.war,配置tomcat虚拟主机(hosts 与 servers.xml)

(1)cas的client1的web.xml配置,同理配置client2:

<!-- 该过滤器负责用户的认证工作,必须启用它 -->
<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>http://cas.com:8080/login</param-value>
</init-param>
<!-- 这里的serverName是服务端的IP -->
<init-param>
<param-name>serverName</param-name>
<param-value>http://client1.com:8080</param-value>
</init-param>
</filter>

<filter-mapping>
<filter-name>CASFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>

<!-- 该过滤器负责对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>http://cas.com:8080/</param-value>
</init-param>
<init-param>
<param-name>serverName</param-name>
<param-value>http://client1.com:8080</param-value>
</init-param>
</filter>

<filter-mapping>
<filter-name>CAS Validation Filter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>

(2)cas默认使用https协议,修改其票据检查为http协议认证: spring-cnfiguration/ticketGrantingTicketCookieGenerator.xml

<bean id="ticketGrantingTicketCookieGenerator" class="org.jasig.cas.web.support.CookieRetrievingCookieGenerator"
		p:cookieSecure="false"
		p:cookieMaxAge="-1"
		p:cookieName="CASTGC"
		p:cookiePath="/" />

 

测试步骤:

浏览器访问 http://client1.com:8080/index,重定向到  http://cas.com:8080/login?service=http://client1.com:8080/index

输入用户名密码登录:

client1访问过程总结:

<1> 浏览器访问 http://client1.com:8080/index.jsp
    重定向到 http://cas.com:8080/login?service=http%3A%2F%2Fclient1.com%3A8080%2Findex.jsp

<2> 访问 http://cas.com:8080/login?service=http://client1.com:8080/index.jsp
    输入用户名密码登录

<3> 登录成功,CAS服务器向浏览器传回 cookie CASTGC=TGT-2-ZdbzVTdbhDmSI9KEk0tkPsMbrXfuDstwJaiKpj1I9hhVIXBAla-cas01.example.org; Path=/,
    重定向到 http://client1.com:8080/index.jsp?ticket=ST-3-iGfw4MaDc0X0WeoHBDFz-cas01.example.org

<4> 浏览器携带ticket访问:http://client1.com:8080/index.jsp?ticket=ST-3-iGfw4MaDc0X0WeoHBDFz-cas01.example.org
    重定向到 http://client1.com:8080/index.jsp;jsessionid=29C6C3310A5B68406823E55AF70CE234

<5> 访问 http://client1.com:8080/index.jsp;jsessionid=29C6C3310A5B68406823E55AF70CE234
    

浏览器访问 http://client2.com:8080/index.jsp

 

 client2访问过程总结:

<1> http://client2.com:8080/index.jsp
重定向到 http://cas.com:8080/cas/login?service=http%3A%2F%2Fclient2.com%3A8080%2Findex.jsp

<2> 访问:http://cas.com:8080/cas/login?service=http://client2.com:8080/index.jsp
携带上次浏览器访问CAS服务的cookie:
JSESSIONID=6DBC4492CCA25B05715794F4002266EA; CASTGC=TGT-2-JpMDcVawHdUQJd0OOPwEHODOqN3z6BaqMpiRvdYsRtoo7brNAY-cas01.example.org
重定向到 http://client2.com:8080/index.jsp?ticket=ST-2-iewA1oyRijfvYTtIMIBR-cas01.example.org

<3> 携带CAS的ticket访问:http://client2.com:8080/index.jsp?ticket=ST-2-iewA1oyRijfvYTtIMIBR-cas01.example.org
重定向到 http://client2.com:8080/index.jsp;jsessionid=DD50A2513F232D614069CD3B40790319

<4> http://client2.com:8080/index.jsp;jsessionid=DD50A2513F232D614069CD3B40790319

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值