cas-management也简称为service-management可以理解为服务管理。
cas为我们提供了对service的管理平台,通过UI界面进行操作管理。
需要注意的有点,必须保证cas-server和cas-management,两个的用户信息一致,不然就会报授权失败。
一、架构说明
目录 | 访问地址 | 说明 |
---|---|---|
cas-overlay-template-master | https://cas.server.com:8443/cas | cas 服务端 |
cas-management-overlay-master | https://cas.server.com:8444/cas-management | manager 管理 |
二、cas-server 配置
服务端其实并不需要什么过多配置,参照之前的文章文章即可,我这里进行基本的验证,静态用户名密码:tingfeng
三、management 配置
1、下载导入IDEA工具
下载过程省略。导入时,需要下载war包,由于国内原因,基本需要翻墙搞定。当然你也可以从其他地方搞过来应用本地的war包,我用的翻墙。
idea中的默认结构目录如下图。
2、修改log日志目录
按照cas-server的老规矩,在根目录创建一个logs文件夹,指定修改log4j2-management.xml中默认的log日志目录位置。
比如将fileName="${sys:cas.log.dir}/cas-management.log"
修改为 fileName="${sys:cas.log.dir}/logs/cas-management.log"
3、application.properties 配置
和cas-server配置差不多,在src/main/resources目录下,拷贝出application.properties文件进行修改。
我这里主要是将cas-server和cas-managermeng两个项目使用同一个域名,需要配置等证书,必须保证和cas-server证书一致性,不然就会有验证问题。
## # CAS Thymeleaf Views # spring.thymeleaf.cache=false spring.thymeleaf.mode=HTML spring.thymeleaf.order=1 ## # 嵌入式Tomcat容器 # server.context-path=/cas-management server.port=8444 server.ssl.enabled=true server.ssl.keyStore=file:/etc/cas/casServer.keystore server.ssl.keyStorePassword=changeit server.ssl.keyPassword=changeit server.ssl.key-alias=cas.server.com ## # Log4J 配置 # server.context-parameters.isLog4jAutoInitializationDisabled=true # logging.config=file:/etc/cas/log4j2.xml # 配置cas服务的地址 cas.server.name=https://cas.server.com:8443 cas.server.prefix=${cas.server.name}/cas # 项目管理地址 cas.mgmt.serverName=https://cas.server.com:${server.port} ## # 静态管理认证开始 # 通过sso登录后的用户,必须存在该文件下,否则无法登录,当然这些用户可以通过ldap进行动态管理 # cas.mgmt.userPropertiesFile=classpath:/user-details.properties ## # CAS Authentication Attributes # cas.authn.attributeRepository.stub.attributes.uid=uid cas.authn.attributeRepository.stub.attributes.givenName=givenName cas.authn.attributeRepository.stub.attributes.eppn=eppn ## # CAS Web Application Config # server.session.timeout=1800 server.session.cookie.http-only=true server.session.tracking-modes=COOKIE ## # CAS Cloud Bus Configuration # Please leave spring.cloud.bus.enabled set to false # spring.cloud.bus.enabled=false ## # Actuator Endpoint Security Defaults # endpoints.sensitive=true endpoints.enabled=false endpoints.actuator.enabled=false #默认语言包 cas.mgmt.defaultLocale=zh_CN
4、配置用户
我上面是配置的静态用户,这个方式是为了实验的需要,所以设置为了静态的,实际开发中,需要结合mysql,mongodb等
cas.mgmt.userPropertiesFile=classpath:/user-details.properties
5、user-details.properties 配置
# This file lists the set of users that are allowed access to the management app. # # The syntax of each entry should be in the form of: # # username=password,grantedAuthority[,grantedAuthority][,enabled|disabled] # Example: #casuser=notused,ROLE_ADMIN #tsschmi=notused,ROLE_ADMIN #静态用户处理 # 必须配置了才能进入后台页,否则不给于进入 tingfeng=tingfeng,ROLE_ADMIN,ROLE_ACTUATOR
5、managerment.properties 配置
省略部分内容放在了application.properties文件中配置。
cas.mgmt.adminRoles[0]=ROLE_ADMIN logging.config=file:/etc/cas/config/log4j2-management.xml
四、启动运行
需要先启动服务端,然后再启动management
#直接通过run的方式启动,如果通过debug启动方式,可能和cas服务端,有冲突 build.cmd run
启动成功
登录成功
至于过多的cas-management如何管理,静待接下来的慢慢研究发现。
五、我的源码
https://github.com/X-rapido/CAS_SSO_Record
六、视频演示
https://v.qq.com/x/page/l063881p938.html
七、问题记录
导致这个问题的原因是,你cas存在的用户,在cas-management配置中,不存在,所以报错了。
参考文档
https://apereo.github.io/cas/5.2.x/installation/Installing-ServicesMgmt-Webapp.html
https://github.com/apereo/cas-management-overlay
https://blog.csdn.net/u010475041/article/details/78028658
https://oss.sonatype.org/content/repositories/releases/org/apereo/cas/