我从Web层调用以下方法抛出具有附加权限的登录用户:
@PreAuthorize("hasRole('list_users_permission')")
public List<UserDto> getAllUsers() {
........
}
但现在我想通过调度程序作业调用它,这意味着我没有登录用户。
是否有办法绕过此注释 @PreAuthorize(“hasRole('list_users_permission')”)或创建具有所有必需权限的虚拟用户?
答案 0 :(得分:2)
首先,将getAllUsers()
委托给非安全方法:
@PreAuthorize("hasRole('list_users_permission')")
public List<UserDto> getAllUsers() {
return doGetAllUsers();
}
public List<UserDto> doGetAllUsers() {
...
}
然后使预定代码调用doGetAllUsers()
。