我有RequestCache
从哪里可以获得redirectURL,用户登陆成功后将登陆。我使用spring security进行身份验证。
现在我想通过Authentication
检查权限是否具有redirectURL的访问权限。
* AuthenticationSuccessHandler.java
@Override
public void onAuthenticationSuccess(final HttpServletRequest request, final HttpServletResponse response,
final Authentication authentication) throws IOException, ServletException
{
final RequestCache requestCache = new HttpSessionRequestCache();
final SavedRequest savedRequest = requestCache.getRequest(request, response);
String redirectURL = savedRequest.getRedirectUrl()
Collection<? extends GrantedAuthority> authorities = authentication.getAuthorities();
// Need to check redirectURL whether it is authorized or not
......
}
我知道有办法使用请求检查hasRole
- &gt; request.isUserInRole(ROLE)
但在我的情况下,请求不会提供我想要授权的URL。
我的目标网址是redirectURL,我可以想要授权。请帮忙。
答案 0 :(得分:0)
似乎你需要自定义访问决策选民。看看这篇文章:http://docs.spring.io/spring-security/site/docs/3.0.x/reference/authz-arch.html基本上你已经对用户进行了身份验证,但想要检查他是否有权访问某些资源。您可以注册自定义选民或更改现有选民。看看这个stackoverflow问题Spring Security: AccessDecisionVoter