Shiro & CAS 实现单点登录

本文详细介绍了如何使用Shiro和CAS框架实现单点登录。首先,部署CAS服务器,包括配置HTTPS协议。接着,配置CAS客户端,包括添加依赖、自定义Realm和配置过滤器。最后,探讨了HTTPS协议的使用、自定义登录页面和其他进阶话题,如单点登出的实现。整个过程结合代码和配置示例,帮助读者理解单点登录的实现原理和操作步骤。
摘要由CSDN通过智能技术生成

概览

单点登录主要用于多系统集成,即在多个系统中,用户只需要到一个中央服务器登录一次即可访问这些系统中的任何一个,无须多次登录。

本文使用开源框架 Jasig CAS 来完成单点登录。下载地址:https://www.apereo.org/cas/download 

部署服务器

本文服务器使用Tomcat7,下载了 cas-server-4.0.0-release.zip ,将其解压,找到modules目录下面的cas-server-webapp-4.0.0.war直接复制到webapps文件夹下即可。启动Tomcat,访问 http://localhost:8080/cas-server-webapp-4.0.0,使用casuser/Mellon登录,即可登录成功。

Tomcat默认没有开启HTTPS协议,所以这里直接用了HTTP协议访问。为了能使客户端在HTTP协议下单点登录成功,需要修改一下配置:

  • WEB-INF\spring-configuration\ticketGrantingTicketCookieGenerator.xmlp:cookieSecure="true" 改为 p:cookieSecure="false"

  • WEB-INF\spring-configuration\warnCookieGenerator.xml:将p:cookieSecure="true" 改为 p:cookieSecure="false"

  • WEB-INF\deployerConfigContext.xml: <bean class="org.jasig.cas.authentication.handler.support.HttpBasedServiceCredentialsAuthenticationHandler" p:httpClient-ref="httpClient" /> 添加 p:requireSecure="false"

至此,一个简单的单点登录服务器就基本部署好了。

部署客户端

客户端需要添加对 shiro-cas 和cas-client-core这两个包的依赖。这里主要讲跟CAS相关的配置。

之后配置web.xml

<!-- 用于单点退出,该过滤器用于实现单点登出功能,可选配置。-->

< 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 >

自定义Realm:

public class MyCasRealm extends CasRealm {

private UserService userService;

public void setUserService (UserService userService) {

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值