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

513
Vistas
Página Spring Security 404 para usuarios no autenticados

Estoy usando Spring Boot y Thymeleaf. Tengo una página de plantilla 404 personalizada definida en src/main/resources/templates/error/404.html

Esto funciona correctamente cuando los usuarios han iniciado sesión.

Sin embargo, cuando cierran la sesión, no obtienen ningún tipo de página 404, solo se les redirige a /login .

Estoy pensando que mi configuración de seguridad debe cambiar, pero no estoy seguro de qué.

 @Override protected void configure(HttpSecurity http) throws Exception { http.authorizeRequests() .antMatchers("/","/register*","/resetPassword","/forgotPassword","/login","/404").permitAll() .antMatchers("/admin/**").hasAuthority("ADMIN").anyRequest() .authenticated().and().formLogin().loginPage("/login").failureUrl("/login?error") .defaultSuccessUrl("/dashboard").successHandler(successHandler) .usernameParameter("email").passwordParameter("password") .and().logout() .logoutRequestMatcher(new AntPathRequestMatcher("/logout")).logoutSuccessUrl("/login?logout").and() .exceptionHandling().accessDeniedPage("/access-denied"); } @Override public void configure(WebSecurity web) throws Exception { web.ignoring().antMatchers("/error**","/resources/**", "/static/**", "/css/**", "/js/**", "/img/**"); }
over 4 years ago · Santiago Trujillo
2 Respuestas
Responde la pregunta

0

En primer lugar, lo animo a usar sangría cuando use la configuración de Java para configurar su seguridad para su aplicación Spring. Ayuda con la legibilidad.

Tenga en cuenta todos los métodos de nivel superior en la primera sangría (authRequest,formLogin,logout), todos configuran/actualizan el objeto HTTP en sí. Todos estos elementos son de la clase org.springframework.security.config.annotation.web.builders.HttpSecurity .

Los hijos de estas clases refinan aún más la configuración de seguridad HTTP.

 http .authorizeRequests() .antMatchers("/","/register*","/resetPassword","/forgotPassword","/login","/404") .permitAll() .antMatchers("/admin/**").hasAuthority("ADMIN") .anyRequest().authenticated() // <-------- .and() .formLogin() .loginPage("/login") .failureUrl("/login?error") .defaultSuccessUrl("/dashboard") .usernameParameter("email").passwordParameter("password") .and() .logout() .logoutRequestMatcher(new AntPathRequestMatcher("/logout")) .logoutSuccessUrl("/login?logout") .and() .exceptionHandling() .accessDeniedPage("/access-denied");

Tenga en cuenta .anyRequest().authenticated() indica específicamente que cualquier solicitud debe ser autenticada. Entonces, cuando intente ir a cualquier URL faltante en su dominio, le pedirá que inicie sesión en lugar de ir a la página 404.

Entonces, si elimina esa declaración y luego intenta ir a una página de URL faltante, lo redirigirá a una página 404.

over 4 years ago · Santiago Trujillo Denunciar

0

Si elimina .anyRequest().Authenticated(), podrá iniciar sesión sin autenticarse.

Por lo tanto, no intente eliminar. Por ejemplo, si va a la dirección "http://localhost:8080/user", accederá a la página de autorización. Y si intenta ingresar a la página "http://localhost:8080/user/", será llevado a la página de usuario. Tenga en cuenta que los enlaces difieren solo por la barra inclinada al final. Por supuesto, si elimina ".anyRequest().Authenticated()", en este caso necesita agregar más parámetros a antMatchers como "/usuario" y "/usuario/"

Por lo tanto, sea cuidadoso y atento.

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