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

85
Vistas
Lanzar BadCredentialsException sin redirigir a la página de inicio de sesión

Así que tengo un controlador Spring, usando Spring Security que fue bloqueado con un simple Funcionó bien.

Ahora tengo el requisito de que -algunas- personas no necesitan iniciar sesión a menos que estén buscando la receta de galletas de mi abuela. Entonces, en el código de mi controlador, verifico qué receta buscan, y si son cookies, lanzo una BadCredentialsException();

Ahora no quiero dividir los métodos del controlador. Estas recetas estarán en una base de datos y algunas (galletas) estarán disponibles para todos, otras querrás un rol específico. (Carnes por ejemplo)

Sin embargo, parece que la excepción se está detectando en el interceptor de excepciones general y se está redirigiendo a la página "algo salió mal".

Quiero que vayan a la página de inicio de sesión, inicien sesión y luego sean redirigidos a la página de recetas.

 <bean id="failureRedirectHandler" class="org.springframework.security.web.authentication.SimpleUrlAuthenticationFailureHandler"> <property name="useForward" value="true"/> </bean>

Nuevamente, todo esto funcionó con intercept-url access="IS_AUTHENTICATED_FULLY" Pero, ¿por qué no funcionará si lanzo explícitamente BadCredentialsException?

over 4 years ago · Santiago Trujillo
1 Respuestas
Responde la pregunta

0

Creo que la excepción que quieres lanzar es AccessDeniedException . Con una configuración estándar, eso redirigirá al usuario a la página de inicio de sesión si actualmente no ha iniciado sesión. Si inició sesión, se mostrará una página de "acceso denegado". Puede personalizar esta página de acceso denegado y, por ejemplo, incluir un enlace para iniciar sesión como un usuario diferente.

La BadCredentialsException probablemente no esté destinada a ser lanzada en los controladores, sino solo internamente en los filtros de seguridad, cuando el usuario realmente ha ingresado algunas credenciales incorrectas.

over 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