JustNote
  • Introduction
  • DesignPattern
    • 七大原则
      • 开闭原则(OCP)
      • 依赖倒置原则(DIP)
      • 单一职责原则(SRP)
      • 接口隔离原则(ISP)
      • 迪米特法则(LoD)
      • 里氏代换原则(LSP)
      • 合成复用原则(CRP)
    • 创建型模式
      • 简单工厂模式
      • 工厂方法模式
      • 抽象工厂模式
      • 建造者模式
      • 单例模式
      • 原型模式
    • 结构型模式
      • 外观模式
      • 装饰模式
      • 适配器模式
      • 享元模式
      • 组合模式
      • 桥接模式
      • 代理模式
    • 行为型模式
      • 模板方法模式
      • 迭代器模式
      • 策略模式
      • 解释器模式
      • 观察者模式
      • 备忘录模式
      • 命令模式
      • 中介者模式
      • 责任链模式
      • 访问者模式
      • 状态模式
  • Java
    • Java Core
      • JVM 如何加载类
      • JVM 垃圾回收
      • JVM G1GC
      • JVM G1GC Q&A
      • JVM 与 Hbase
      • JVM ZGC Overview
      • JVM ZGC 内存管理
      • JVM ZGC 线程
      • JVM ZGC 垃圾回收
      • JVM ZGC 日志分析
      • JVM ZGC 参数调优
    • checkstyle
  • Golang
    • 源码阅读
      • Goroutines
      • Channel
    • gRPC
      • 1、快速开始
      • 2、什么是gRPC
      • 3、gRPC概念梳理
      • 4、基于Golang的gRPC入门
      • 5、gRPC组件ProtocolBuffers介绍
      • 6、gRPC组件Http 2.0
      • 7、错误处理和Debug
      • 8、gRPC身份验证
      • 9、服务注册与发现
      • 10、gRPC与gRPC Gateway
      • 11、gRPC与分布式链路追踪
  • Scala
    • 数据结构与算法
      • 数组
      • 队列
    • 函数式编程
      • 高阶函数
      • 偏函数
    • Immutable Collection
      • List
    • Mutable Collection
      • Array
    • 常见函数操作
      • A
        • aggregate
        • andThen
        • appended
        • appendedAll
      • C
        • chain
        • collect
        • collectFirst
        • combinations
        • compose
        • concat
        • cond
        • condOpt
        • const
        • contains
        • containsSlice
        • copyToArray
        • corresponds
        • count
        • curried
      • D
        • diff
        • distinct
        • distinctBy
        • drop
        • dropRight
        • dropWhile
      • E
        • empty(PartialFunction)
        • empty(collections)
        • endsWith
        • exists
      • F
        • fill
        • filter
        • filterKeys
        • filterNot
        • find
        • findLast
        • flatMap
        • flatten
        • fold
        • foldLeft
        • foldRight
        • forall
        • foreach
        • fromFunction
      • G
        • getOrElse (Map)
        • getOrElse (Option)
        • groupBy
        • groupMap
        • groupMapReduce
        • grouped
      • H
        • head
        • headOption
      • I
        • indexOf
        • indexOfSlice
        • indexWhere
        • indices
        • init
        • inits
        • intersect
        • isDefinedAt (Map)
        • isDefinedAt (Seq)
        • isEmpty
        • isTraversableAgain
      • K
        • keys
      • L
        • last
        • lastIndexOf
        • lastIndexOfSlice
        • lastIndexWhere
        • lastOption
        • length
        • lift
      • M
        • map
        • mapConserve
        • mapValues
        • max
        • maxBy
        • maxByOption
        • maxOption
        • min
        • minBy
        • minByOption
        • minOption
        • mkString
      • N
        • nonEmpty
      • O
        • orElse
      • P
        • padTo
        • par
        • partition
        • partitionMap
        • patch
        • permutations
        • prefixLength
        • prepended
        • prependedAll
        • product
      • R
        • range
        • reduce
        • reduceLeft
        • reduceLeftOption
        • reduceOption
        • reduceRight
        • reduceRightOption
        • reverse
        • reverseIterator
        • reverseMap
        • runWith
      • S
        • sameElements
        • scan
        • scanLeft
        • scanRight
        • search
        • segmentLength
        • size
        • slice
        • sliding
        • sortBy
        • sortWith
        • sorted
        • span
        • splitAt
        • startsWith
        • sum
      • T
        • tabulate
        • tail
        • tails
        • take
        • takeRight
        • takeWhile
        • transpose
        • tupled
      • U
        • unfold
        • union
        • unlift
        • untupled
        • unzip
        • unzip3
        • updated
      • V
        • values
        • view
      • W
        • withFilter
        • withDefault
        • withDefaultValue
      • Z
        • zip
        • zipAll
        • zipWithIndex
      • map
      • flatmap
      • filter
      • reduceLeft
      • foldLeft
    • Futures
      • Method with future as return type
      • Non blocking future result
      • Chain futures using flatMap
      • Chain futures using for comprehension
      • Future Option with for comprehension
      • Future Option with map
      • Composing Futures
      • Future Sequence
      • Future Traverse
      • Future foldLeft
      • Future reduceLeft
      • Future firstCompletedOf
      • Future zip
      • Future zipWith
      • Future andThen
      • Future configure threadpool
      • Future recover
      • Future recoverWith
      • Future fallbackTo
      • Future promise
    • Akka
  • Algorithm
  • Docker
  • Kubernetes
    • 二进制安装kubernetes
      • 00.从零开始
  • Architecture
    • Infrastructure
      • Opentracing
      • Jaeger && ZipKin
      • SkyWalking
      • Consul
      • Envoy
      • Service Mesh
      • Service Mesh: Istio 详解
      • Service Mesh: 基于 Istio 的落地实践(一)
    • CAS
      • CAS Server
      • CAS Service Management
      • CAS 集成LDAP
      • CAS 集成gitlab
      • CAS SSO & SLO
      • CAS Gitbook
    • xCAT
  • Netty
  • DDD
  • Reactive Programming
    • Reactor
      • Publisher
      • Subscriber
      • Subscription
      • Processor
    • WebFlux
  • Gitlab
    • Git Hook
  • CICD
    • Jenkins
      • Kubectl
