Apereo CAS(三)管理界面

2022-11-08 12:52:59 浏览数 (1)

类似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 是一致的。

4)同时运行cas-server,cas-management后,访问 https://localhost:8444/cas-management/

0 人点赞