springboot+cas5.x+shiro+pac4j实现sso集成客户端(三)

springboot项目在后面一篇

配置host

这里写图片描述
这里写图片描述

下载官方demo进行改造

https://github.com/cas-projects/cas-sample-java-webapp

项目配置

官方demo导入idea 
修改web.xml,主要是cas服务端的地址和客户端的地址 
这里写图片描述
配置调试 
这里写图片描述
注意一下这里jre的配置,我电脑上有独立的jdk和jre,同时jdk里面有jre文件夹,要使用咱们在这篇里面https://blog.csdn.net/u010588262/article/details/79741626 第3步的这个jre目录才可以: 
这里写图片描述
否则待会测试的时候会报错的: 
这里写图片描述

客户端注册

还差最后一步了,如果这时候你猴急猴急的开始测试,就会遇到下面这种情况: 
这里写图片描述
同时服务端会有警告,可以根据警告判断应该注册的域名是什么 
这里写图片描述
这是因为咱们的客户端的域名没有在服务端进行注册,注册也很简单 
咱们回到服务端的项目中,从overlays或者cas_war(不明白的话回去看服务端的配置博客吧https://blog.csdn.net/u010588262/article/details/79741626)中把services目录拷贝到项目里: 
这里写图片描述 
新增一个json文件: 
文件名按照规范用name-serviceId.json吧,里面的内容也很好理解: 
这里写图片描述
- @class:必须为org.apereo.cas.services.RegisteredService的实现类 
- serviceId:对服务进行描述的表达式,可用于匹配一个或多个 URL 地址 
- name: 服务名称 
- id:全局唯一标志 
- evaluationOrder:定义多个服务的执行顺序

同时在application.properties里添加如下内容,开启服务端对json配置的读取:

#开启识别json文件,默认false
cas.serviceRegistry.initFromJson=true
#自动扫描服务配置,默认开启
cas.serviceRegistry.watcherEnabled=true
#120秒扫描一遍
cas.serviceRegistry.repeatInterval=120000
#延迟15秒开启
#cas.serviceRegistry.startDelay=15000
#资源加载路径
cas.serviceRegistry.config.location=classpath:/services

到这里客户端就ok了,登录成功之后是这样的: 
这里写图片描述

要测试多个客户端单点登录的话照葫芦画瓢在搞一次改个域名就行了  

!!!!!!!!!!!!!请把tomcat复制出来3个,分别跑各个项目,不然报错,具体原因不知道,就这个坑卡了我一周

猜你喜欢

转载自blog.csdn.net/weixin_39819191/article/details/80360809
今日推荐