如何从权限服务/请求对象spring获取API名称?

时间:2017-04-20 12:23:52

标签: java spring java-ee spring-boot spring-security

我们正在使用微服务架构在SPRING BOOT中开发API安全性。在这里,我们使用API​​作为休息微服务,我们在其中实现了自定义PREAuthorize服务。

@PreAuthorize("@permissionService.hasPermission()")
@RequestMapping(value="/getUser", produces="application/json", method=RequestMethod.POST , name="Get User")

这里我们将使用API​​名称验证API访问。这里当我们尝试使用API​​路径ex进行验证时。 / rest / api / getUser meansm,我能够从请求对象中获取。

@Service("permissionService")
public class PermissionValidator implements PermissionService{

    RequestAttributes requestAttributes = null;
    HttpServletRequest request = null;
    @Override
    public boolean hasPermission() {
        boolean isAuthorized = false;
        requestAttributes = RequestContextHolder.getRequestAttributes();
        Authentication authentication = SecurityContextHolder.getContext().getAuthentication();
        if (requestAttributes instanceof ServletRequestAttributes) {
            request = ((ServletRequestAttributes) requestAttributes).getRequest();
            System.out.println(request.getAttribute("name"));
        }
        return isAuthorized;
    }
}

问题:

我们想要获取请求映射属性API名称,即name =“Get User”。请帮我完成它。

0 个答案:

没有答案