Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

212
Views
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 answers
Answer question

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 Report

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 Report

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 Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!