Как мне изменить 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()
}