类似cas-server,先下载cas-management-overlay代码,这里使用6.5分支。
代码语言:javascript复制$ git clone https://github.com/apereo/cas-management-overlay cas-management
$ cd cas-management
$ git checkout -b 6.5 origin/6.5
cas-management应用本身也需要用户认证之后才能使用。这里使用它自己要管理的cas-server作为认证源。对,有点儿循环依赖的感觉。这时,cas-manager本身就是cas-server的一个client或者说service了。 因此需要首先把management配置为cas-server的一个client/service。
Apereo支持不同的存储service注册的方式:json文件、JPA、Redis …,这里使用json文件的方式把cas-management注册为cas-server的service,即让cas-manager使用cas-server来认证用户。
1)在cas-server的build.gradle中添加依赖。
可参考官方文档:https://apereo.github.io/cas/6.5.x/services/Service-Management.html#storage
代码语言:javascript复制implementation "org.apereo.cas:cas-server-support-json-service-registry:${project.'cas.version'}"
2)告诉cas-server 在哪里可以找到定义client/service的json文件
在文件 etc/cas/config/cas.properties 中加入如下配置:
代码语言:javascript复制cas.service-registry.json.location=classpath:/services
在cas-server 项目的 src/resources 目录下创建一个名为casManagement-2000.json的文体。文件名的格式是 clientName clientId.json,具体请阅读官方文档。
代码语言:javascript复制{
"@class" : "org.apereo.cas.services.RegexRegisteredService",
"serviceId" : "^(https|imaps)://.*",
"name" : "casManagement",
"id" : 2000,
"logoutType" : "BACK_CHANNEL",
"logoutUrl" : "https://localhost:8444/cas-management/logout"
}
3)配置cas-management
上面两步是配置cas-server以把cas-manager作为它的client。现在,配置cas-management。 编辑 cas-management 项目里的 etc/case/config/management.properties 文件,内容如下。
代码语言:javascript复制cas.server.name=https://localhost:8443
cas.server.prefix=${cas.server.name}/cas
server.port=8444
mgmt.server-name=https://localhost:8444
mgmt.admin-roles[0]=ROLE_ADMIN
mgmt.user-properties-file=file:/etc/cas/config/users.json
logging.config=file:/etc/cas/config/log4j2-management.xml
server.ssl.key-store=file:/etc/cas/thekeystore
server.ssl.key-store-password=changeit
# Let the cas-management to know where to find/save the registed services
cas.service-registry.json.location=file:YOUR_PATH_TO_DIR_CONTAINS_JSONFILES/services
需要注意的是要保证cas.server 和 mgmt server的端口不要冲突,一个是8443,一个是8444。 这里方便起见,cas-management和 cas-server共享了同一个keystore。
配置项cas.service-registry.json.location
告诉cas-management到哪里去读写(管理)定义client/service的json文件。这个目录
是和cas-server的 cas.service-registry.json.location=classpath:/services
是一致的。