Spring Boot 实现单点登录的第三种方案!

在该目录下创建一个名为 client1-99.json 的文件,client1 表示要接入的 client 的名字,99 表示要接入的 client 的 id,json 文件内容如下(这个配置可以参考官方给出的模版:overlays/org.apereo.cas.cas-server-webapp-tomcat-5.3.14/WEB-INF/classes/services/Apereo-10000002.json):

{

“@class”: “org.apereo.cas.services.RegexRegisteredService”,

“serviceId”: “^(https|http)😕/.*”,

“name”: “client1”,

“id”: 99,

“description”: “应用1 的定义信息”,

“evaluationOrder”: 1

}

这段 JSON 配置含义如下:

  1. @calss 指定注册服务类,这个是固定的org.apereo.cas.services.RegexRegisteredService。

  2. serviceId 则通过正则表达式用来匹配具体的请求。

  3. name 是接入的 client 的名称。

  4. id 是接入的 client 的 id。

  5. description 是接入的 client 的描述信息。

  6. evaluationOrder 则指定了执行的优先级。

接下来再在 src/main/resources/application.properties 文件中配置刚刚 json 的信息,如下:

cas.serviceRegistry.json.location=classpath:/services

cas.serviceRegistry.initFromJson=true

这里有两行配置:

  1. 指定配置 JSON 文件的位置。

  2. 开启 JSON 识别。

OK,配置完成后,重启 CAS Server。

CAS Server 启动成功后,我们在控制台看到如下日志,表示 JSON 配置已经加载成功了:

1.2 JDK 证书

第二个要提前准备的东西就是 JDK 证书。

在实际开发中,这一步可以忽略,但是因为我们现在用的自己生成的 SSL 证书,所以我们要将自己生成的证书导入到 JDK 中,否则在使用 Spring Security 接入 CAS 单点登录时,会抛出如下错误:

将 SSL 证书导入 JDK 中的命令其实也很简单,两个步骤,第一个导出 .cer 文件,第二步,导入 JDK,命令如下:

keytool -export -trustcacerts -alias casserver -file ./cas.cer -keystore ./keystore

sudo keytool -import -trustcacerts -alias casserver -file ./cas.cer -keystore /Library/Java/JavaVirtualMachines/jdk-10.0.2.jdk/Contents/Home/lib/security/cacerts

注意,在执行 export 导出命令时,需要输入密钥口令,这个口令就是自己一开始创建 SSL 证书时设置的。在执行 import 导入命令时,也需要输入口令,这个口令是 changeit,注意,不是自己一开始设置的。

密钥库的位置在 JDK 目录下的 /lib/security/cacerts,小伙伴们根据自己实际情况来修改(在 JDK9 之前,位置在 jre/lib

  • 20
    点赞
  • 20
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值