我正在使用spring MVC和spring security 4.0.2.RELEASE。我可以协助一个角色,并为用户提供权限,之后用户可以使用此代码访问页面;
http.authorizeRequests().antMatchers("/dba/**").access("hasRole('ROLE_ADMIN') or hasRole('ROLE_DBA')")
在我的网站中,注册用户不应访问登录页面,只有匿名用户才能访问。如果注册用户尝试访问登录页面,则应将其重定向到索引页面或其他区域。我怎么能这样做?
答案 0 :(得分:0)
你可以通过多种方式实现这一目标。
您的登录页面uri可能是由控制器方法处理的。最简单的方法是检查用户是否在控制器方法中进行了身份验证,如果是,则只进行重定向:
@RequestMapping("/login")
public String getLoginPage(){
SecurityContext securityContext = SecurityContextHolder.getContext();
Authentication auth = securityContext.getAuthentication();
if(auth != null && auth.isAuthenticated()){
return "redirect:/index";
}
else return "loginTemplate";
}
您还可以构建一个拦截器,在到达控制器之前捕获请求,并在用户已经登录时进行重定向。