首先说明的是,本文提供的是一个快速上手的实例,并不打算详细阐述单点登录的概念和CAS的工作原理。这也是本人平时学习的习惯:不管什么技术,先把环境搭起来,从最简单的Hello World逐步到其背后的Why-What-How。
一、准备工作
单点,至少我们得跨域吧,所以我这里部署了三个系统到三个Tomcat下:
| 应用 | 域名 | Tomcat端口 | 作用 | 来源 |
|---|---|---|---|---|
| CAS Server | cas-server.com | 38080 | 中央认证服务 | 官网下载 |
| web-one | cas-app1.com | 18080 | 接入系统1 | 自定义 |
| web-one | cas-app2.com | 28080 | 接入系统2 | 自定义 |
实现不同域名的模拟,只需配置hosts文件:
\System32\drivers\etc\hosts
127.0.0.1 cas-app1.com
127.0.0.1 cas-app2.com
127.0.0.1 cas-server.com
二、CAS Server部署
1 下载CAS Server
下载地址:https://www.apereo.org/projects/cas/download-cas
当前使用的是3.5.0版本
2 获取CAS Server部署包
使用cas server的方法有两种:
1. 直接将解压后文件夹下的modules文件夹中的cas-server-webapp-3.5.0.war到Tomcat中;
2. Eclipse中导入cas-server-3.5.0多模块maven项目,在Eclipse中启动cas-server-webapp这个web项目
不管用哪种方式,都是一样的,只是cas帮我们打好了包而已,第2种导入Eclipse便于我们调试和修改代码。
3 修改配置
1 WEB-INF/cas.properties
只需修改cas server部署的Tomcat的访问路径即可:
server.name=http://cas-server:38080
2 WEB-INF/deployerConfigContext.xml
为了简单起见,我们不启用HTTPS,添加requireSecure为false:
<bean class="org.jasig.cas.authentication.handler.support.HttpBasedServiceCredentialsAuthenticationHandler"
p:httpClient-ref="httpClient" p:requireSecure="false" />
3 ticketGrantingTicketCookieGenerator.xml
同样添加cookieSecure为false:
<bean id="ticketGrantingTicketCookieGenerator" class="org.jasig.cas.web.support.CookieRetrievingCookieGenerator"
p:cookieSecure="false"
p:cookieMaxAge="-1"
p:cookieName="CASTGC"
p:cookiePath="/cas"

本文提供了一个从零开始学习CAS单点登录的实例,包括CAS Server的部署、业务系统配置,以及基本的单点登录功能实现。通过修改配置文件、启动Tomcat,实现了跨域的单点登录,但未涉及HTTPS、自定义登录页面、数据库认证和权限管理等进阶话题。

5430

被折叠的 条评论
为什么被折叠?



