Cas 服务器 Service(Cas客户端)注册信息维护

时间:2023-03-09 22:55:03
Cas 服务器 Service(Cas客户端)注册信息维护

作为Cas服务器,允许哪些客户端接入与否是通过配置来定义的。对Cas服务器来说,每一个接入的客户端与一个Service配置对应;在Cas服务器启动时加载并注册上这些Service,与之对应的客户端才能接入。否则将出现

Cas 服务器 Service(Cas客户端)注册信息维护

一、假设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,如下图:

Cas 服务器 Service(Cas客户端)注册信息维护

将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),打开之前保存的密钥库文件。

Cas 服务器 Service(Cas客户端)注册信息维护

Cas 服务器 Service(Cas客户端)注册信息维护

证书导入

使用keytool进行证书导入工作,证书导入完成后用Cas客户端访问成功!

Cas 服务器 Service(Cas客户端)注册信息维护

登陆成功后返回受保护的地址

Cas 服务器 Service(Cas客户端)注册信息维护

注:如果Cas客户端不导入证书,Cas客户端程序将会出现证书异常而结束执行。关于Cas客户端的内容将放在后续文章之中。

1.2 Cas客户端类型为HTTPS应用时的配置

请关注后续文章

二、假设Cas服务器为HTTP类型

假设我们的Cas服务器运行在8080端口,以HTTP协议对外提供服务(《Cas 服务器 使用HTTP协议对外服务》中的cas服务器配置)。

2.1 Cas客户端类型为HTTP应用时的配置

该配置与1.1.1中的配置完全相同,因为不使用HTTPS,所以不用导入证书操作。