Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

509
Visualizações
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/**"); }
about 4 years ago · Santiago Trujillo
2 Respostas
Responde à pergunta

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.

about 4 years ago · Santiago Trujillo Relatório

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.

about 4 years ago · Santiago Trujillo Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda