如何让@RunAs在没有委托人的@Webservice中工作?

时间:2012-03-23 10:51:57

标签: java web-services java-ee glassfish jax-ws

我试图在Glassfish中声明@WebService能够调用一个EJB,该EJB要求用户处于给定的角色。目前,我的WebService没有身份验证(我怀疑我会尽快添加它)。

除了安全考虑因素(我完全知道它并不是更好的做事方式,谢谢),因为我没有登录用户,我的WebServiceContext alays告诉我context.isUserInRole("importer") althgouth my @WebService也注明了@RunAs("importer")

我该如何做到这一点? (当然,没有为我的网络服务增加安全性。)

1 个答案:

答案 0 :(得分:0)

结果错误不是预期错误。

我的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>