CAS服务中心的搭建
- cas服务应用获取:
从github上下载cas服务应用:
git clone https://github.com/apereo/cas-overlay-template.git
git checkout 5.3
切换到需要的分支,本文章使用5.3的版本
使用cmd命令,切换到工程目录下:
build.cmd help 查看命令
build.cmd package 进行打包
打包后target下产生cas.war - cas服务的部署
在tomcat下部署后启动,解压cas。
去除HTTPS:
进入cas目录cas/WEB-INF/classes,修改application.properties,去除HTTPS,修改如下,在文件最底部修改:
cas.authn.accept.users=admin::admin,admin@qq.com::123456
cas.tgc.secure=false
cas.serviceRegistry.initFromJson=true
cas.authn.accept.users参数可以配置多个账号和密码使用英文逗号隔开即可.
支持HTTP:进入目录cas\WEB-INF\classes\services下修改HTTPSandIMAPS-10000001.json
{
"@class" : "org.apereo.cas.services.RegexRegisteredService",
"serviceId" : "^(https|imaps|http)://.*",
"name" : "HTTPS and IMAPS",
"id" : 10000001,
"description" : "This service definition authorizes all application urls that support HTTPS and IMAPS protocols.",
"evaluationOrder" : 10000,
"proxyPolicy" : {
"@class" : "org.jasig.cas.services.RegexMatchingRegisteredServiceProxyPolicy",
"pattern" : "^(https|imaps|http)://.*"
}
}
加入了http的支持。
- 启动验证
启动tomcat,打开浏览器输入http://localhost/cas/login
然后使用配置的账号和密码进行登录
cas服务还可以支持数据等方式,这个可以根据官方文档进行配置。简单验证使用简单配置即可。
应用中CAS客户端的配置
- 应用中引入cas-client-core,本文章使用3.5.1版本
- 在web.xml中配置cas的登出、登录、授权过滤:
<!--登出过滤器-->
<filter>
<filter-name>CAS Single Sign Out Filter</filter-name>
<filter-class>org.jasig.cas.client.session.SingleSignOutFilter</filter-class>
<init-param>
<!--cas的路径-->
<param-name>casServerUrlPrefix</param-name>
<param-value>http://localhost</param-value>
</init-param>
<init-param>
<!--登出请求的分发路径-->
<param-name>clusterNodeUrls</param-name>
<param-value>http://localhost:8001,http://localhost:8002</param-value>
</init-param>
</filter>
<filter-mapping>
<filter-name>CAS Single Sign Out Filter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
<listener>
<listener-class>org.jasig.cas.client.session.SingleSignOutHttpSessionListener</listener-class>
</listener>
<!--登录授权过滤器-->
<filter>
<filter-name>CAS Authentication Filter</filter-name>
<filter-class>org.jasig.cas.client.authentication.AuthenticationFilter</filter-class>
<init-param>
<param-name>casServerLoginUrl</param-name>
<!--cas的登录路径-->
<param-value>http://localhost/cas/login</param-value>
</init-param>
<init-param>
<!--认证成功后跳转的服务的路径-->
<param-name>serverName</param-name>
<param-value>http://127.0.0.1</param-value>
</init-param>
</filter>
<filter-mapping>
<filter-name>CAS Authentication Filter</filter-name>
<url-pattern>/system/sso/*</url-pattern>