如何让@RunAs在没有主体的@Webservice中工作



我正在尝试让Glassfish中声明的@WebService能够调用EJB,该EJB需要用户担任给定的角色。目前,我的WebService没有身份验证(我怀疑我是否会很快添加它)。

撇开安全考虑不谈(我完全知道这不是更好的方法,谢谢),因为我没有登录用户,我的WebServiceContext alays告诉我context.isUserInRole("importer") althgouth,我的@WebService也用@RunAs("importer")注释。

我该怎么做?(当然,不需要为我的web服务添加安全性)。

原来错误不是预期的。

我的glassfish-web.xml不正确,因为它是

<security-role-mapping>
    <role-name>guest</role-name>
    <principal-name>guest</principal-name>
    <group-name>users</group-name>
</security-role-mapping>

似乎,在遇到这样的配置时,Glassfish创建了一个只包含组规范而不包含主体的主体。因此,我删除了group-name行,一切都正常。我的glassfish-web.xml现在包含

<security-role-mapping>
    <role-name>guest</role-name>
    <principal-name>guest</principal-name>
</security-role-mapping>

最新更新