15
Sto utilizzando la libreria spring-security-javaconfig per la sicurezza di primavera. Se dovessi usare file di configurazione XML, userei qualcosa di simile per definire una pagina di accesso personalizzato negato:Come aggiungere un gestore di accesso negato in spring-security-javaconfig
<http auto-config="true">
<intercept-url pattern="/admin*" access="ROLE_ADMIN" />
<access-denied-handler ref="accessDeniedHandler"/>
</http>
Ecco la mia sicurezza classe di configurazione finora:
@Configuration
@EnableWebSecurity
public class SecurityConfigurator extends WebSecurityConfigurerAdapter {
@Override
protected void registerAuthentication(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.authorizeUrls().antMatchers("/admin").hasRole("ADMIN");
}
}
Nota che invocare inMemoryAuthentication() più volte è in realtà la creazione di più istanze InMemoryUserDetailsManager. Se non vuoi mettere in catena il metodo, puoi memorizzare la chiamata su auth.inMemoryAuthentication() in una variabile. Oppure puoi usare il metodo di concatenazione come schema negli esempi https://github.com/SpringSource/spring-security-javaconfig/blob/master/samples-web.md#sample-web-security-spring-java-config –