在Spring Security中使用params访问URL

时间:2016-03-05 17:17:37

标签: java spring spring-mvc authentication spring-security

我是Spring Security的新手,在使用路径变量或参数验证特定URL方面存在问题。

假设我有一些网址:/messages/1其中1是用户的ID。

我想要做的是只允许ID = 1的用户使用此URL访问页面。

如果用户通过身份验证,Spring Security允​​许访问某些内容,但如何才能使身份验证更加狭窄?

1 个答案:

答案 0 :(得分:1)

假设您id中有UserDetails个属性:

@RequestMapping(value="/messages/{userId}", method=HttpMethod.GET)
@PreAuthorize("#userId == authentication.principal.id")
public List<Message> getMessages(@PathVariable String userId) {
    // retrieve from DAO here
}

确保您已在安全配置中启用了注释前/后注释。