私のビジネスメソッドには多くの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
}