【问题标题】:Enable https for java ejb Webservice为 java ejb Webservice 启用 https
【发布时间】:2012-02-11 12:21:33
【问题描述】:

我正在使用 ejb 3 和 glassfish 3.1.1 开发 Web 服务。我正在使用 Netbeans 7.0,想知道如何在端口 8181 上为此 Web 服务启用 https。

我不需要任何身份验证方法,只需通过 https 保护通信!

谢谢

阿德姆

【问题讨论】:

    标签: web-services netbeans https ejb


    【解决方案1】:

    您需要按照here 的说明指定安全连接。本质上,您需要在部署描述符 web.xml 中设置:

    <security-constraint>
        ...
        <user-data-constraint>
            <transport-guarantee>CONFIDENTIAL</transport-guarantee>
        </user-data-constraint>
    </security-constraint>
    

    但是NetBeans 将为您插入代码:打开web.xml,单击编辑器顶部的“安全”选项卡,然后单击“添加安全约束”按钮。输入名称,在 URL 模式中写入 /*,设置所有 Http 方法,并指定 Confidential 作为传输保证。

    如果您没有 web.xml,因为您只部署 Enterprise Java Bean,请创建一个新 GlassFish 描述符 glassfish-ejb-jar.xml 并像这样填充它(或查看 here 文件层次结构):

    <glassfish-ejb-jar>
      <enterprise-beans>
        <ejb>
          <ejb-name>Hello</ejb-name>
          <webservice-endpoint>
            <port-component-name>Hello</port-component-name>
            <transport-guarantee>CONFIDENTIAL</transport-guarantee>
          </webservice-endpoint>
        </ejb>  
      </enterprise-beans>/>
    </glassfish-ejb-jar>
    

    从现在开始,您的应用程序将使用端口 8181。

    有关如何在 Netbeans Web 应用程序中设置安全性的详细信息,请参阅 here,有关证书的信息,请参阅 here

    【讨论】:

    • 你确定这个解决方案也适用于 ejb webservices。我可以想象这在通过 servlet 使用 webservice 时适用,但是 ejb webservice 怎么样。是否可以在描述符文件中为 ejb webservices 设置传输保证,可能是sun-ejb-jar.xml
    • @AdemC 我很高兴。如果有用,请接受答案,以提高您的声誉并在 StackOverflow 中获得更多权利
    • 仅使用上面建议的内容创建 glassfish 特定描述符文件 (glassfish-ejb-jar.xml) 有助于解决在 EJB 中使用 @WebService 注释实现的 Web 服务的情况。在这种情况下,web.xml 中的安全约束部分没有做任何事情。
    猜你喜欢
    • 2013-05-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-12-19
    • 2017-03-23
    • 1970-01-01
    • 1970-01-01
    • 2016-03-17
    相关资源
    最近更新 更多