您好,所有Spring Security专家!
我一直在开发许多微服务,并且遇到了安全问题。
在我的项目中,我使用的认证/授权通过JWT。
任何人可以回答我有什么可以导致运行时异常
{
"timestamp": "2019-02-02T00:40:38.211+0000",
"status": 500,
"error": "Internal Server Error",
"message": "Failed to evaluate expression 'authentication.name == userId'",
"path": ".../2"
}
在这段代码中:
@PreAuthorize("authentication.name == userId")
@GetMapping("/{userId}")
ResponseEntity<String> get(@PathVariable final String userId);
我也用@PreAuthorize("principal.username == #userId")
进行了尝试,但是在@PreAuthorize("hasAuthority('ROLE_COMRADE_MAJOR')")
正常运行的同时出现了相同的异常情况。
要解决此问题,我应该更改什么?
答案 0 :(得分:0)
应该是这样的
@PreAuthorize("#userId == authentication.name")
ResponseEntity<String> get(@Param("userId") String userId);
例如参见https://github.com/spring-projects/spring-security/issues/2376