CAS Server搭建及客户端使用

CAS Server

安装方式:WAR Overlay Initializr

通过本地命令生成WAR Overlay Template 进行覆盖安装。

采用版本:6.4.3

步骤

生成模板项目

使用免费CAS初始化服务器Heroku。

在bash profile(.bash_profile 或 .profile)添加:

function getcas(){
    curl https://casinit.herokuapp.com/starter.tgz \
      -d type=cas-overlay -d baseDir=overlay -d dependencies="$1" | tar -xzvf -
    ls
}

执行命令 getcas

生成overlay模板项目。

修改登录首页

src/main/resources下创建 templates。cas overlay 可通过添加修改src下同目录同名文件覆盖对构建目录下的文件。

# 构建,输出地址 `build目录`,包地址 `build/libs/cas.war`
./gradlew clean build

# 解压war包,查看构建的war包内容
./gradlew unzip

复制文件 build/cas-resources/template/layout.htmlsrc/main/resources/template 目录下。并注释掉 header & footer。

修改默认账号密码

账号密码默认配置地址 build/cas-resources/application.properties

cas.authn.accept.users=casuser::Mellon

src/main/resources/application.yml 配置:

cas:
  authn:
    accept:
      users: wfbi::wfbi

以上会覆盖默认配置。

callback地址支持http

build.gradle添加依赖:

dependencies {
   
    implementation "org.apereo.cas:cas-server-core-api-configuration-model"
    implementation "org.apereo.cas:cas-server-webapp-init"
    implementation "org.apereo.cas:cas-server-support-json-service-registry"
    implementation "org.apereo.cas:cas-server-support-oauth-webflow"
    }

复制文件 build/cas-resources/services/HTTPSandIMAPS-10000001.jsonsrc/main/resources/services 目录下。并添加http支持。

{
  "@class": "org.apereo.cas.services.RegexRegisteredService",
  "serviceId": "^(https|imaps|http)://.*",
  "name": "cas-bootclient",
  "id": 1,
  "description": "This service definition authorizes all application urls that support HTTPS and IMAPS protocols.",
  "evaluationOrder": 10000
}

同时将文件名修改为:cas-bootclient-1.json,即 name + id 的形式。serviceId为匹配的路径,符合匹配规则的适用该json配置。

application.yml添加如下配置:

cas:
  tgc:
    secure: false
  service-registry:
    json:
      location: classpath:/services
    core:
      init-from-json: true

注意以上是 cas 6.4.3 的配置方式,不同版本可能不同。

配置ssl

执行 ./gradlew createKeystore 生产对应密钥库及证书,目录 /etc/cas。

将密钥库文件 thekeystore 复制到 src/main/resources 下。并在application.yml添加如下配置:

server:
  ssl:
    key-store: classpath:thekeystore

客户端需要导入 /etc/cas 下的 cas.crt 证书。
例如 java 客户端:

keytool -import -alias cas -file cas.crt \
        -keystore $JAVA_HOME/jre/lib/security/cacerts -storepass changeit

运行

本地运行:./gradlew run

./gradlew build
java -jar build/libs/cas.war

CAS Client

导入证书

keytool -import -alias cas -file cas.crt \
        -keystore $JAVA_HOME/jre/lib/security/cacerts -storepass changeit

添加依赖

<dependency>
    <groupId>net.unicon.cas</groupId>
    <artifactId>cas-client-autoconfig-support</artifactId>
    <version>2.3.0-GA</version>      
</dependency>

<dependency>
    <groupId>org.jasig.cas.client</groupId>
    <artifactId>cas-client-support-springboot</artifactId>
    <version>3.6.2</version>
</dependency>

添加注解

启动类添加:@EnableCasClient

添加配置

application.yml:

#Address of CAS server
cas.server-url-prefix=https://localhost:8443/cas
#Login address of CAS server
cas.server-login-url=https://localhost:8443/cas/login
#Client access address
cas.client-host-url=http://localhost:8080
# ticket validator Cas30ProxyReceivingTicketValidationFilter
cas.validation-type=CAS3
  • 11
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值