CAS 5.3 使用http协议替代https协议提供服务

一、版本说明

CAS Server默认使用https协议提供服务,https协议需要ssl证书,可以使用jdk工具keytool生成自签名证书,也可到证书机构申请证书(收费)。
cas.version 5.3.16
springboot.version 1.5.18.RELEASE

jdk自签名证书-keytool

二、使用http协议提供服务

1.springboot内嵌tomcat部署

  • 修改application.yml或application.properties配置文件
server:
  port: 8080
  ssl:
    key-store: classpath:server.keystore
    key-store-password: tomcat
    key-password: tomcat
    # 改为false
    enabled: false
cas:
  tgc:
    secure: false
  warningCookie:
    secure: false
  serviceRegistry:
    initFromJson: true
    
  server:
    name: http://cas.example.org:8080
    prefix: http://cas.example.org:8080/cas
  • 新增resources/services/test.json文件,允许http客户端
{
    
    
  "@class": "org.apereo.cas.services.RegexRegisteredService",
  "serviceId": "^(https|imaps|http)://.*",
  "name": "测试",
  "id": 1000,
  "description": "测试",
  "evaluationOrder": 1000
}
  • 最后别忘记修改CAS客户端server url地址
  server:
    name: http://cas.example.org:8080
    prefix: http://cas.example.org:8080/cas

2.tomcat部署(非内嵌)

  • 注释tomcat/config目录下server.xml部分内容
<!--     <Connector port="8443" protocol="org.apache.coyote.http11.Http11NioProtocol"
               maxThreads="150" SSLEnabled="true" scheme="https"
               secure="true" clientAuth="false" sslProtocol="TLS"
               keystoreFile="D:\softs\apache-tomcat-8.5.37\server.keystore" keystorePass="tomcat">
    </Connector> -->
  • 修改application.yml或application.properties配置文件
cas:
  tgc:
    secure: false
  warningCookie:
    secure: false
  serviceRegistry:
    initFromJson: true
    
  server:
    name: http://cas.example.org:8080
    prefix: http://cas.example.org:8080/cas
  • 新增resources/services/test.json文件,允许http客户端
{
    
    
  "@class": "org.apereo.cas.services.RegexRegisteredService",
  "serviceId": "^(https|imaps|http)://.*",
  "name": "测试",
  "id": 1000,
  "description": "测试",
  "evaluationOrder": 1000
}
  • 最后别忘记修改CAS客户端server url地址
  server:
    name: http://cas.example.org:8080
    prefix: http://cas.example.org:8080/cas

3.清理https协议下配置

  • 清理keytool自签名证书
keytool -delete -alias tomcat -keystore "%JAVA_HOME%/jre/lib/security/cacerts" -storepass changeit
  • 清理浏览器缓存(特别是cookie)

说明:若从一开始就是的是http协议此步骤可以省略!

4.注意事项

测试过程中,在hosts文件中增加了127.0.0.1 cas.example.org映射,但是浏览器访问时,使用的是localhost,注意cas.example.org和localhost虽然都指向IP 127.0.0.1,但是浏览器认为是两个域,cookie无法共享(CAS TGC无法共享)。
http://localhost:8080/cas/login登录成功后,但是客户端CAS Server前缀为http://cas.example.org:8080/cas,仍然需要重新登录,也就是登录状态未同步!
读者可使用谷歌浏览器查看network-请求地址-cookie确认该现象。

猜你喜欢

转载自blog.csdn.net/ory001/article/details/110182090