前两篇介绍了Apereo CAS以及服务器端的安装,但还不够完整,服务端还没有Application真正用起来呢!这篇文章将介绍怎么用起来
集成的目的
客户端我们想要与Apereo CAS做什么集成呢?回顾一下Apereo CAS是做什么的?Apereo CAS的一个功能就是单点登录,统一的登录登出接口与页面,让系统中的模块只需要关注在业务点,而把安全认证的功能交给统一认证来做。所以客户端的集成主要是单点登录的集成,客户端指定需要做安全认证的页面,然后Apereo CAS的安全包检测校验用户登录情况,并自动与CAS登录页面进行跳转交互。
客户端的配置
Apereo CAS提供了Springboot的包,可以让我们的集成些微方便了那么一丢丢!首先我们创建一个Springboot的application,里面带了Apereo CAS start的依赖
org.springframework.security
spring-security-cas
同时在application.properties文件里面指定启动的端口 server.port = 9000
有了Apereo CAS的包之后,我们就可以进行代码的配置。客户端的配置按照SpringSecurity的安全检验流程进行的:
用户尝试打开一个受保护的url,比如/admin/user
AuthenticationEntryPoint被触发了,把用户重定向到配置好的CAS登录页面https://localhost:6443/cas
用户输入用户名密码,登录成功后, CAS会跳转回application指定的回调url http://localhost:9000/login/cas, 并带上ticket作为查询参数
CasAuthenticationFilter一直在监听/login/cas这个路径,当发现有请求后,它会触发CasTicketValidator,由CasTickerValidator检验ticket的有效性
当ticket也验证成功后,用户将会被跳转回原来请求的受保护url
下面代码大致描述了这个过程:
@Bean
public ServiceProperties servicePro