2013-08-09 9 views
15

Używam biblioteki spring-security-javaconfig dla bezpieczeństwa wiosennego. Gdybym użyciu plików xml config, chciałbym użyć czegoś takiego, aby zdefiniować niestandardowy Odmowa dostępu strony:Jak dodać obsługę odmowy dostępu w spring-security-javaconfig

<http auto-config="true"> 
    <intercept-url pattern="/admin*" access="ROLE_ADMIN" /> 
    <access-denied-handler ref="accessDeniedHandler"/> 
</http> 

Oto moja konfiguracja zabezpieczeń klasa tak daleko:

@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"); 
    } 
} 
+1

Należy zauważyć, że wielokrotne wywoływanie metody InMemoryAuthentication() w rzeczywistości tworzy wiele instancji InMemoryUserDetailsManager. Jeśli nie chcesz, aby metoda była łańcuchem wszystkiego, możesz zapisać wywołanie funkcji auth.inMemoryAuthentication() w zmiennej. Lub możesz użyć metody łańcuchowej jako konspektu na przykładach https://github.com/SpringSource/spring-security-javaconfig/blob/master/samples-web.md#sample-web-security-spring-java-config –

Odpowiedz

30

Przypuszczam, to powinien zrób tak:

HttpSecurity http = ... 
http.exceptionHandling().accessDeniedHandler(myAccessDeniedHandler); 
Powiązane problemy