我的业务方法中有许多 EJB。这些方法使用@RolesAllowed 注解来检查用户是否可以执行该方法。
所以我有一个调用这些 EJB 方法的 EJB 调度程序。EJB 调度程序使用匿名用户运行,因此授权失败。
我如何以其他角色运行我的调度程序?对于测试建议,我使用 @RunAs("SYSTEM") 注释运行,但我不知道这是否正确。
我的调度程序类
@RunAs("SYSTEM")
public class InboxScheduler {
protected void inboxFileScan(Timer t) {
receiptFilesService.receiptFiles();
}
}
我的 EJB 课程
@RolesAllowed("SYSTEM")
public void receiptFiles() {
// do anything
}