Spring Security Java Config ne génère pas d'URL de déconnexion
Je suis à l'aide de Printemps 4.0.5.COMMUNIQUÉ de et de la Sécurité Printemps 3.2.4.
Je suis en train de créer un simple exemple d'application à l'aide de java config (basé sur le Printemps des échantillons). L'application démarre et que l'authentification fonctionne correctement, je suis redirigé vers un formulaire de connexion lors de l'accès protégé url /paramètres/profil
Cependant il n'y a pas de /déconnexion url générée? si je frappe localhost:8080/déconnexion, j'obtiens une erreur 404.
J'ai utilisé le même code sur un projet précédent, alors peut-être a quelque chose à voir avec les versions?
Heres la Sécurité de mon Config
@Configuration
@EnableWebMvcSecurity
public class SecurityConfig extends WebSecurityConfigurerAdapter {
@Autowired
public void configureGlobal(AuthenticationManagerBuilder auth) throws Exception {
auth.inMemoryAuthentication().withUser("user").password("password").roles("USER");
auth.inMemoryAuthentication().withUser("admin").password("password").roles("ADMIN");
}
@Override
protected void configure(HttpSecurity http) throws Exception {
http.authorizeRequests()
.antMatchers("/settings/**").hasRole("ROLE_ADMIN")
.and()
.formLogin()
.and()
.logout()
.deleteCookies("remove")
.invalidateHttpSession(true)
.logoutUrl("/logout")
.logoutSuccessUrl("/logout-success")
.permitAll();
}
}
Voici mon WebAppInitializer pour l'amorçage de l'application
public class WebAppInitializer extends AbstractAnnotationConfigDispatcherServletInitializer {
@Override
protected Class<?>[] getRootConfigClasses() {
return new Class<?>[] { SecurityConfig.class , MvcConfig.class };
}
@Override
protected Class<?>[] getServletConfigClasses() {
return null;
}
@Override
protected String[] getServletMappings() {
return new String[] {"/"};
}
}
et enfin mon MvcConfig
@EnableWebMvc
@Configuration
@ComponentScan(basePackages = {"web"})
public class MvcConfig extends WebMvcConfigurerAdapter {
@Bean
public ViewResolver viewResolver() {
InternalResourceViewResolver viewResolver = new InternalResourceViewResolver();
viewResolver.setViewClass(JstlView.class);
viewResolver.setPrefix("/WEB-INF/views");
viewResolver.setSuffix(".jsp");
return viewResolver;
}
}
source d'informationauteur Ayub Malik
Vous devez vous connecter pour publier un commentaire.
Par défaut de la requête POST est nécessaire à l'url de déconnexion. Pour effectuer la déconnexion sur demande, vous devez:
Ou si vous voulez soutenir
PUT
ou une autre méthode, passer en paramètre:Voir les Docs: http://docs.spring.io/spring-security/site/docs/3.2.4.RELEASE/reference/htmlsingle/ (section 6.5.3. La Déconnexion)