CAS 5.3 utiliza el protocolo http en lugar del protocolo https para proporcionar servicios

1. Descripción de la versión

CAS Server utiliza el protocolo https para proporcionar servicios de forma predeterminada. El protocolo https requiere un certificado ssl. Puede utilizar la herramienta jdk keytool para generar un certificado autofirmado o puede solicitar un certificado de una autoridad de certificación (se aplican tarifas ) .
cas.version 5.3.16
springboot.version 1.5.18.RELEASE

herramienta de claves de certificado autofirmado jdk

2. Utilice el protocolo http para proporcionar servicios.

1. Implementación de tomcat integrado en Springboot

  • Modificar el archivo de configuración application.yml o 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
  • Se agregó el archivo resources / services / test.json para permitir el cliente http
{
    
    
  "@class": "org.apereo.cas.services.RegexRegisteredService",
  "serviceId": "^(https|imaps|http)://.*",
  "name": "测试",
  "id": 1000,
  "description": "测试",
  "evaluationOrder": 1000
}
  • Finalmente, no olvide modificar la dirección URL del servidor cliente CAS
  server:
    name: http://cas.example.org:8080
    prefix: http://cas.example.org:8080/cas

2. Implementación de Tomcat (no integrado)

  • Anote parte de server.xml en el directorio tomcat / config
<!--     <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> -->
  • Modificar el archivo de configuración application.yml o 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
  • Se agregó el archivo resources / services / test.json para permitir el cliente http
{
    
    
  "@class": "org.apereo.cas.services.RegexRegisteredService",
  "serviceId": "^(https|imaps|http)://.*",
  "name": "测试",
  "id": 1000,
  "description": "测试",
  "evaluationOrder": 1000
}
  • Finalmente, no olvide modificar la dirección URL del servidor cliente CAS
  server:
    name: http://cas.example.org:8080
    prefix: http://cas.example.org:8080/cas

3. Limpiar la configuración bajo el protocolo https

  • Limpiar el certificado autofirmado de keytool
keytool -delete -alias tomcat -keystore "%JAVA_HOME%/jre/lib/security/cacerts" -storepass changeit
  • Limpiar la caché del navegador (especialmente las cookies)

Nota : Si se usa el protocolo http desde el principio, ¡este paso se puede omitir!

4. Asuntos que requieren atención

Durante la prueba, se agregó la asignación 127.0.0.1 cas.example.org al archivo de hosts, pero cuando el navegador accede a ella, se usa localhost. Tenga en cuenta que aunque tanto cas.example.org como localhost apuntan a la IP 127.0.0.1, el navegador Piense en ello como dos dominios, las cookies no se pueden compartir (CAS TGC no se puede compartir).
http: // localhost: 8080 / cas / login inicie sesión correctamente, pero el prefijo del servidor CAS del cliente es http://cas.example.org:8080/cas, todavía necesita iniciar sesión nuevamente, es decir, el inicio de sesión ¡el estado no está sincronizado!
Los lectores pueden usar Google Chrome para verificar la dirección de la cookie de solicitud de red para confirmar este fenómeno.

Supongo que te gusta

Origin blog.csdn.net/ory001/article/details/110182090
Recomendado
Clasificación