我们正在使用微服务架构在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”。请帮我完成它。