【问题标题】:How to have @RunAs work in a @Webservice without principal?如何让@RunAs 在没有主体的@Webservice 中工作?
【发布时间】:2012-03-23 10:51:56
【问题描述】:

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

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

我怎样才能做到这一点? (当然,没有增加我的网络服务的安全性)。

【问题讨论】:

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


    【解决方案1】:

    原来错误不是预期的。

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

    【讨论】:

    • 你删除了&lt;principal-name&gt; 不是吗?
    • 我可以请您在Unable to authenticate with jax-ws on Glassfish 上发表评论吗?您的意见将非常有价值。
    • @dma_k 我修正了我的答案更清楚一点。关于您将我重定向到的问题,我猜 glassfish 没有记录一些身份验证拒绝。因此,我添加了一条评论以启用一个审计模块。
    猜你喜欢
    • 2016-01-12
    • 1970-01-01
    • 2013-12-11
    • 2017-01-29
    • 2011-04-11
    • 1970-01-01
    • 1970-01-01
    • 2019-08-13
    • 1970-01-01
    相关资源
    最近更新 更多