在JEE应用程序中,我需要能够以统一的方式获取用户主体名称并检查角色(对于我编写的拦截器,它派生了函数角色的权限,并检查那些角色而不是角色。)
对于 EJB ,我知道我可以通过SessionContext
(EJBContext
)和 JAX-RS网络端点访问它们,我可以使用SecurityContext
。
当拦截对Web端点的调用时,未设置EJBContext
(查找EJBContext
的命名异常)。所以在我的拦截器中,我需要回退使用JAX-RS SecurityContext。
有没有办法查找主要名称并检查角色而无需检查EJBContext和SecurityContext?
如果没有,我考虑使用查找来获取上下文。
由于资源/上下文注入不起作用(当上下文不可用时将失败),我将不得不以编程方式查找上下文(SessionContext
,SecurityContext
)。
SessionContext
可以通过以下方式查找:
InitialContext ic = new InitialContext();
SessionContext sessionContext = (SessionContext) ic.lookup("java:comp/env/sessionContext");
我可以用类似的方式查找SecurityContext
吗?