У меня много 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
}