15
Ich benutze die Spring-Security-JavaConfig-Bibliothek für die Feder Sicherheit. Wenn ich XML-Konfigurationsdateien verwendet haben, würde ich so etwas wie dieses verwenden, um eine benutzerdefinierte Zugriff verweigert Seite zu definieren:Wie füge ich einen Zugriff verweigert Handler in Spring-Sicherheit-javaconfig
<http auto-config="true">
<intercept-url pattern="/admin*" access="ROLE_ADMIN" />
<access-denied-handler ref="accessDeniedHandler"/>
</http>
Hier ist die Klasse meine Sicherheitskonfiguration so weit:
@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");
}
}
Beachten Sie, dass das mehrfache Aufrufen von inMemoryAuthentication() mehrere InMemoryUserDetailsManager-Instanzen erstellt. Wenn Sie nicht alle Methoden verketten möchten, können Sie den Aufruf von auth.inMemoryAuthentication() in einer Variablen speichern. Oder Sie können die Methodenverkettung als Umriss in den Beispielen https://github.com/SpringSource/spring-security-javaconfig/blob/master/samples-web.md#sample-web-security-spring-java-config verwenden –