我目前正在像这样检查权限。
@PreAuthorize("hasRole('ADMIN') or hasAuthority('GET_BOOK')")
@PostMapping("/find")
public Pagination<BookDTO> find(@Valid @RequestBody QueryCriteria queryCriteria) {
return bookService.find(queryCriteria);
}
但我不知道是否还有其他方法可以检查,我想检查一下方法。
@PostMapping("/find")
public Pagination<BookDTO> find(@Valid @RequestBody QueryCriteria queryCriteria) {
// Check PreAuthorize here
.....
return bookService.find(queryCriteria);
}
实体图示例:
- 1:有一种写法:图像示例1
- 2:另一个拼写是:图像示例2
谢谢!
检查授权毕竟不是一个好做法。但是你可以以下代码片段:
Object principal= SecurityContextHolder.getContext().getAuthentication().getPrincipal();
if (principal instanceof UserDetails) {
String username = ((UserDetails)principal).getUsername();
} else {
String username = principal.toString();
}
每次你需要手动操作时,都会在这里完成,这将是一项成本高昂的任务!!
以下是有关春季安全性的更多信息:https://spring.io/guides/topicals/spring-security-architecture