如何使弹簧安全重定向
Posted
技术标签:
【中文标题】如何使弹簧安全重定向【英文标题】:How to make spring security redirect 【发布时间】:2016-09-29 09:22:04 【问题描述】:我有两个jsp页面:第1页和第2页。默认打开第1页,但要打开它,用户需要有正确的角色。当用户没有正确的角色访问某些页面时,我还有一个拒绝访问的页面。我想要做的是,当没有正确角色的用户尝试打开默认页面(Page1)时,不会重定向到拒绝访问页面,而是重定向到 Page2。
【问题讨论】:
【参考方案1】:您可以像这样自定义您的accessDeniedPage
:
http.authorizeRequests()
// your config here ...
.and()
.exceptionHandling().accessDeniedPage("/Page2")
更新
@RequestMapping(..)
public String method(Authentication auth)
if (containsRole(auth.getAuthority(), "ROLE_ADMIN"))
return "/PAGE1";
else
return "redirect:/PAGE2";
【讨论】:
我希望两个页面都存在,在某些情况下我需要此访问被拒绝页面 @user5783530 你的意思是你不期待全局行为,但只针对这种情况?然后从控制器控制它会是更好的方法 是的,仅适用于这种情况,我怎样才能从控制器中做到这一点 @user5783530 您可以在控制器方法中自动连接org.springframework.security.core.Authentication
,然后与getAuthorities()
进行比较以上是关于如何使弹簧安全重定向的主要内容,如果未能解决你的问题,请参考以下文章
CAS服务器认证成功后,如何使Spring安全将用户重定向到原始请求的页面
如何使授权属性返回自定义 403 错误页面而不是重定向到登录页面
Spring MVC 中的 HTTP 303 重定向 * 不附加 JSESSIONID * 并且不触及任何弹簧配置 [重复]