Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

213
Vistas
La actualización de Spring Boot Security rompe CAS

Intenté que Spring Boot + Spring Security funcionara con CAS y tuve algunos problemas. Después de un tiempo investigando encontré un buen proyecto de ejemplo https://github.com/jgribonvald/demo-spring-security-cas Es muy bueno, solo tuve que cambiar las URL de CAS a las mías y comenzó a funcionar perfectamente.

Utiliza Spring Boot 1.2.1.RELEASE y quería actualizarlo a la última versión (1.5.2.RELEASE). Para hacer eso, tuve que hacer algunas modificaciones (corregir errores de compilación, porque algunas clases se eliminaron en versiones más nuevas).

Cuando se corrigieron los errores de compilación, lo probé con una versión anterior y aún funcionaba, pero falló con la última versión. Lanza un error de que casServerUrlPrefix es nulo en SingleSignOutFilter

 @Bean public SingleSignOutFilter singleSignOutFilter() { SingleSignOutFilter singleSignOutFilter = new SingleSignOutFilter(); singleSignOutFilter.setCasServerUrlPrefix(env.getRequiredProperty(CAS_URL_PREFIX)); // singleSignOutFilter.setIgnoreInitConfiguration(true); return singleSignOutFilter; }

Excepción

 java.lang.IllegalArgumentException: casServerUrlPrefix cannot be null. at org.jasig.cas.client.util.CommonUtils.assertNotNull(CommonUtils.java:86) at org.jasig.cas.client.session.SingleSignOutHandler.init(SingleSignOutHandler.java:140) at org.jasig.cas.client.session.SingleSignOutFilter.init(SingleSignOutFilter.java:55) at org.apache.catalina.core.ApplicationFilterConfig.initFilter(ApplicationFilterConfig.java:279) at org.apache.catalina.core.ApplicationFilterConfig.<init>(ApplicationFilterConfig.java:109) at org.apache.catalina.core.StandardContext.filterStart(StandardContext.java:4572) at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5215) at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150) at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1419) at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1409) at java.util.concurrent.FutureTask.run(FutureTask.java:266) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) at java.lang.Thread.run(Thread.java:745)

Aunque casServerUrlPrefix está configurado y funciona con una versión anterior. Por lo tanto, mi pregunta es si se trata de un error común al actualizar la seguridad de Spring y cómo se debe solucionar.

EDITAR:

Intenté hacer actualizaciones más pequeñas y funciona con Spring Boot 1.2.8.RELEASE , pero falla con 1.3.0.RELEASE . También traté de cambiar la versión de seguridad de primavera más baja mientras actualizaba el arranque de primavera, pero eso no ayudó.

Luego creo mi propio SingleSignOutFilter para codificar casServerUrlPrefix y eliminé ese error y pude ver que casServerUrlPrefix estaba realmente configurado. Desafortunadamente, eso no solucionó el problema, todavía no puedo usar mi aplicación web, pero ahora simplemente no arroja excepciones en el registro.

about 4 years ago · Santiago Trujillo
3 Respuestas
Responde la pregunta

0

Así que finalmente logré resolver este problema.

En la clase SecurityConfiguration , se deben eliminar las anotaciones @Bean de SingleSignOutFilter y CasAuthenticationEntryPoint . Este parecía ser el problema principal y era bastante difícil de rastrear.

Además, uno debe hacer cambios en application.properties :

  • reemplace el valor de app.service.security de ../j_spring_cas_security_check a ../login/cas
  • reemplace spring.view.prefix con spring.mvc.view.prefix
  • reemplace el suffix también`

Eso es todo.

about 4 years ago · Santiago Trujillo Denunciar

0

Según https://github.com/grails-plugins/grails-spring-security-cas/commit/347217482b16be85d775016d10b6b4ccc2f5825f , si también establece la propiedad ignoreInitConfiguration en true , entonces debería solucionar el problema, o al menos lo hizo para mí.

 <bean id="singleLogoutFilter" class="org.jasig.cas.client.session.SingleSignOutFilter"> <property name="casServerUrlPrefix" value="${cas.casServerUrlPrefix}"/> <property name="ignoreInitConfiguration" value="true" /> </bean>
about 4 years ago · Santiago Trujillo Denunciar

0

 @Bean open fun singleSignOutFilter(): SingleSignOutFilter { val singleSignOutFilter = SingleSignOutFilter() singleSignOutFilter.setIgnoreInitConfiguration(true) singleSignOutFilter.setCasServerUrlPrefix(CAS_URL_PREFIX) return singleSignOutFilter }
about 4 years ago · Santiago Trujillo Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda