2016-07-28 97 views
-1

假设我有一个Spring应用程序,其请求被授权与http.authorizeRequests()和@PreAuthorizeSpring Security的4 - 获取授权映射

有没有办法编程获取这些映射? 在Spring中是否存在api,我可以检索哪些url已授权给当前已认证的用户?

回答

0

我不知道是否有类似于我们更好的方式传似@RequestHeader请求头(“内容类型”)......我很想看到...

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

,但低于为绝对是一个选择。

假设您知道如何编写覆盖或编写自己的方法以用于Spring安全性(自定义类扩展SecurityExpressionRoot)。如果是这样,如果你有一个方法i.e..authorizeAccess

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

然后,我们可以将所有的URL在恒定文件..

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)")