在Wildfly 9上以匿名用户身份访问安全EJB

时间:2017-02-14 22:11:10

标签: java security java-ee ejb wildfly

我有以下设置:Wildfly 9服务远程EJB客户端以及运行一些执行某些逻辑的TimerTask实例。

大多数EJB方法都由远程客户端调用,因此受到保护(通过@RolesAllowed)。 现在,其中一些方法也将由服务器内的TimerTask调用,在这种情况下,我没有主体或安全上下文,这导致EJB方法调用失败。

我的解决方法是这样的:

EJB:

git rebase B

readSomething()是远程接口的一部分,readSomethingUnrestricted()是本地接口的一部分。

缺点是我有一组相当大的EJB服务方法,我不想复制所有这些方法(一个限制为远程,一个不限制本地调用)。

有没有更好的方法来实现这个?

谢谢!

1 个答案:

答案 0 :(得分:0)

您应该可以通过@javax.annotation.security.RunAs("readRole")注释计时器任务来完成您想要的任务。