Как мне изменить callerPrincipal с таймера EJB?

Мой таймер EJB всегда работает с UNAUTHENTICATED пользователь. Я пытался поставить @RunAs но не сработало. Я попытался изменить значение с помощью отражения и не сработало, мне нужно вызвать удаленный EJB из этого, и мне нужен пользователь, у которого есть разрешение.

@Resource
private SessionContext context;

@Schedule(second= "*/5", minute = "*", hour = "*", persistent = false)
public void executa(){

    Principal callerPrincipal = context.getCallerPrincipal();
    final Field field = getField(callerPrincipal.getClass(), "name");
    field.setAccessible(true);

    try {
        field.set(callerPrincipal,"MYUSER");
    } catch (IllegalAccessException e) {
        e.printStackTrace();
    }

    this.iMyRemoteEjb.doWork()
 }

0 ответов

Другие вопросы по тегам