2

我的 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()
 }
4

0 回答 0