我试图在Glassfish中声明@WebService
能够调用一个EJB,该EJB要求用户处于给定的角色。目前,我的WebService没有身份验证(我怀疑我会尽快添加它)。
除了安全考虑因素(我完全知道它并不是更好的做事方式,谢谢),因为我没有登录用户,我的WebServiceContext
alays告诉我context.isUserInRole("importer")
althgouth my @WebService也注明了@RunAs("importer")
。
我该如何做到这一点? (当然,没有为我的网络服务增加安全性。)
答案 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>