Spring Security 4 - 获取授权映射

时间:2016-07-28 13:40:02

标签: spring-security

假设我有一个Spring应用程序,其请求是通过http.authorizeRequests()和@PreAuthorize

授权的

有没有办法以编程方式获取这些映射? 在Spring中是否有api我可以检索哪些URL被授权给当前经过身份验证的用户?

1 个答案:

答案 0 :(得分:0)

我不知道是否有类似于我们传递请求标题的更好方法,如@RequestHeader(“Content-Type”)...我很乐意看到......

@PreAuthorize("authorizeAccess(#user,#contentType,)")
public Idea somemethod(@RequestBody User user, @RequestHeader("Content-Type") String contentType )
{..}

但下面绝对是一种选择。

假设您知道如何编写覆盖或编写自己的方法以在spring security中使用(自定义类扩展SecurityExpressionRoot)。如果是这样,如果你有一个方法,即..authorizeAccess

public boolean authorizeAccess(String mapping)
{
  // use  mapping to authorize
  .. do something
}

然后,我们可以将所有网址都保存在一个常量文件中。

package org.somepackage;
public interface URLMappings {
public static String ADMIN = "/admin";
}

然后将这些网址作为常量传递..

@RequestMapping(value = URLMappings.ADMIN, method = RequestMethod.POST)
@PreAuthorize("authorizeAccess(T(org.somepackage.URLMappings).ADMIN)")