假设我有一个Spring应用程序,其请求是通过http.authorizeRequests()和@PreAuthorize
授权的有没有办法以编程方式获取这些映射? 在Spring中是否有api我可以检索哪些URL被授权给当前经过身份验证的用户?
答案 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)")