【发布时间】:2015-05-09 12:05:41
【问题描述】:
我有三个角色,我想根据用户的角色在登录后将用户重定向到不同的页面。我知道这可以通过 AuthenticationSuccessHandler 完成,但我在基于 Java 的配置中声明它时遇到了麻烦。
到目前为止,我已经做到了。
protected void configure(HttpSecurity http) throws Exception {
http
.authorizeRequests()
.antMatchers("/resources/**", "/login").permitAll()
.antMatchers("/admin/**").hasRole("USER")
.and()
.formLogin()
.loginPage("/login")
.defaultSuccessUrl("/")
.successHandler(successHandler) //----- to handle user role
.failureUrl("/loginfailed")
.permitAll()
.and()
.logout()
.logoutRequestMatcher(new AntPathRequestMatcher("/logout"))
.deleteCookies("JSESSIONID")
.invalidateHttpSession( true )
.and();
}
我的问题是在哪里声明 successHandler 以及如何在这个类中自动装配它,或者如何在这个类中声明 successHandler 方法并使用它。
【问题讨论】:
-
下面的答案有用吗?
-
感谢您的回答。实际上,老实说,我在项目中遇到了其他一些困难,所以我全神贯注于解决它们。我会尽快检查这个配置。如果发现任何无法解决的问题,肯定会寻求帮助。这看起来确实很简单,一旦我实施它,我肯定会将您的答案标记为已解决。谢谢。
-
它工作正常。只需要很少的自定义修改。谢谢你的回答
标签: spring spring-mvc authentication spring-security