作为Cas服务器,允许哪些客户端接入与否是通过配置来定义的。对Cas服务器来说,每一个接入的客户端与一个Service配置对应;在Cas服务器启动时加载并注册上这些Service,与之对应的客户端才能接入。否则将出现
一、假设Cas服务器为HTTPS类型
假设我们的Cas服务器运行在8443端口,以HTTPS协议对外提供服务(《Cas 服务器 下载、编译及部署》中的cas服务器配置)。
1.1 Cas客户端类型为HTTP应用时的配置
假设我们的Cas客户端以HTTP协议来对外提供服务,对外提供服务的域名及端口信息为:http://localhost:8081。
注:如果有多个HTTP Cas客户端,要实现用户在A Cas客户端登陆后在B Cas客户端也可被设别,需要在Cas服务器配置文件中将TGC设为非安全模式:
cas.tgc.secure=false
1.1.1 在Cas服务器上注册Cas客户端(Service)
从target>cas>WEB-INF>classes下复制service目录到src>main>resources下,删除复制来目录中的Apereo-10000002.json文件,将HTTPSandIMAPS-10000001.json重命名为TEST-10000003.json,如下图:
将TEST-10000003.json文件内心修改如下:
{ "@class" : "org.apereo.cas.services.RegexRegisteredService", "serviceId" : "^(http)://localhost:8081.*", "name" : "TEST", "id" : 10000003, "description" : "This service definition authorizes all application urls that support HTTPS and IMAPS protocols.", "evaluationOrder" : 10000 }
注:json文件名字由文件内容中的 name-id 组合而成,关于json文件中的各个属性的涵义及更深入内容可参考https://blog.csdn.net/anumbrella/article/details/82119246
在pom中添加对json文件services注册支持的依赖
<dependency>
<groupId>org.apereo.cas</groupId>
<artifactId>cas-server-support-json-service-registry</artifactId>
<version>${cas.version}</version>
</dependency>
修改application.properties
#开启json格式service注册
cas.serviceRegistry.initFromJson=true
# Json services 配置位置设定
cas.serviceRegistry.json.location=classpath:/services
build run 启动Cas服务器
1.1.2 在Cas客户端电脑上导入Cas服务器证书
根据密钥导出证书
使用之前创建密钥的KeyStore Explorer(下载地址:https://download.csdn.net/download/popo_popo/10750816),打开之前保存的密钥库文件。
证书导入
使用keytool进行证书导入工作,证书导入完成后用Cas客户端访问成功!
登陆成功后返回受保护的地址
注:如果Cas客户端不导入证书,Cas客户端程序将会出现证书异常而结束执行。关于Cas客户端的内容将放在后续文章之中。
1.2 Cas客户端类型为HTTPS应用时的配置
请关注后续文章
二、假设Cas服务器为HTTP类型
假设我们的Cas服务器运行在8080端口,以HTTP协议对外提供服务(《Cas 服务器 使用HTTP协议对外服务》中的cas服务器配置)。
2.1 Cas客户端类型为HTTP应用时的配置
该配置与1.1.1中的配置完全相同,因为不使用HTTPS,所以不用导入证书操作。