我是Spring Security的新手,在使用路径变量或参数验证特定URL方面存在问题。
假设我有一些网址:/messages/1
其中1是用户的ID。
我想要做的是只允许ID = 1的用户使用此URL访问页面。
如果用户通过身份验证,Spring Security允许访问某些内容,但如何才能使身份验证更加狭窄?
答案 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
}
确保您已在安全配置中启用了注释前/后注释。