绕过Spring Security @preauthorize

时间:2013-10-07 11:28:17

标签: java spring spring-security

我从Web层调用以下方法抛出具有附加权限的登录用户:

@PreAuthorize("hasRole('list_users_permission')")
public List<UserDto> getAllUsers() {
    ........
}

但现在我想通过调度程序作业调用它,这意味着我没有登录用户。

是否有办法绕过此注释 @PreAuthorize(“hasRole('list_users_permission')”)或创建具有所有必需权限的虚拟用户?

1 个答案:

答案 0 :(得分:2)

首先,将getAllUsers()委托给非安全方法:

@PreAuthorize("hasRole('list_users_permission')")
public List<UserDto> getAllUsers() {
    return doGetAllUsers();
}

public List<UserDto> doGetAllUsers() {
    ...
}

然后使预定代码调用doGetAllUsers()