Mon fermeture de session application sert à la fois des pages Web et de repos (points d'extrémité de démarrage de printemps + printemps 4)Spring Security publie
Je suis en train de définir un InMemoryAuth de base, mais/fermeture de session ne fonctionne pas. A partir du navigateur, il redirige vers/logout? Logout avec un 404 et aucun effet sur la session de l'utilisateur.
@EnableWebSecurity
@Configuration
class WebSecurityConfig extends WebSecurityConfigurerAdapter {
@Override
protected void configure(HttpSecurity http) throws Exception {
http
.authorizeRequests()
.antMatchers("/rest/**").hasRole("USER")
.antMatchers("/ui/**").hasRole("USER")
.and().logout()
.logoutUrl("/logout")
.and().httpBasic()
.and().csrf().disable();
}
@Autowired
public void configureGlobal(AuthenticationManagerBuilder auth) throws Exception {
auth
.inMemoryAuthentication()
.withUser("user").password("pass").roles("USER");
}
}
EDIT
avec la chaîne followind
http
.authorizeRequests().anyRequest().authenticated()
.and().logout().logoutUrl("/logout").logoutSuccessUrl("/").permitAll()
.and().httpBasic()
.and().csrf().disable();
et une page de racine définie, aucune erreur 404.
Avec debug activé, je suis en mesure de voir
Logging out user 'org.springframew[email protected]442b5a9f: Principal: [email protected]: Username: user; Password: [PROTECTED]; Enabled: true; AccountNonExpired: true; credentialsNonExpired: true; AccountNonLocked: true; Granted Authorities: ROLE_USER; Credentials: [PROTECTED]; Authenticated: true; Details: org.sprin[email protected]b364: RemoteIpAddress: 0:0:0:0:0:0:0:1; SessionId: null; Granted Authorities: ROLE_USER' and transferring to logout destination
Invalidating session: B264148444D372CFC899A5B920818B68
mais le navigateur ne demande pas à l'utilisateur/passwd plus, je suis en mesure d'accéder à tous les urls ..
qui est ce que je viens de découvrir ici http://stackoverflow.com/a/5033081/1853780 Je suppose que la solution est de diviser mon application en 2 applications séparées, l'une pour le repos avec auth de base, l'autre avec classique formulaire de connexion servant des pages Web. merci d'avoir répondu! –