Powered by GitBook
On this page
  • 参考
  • 下载 cas management overlay template
  • 构建CAS Management war
  • 修改配置
  • 部署 CAS Management War
  • 将CAS Management 服务注册到 CAS Server上
  • 登录 CAS Management

Was this helpful?

  1. Architecture
  2. CAS

CAS Service Management

PreviousCAS ServerNextCAS 集成LDAP

Last updated 4 years ago

Was this helpful?

CAS Service management 是 CAS 单独独立出来的一款应用。用来管理哪些服务能够接入到CAS中。

参考

CAS management 项目地址 CAS management overlay 项目地址

下载 cas management overlay template

下载 项目。

通过 查看代码配置发现,内置的tomcat 版本为 9.0 为了保持一致,我们也下载 9.0 版本的tomcat。

构建CAS Management war

  1. 编辑gradle.properties 文件,修改 casmgmt.version=6.3.0 因为已经没有snapshot版本了

  2. 手动指定 gradle 的java home,在gradle.properties 文件中添加下面一行。 org.gradle.java.home=/usr/lib/jdk-11.0.10

  3. 指定本地的gradle,避免每次都下载,在gradle-wrapper.properties 文件中,修改下面一行。 distributionUrl=file:///mnt/d/download/gradle-6.8.3-bin.zip

  4. 执行 build.sh package 就可以构建出cas-management.war 了。

修改配置

修改项目目录下 的/etc/cas/config/management.properties

如果与CAS Server 部署在同一台机器上,其中 的cas 的路径 以及 server.port 需要格外注意,避免引起端口冲突。

cas.server.name=http://10.0.41.74:8090
cas.server.prefix=${cas.server.name}/cas
mgmt.serverName=http://10.0.41.74:8091
mgmt.adminRoles[0]=ROLE_ADMIN
mgmt.userPropertiesFile=file:/etc/cas/config/users.json
server.port=8091
server.ssl.enabled=false
logging.config=file:/etc/cas/config/log4j2-management.xml

将 /etc/cas/config/ 目录下的内容,拷贝到系统的 同目录下。

部署 CAS Management War

在服务器上执行 下面的命令,就可以启动 CAS Management 服务了。

nohup java -Xdebug -Xrunjdwp:transport=dt_socket,address=5001,server=y,suspend=n -jar cas-management.war > cas-management.log 2>&1 &

将CAS Management 服务注册到 CAS Server上

CAS Server 是用来为集成进来的服务提供 SSO 登录服务的。

CAS Management 是用来管理哪些服务可以通过CAS Server 单点登录。

那这样来看的话,CAS Management 也可以是一个需要通过CAS Server来单点登录的服务。

所以,接下来,我们将 CAS Management 注册到 CAS Server 上。

在前面的CAS Server 安装过程中,我们指定了一个配置cas.service-registry.core.init-from-json=true,这个配置的含义是CAS Server 在启动的时候,从json 配置文件中加载注册的服务。 注意: 通过json这种来存储注册服务方式仅限于演示环境,正式环境需要采用数据库来存储。

进入到 /etc/cas/service 目录下,添加下面的文件,注意 文件的名称有详细的规则,可以参考前面给出的文档。

]# cat web-10000001.json
{
  "@class" : "org.apereo.cas.services.RegexRegisteredService",
  "serviceId" : "^(https|imaps|http)://.*",
  "name" : "web",
  "id" : 10000001,
  "evaluationOrder" : 10
}

这是用正则表达式,配置的一个服务注册。

重新启动cas,通过查看日志就可以发现,已经有1个服务被加载进来了。

登录 CAS Management

在浏览器中输入 http://10.0.41.74:8091/cas-management ,这时,由于 CAS Management 处于未登录状态,会自动跳转到 CAS Server 的集成登录界面,仔细观察这时浏览器的地址是 http://10.0.41.74:8090/cas/login?service=http://10.0.41.74:8091/cas-management/。 这也意味着,虽然登录是在CAS server 端,登录成功之后,就会跳转到CAS Management 端。

使用 casuser Mellon 登录成功后,会自动跳转回 CAS management 的管理首页。

参考文档

CAS Serivce Management
参考
下载 cas management overlay template
构建CAS Management war
修改配置
部署 CAS Management War
将CAS Management 服务注册到 CAS Server上
登录 CAS Management
https://apereo.github.io/cas-management/6.3.x/installation/Installing-ServicesMgmt-Webapp.html
https://apereo.github.io/cas/6.3.x/
https://github.com/apereo/cas-management
https://github.com/apereo/cas-management-overlay
cas management overlay template
json-syntax
初始化时加载服务
CAS Management