Glassfish摘要认证

Glassfish摘要认证,glassfish,jax-rs,java-ee-6,java-ee-7,jersey-2.0,Glassfish,Jax Rs,Java Ee 6,Java Ee 7,Jersey 2.0,我想使用JAX-RS构建RESTful Web服务(Jersey+Jackson,Jackson用于生成JSON) 我使用GlassFish4.0作为服务器,使用netbeans作为IDE Web服务工作正常,但目前我没有任何身份验证 现在我考虑的是摘要身份验证,它对密码进行散列,这样你就不需要用纯文本传输密码了。此外,我想使用https,以便对数据进行加密 我理解这个理论。但我不知道如何用玻璃鱼在Netbeans中实现这一点 我看到一些教程在glassfish的管理控制台中做了一些事情。但是仅

我想使用JAX-RS构建RESTful Web服务(Jersey+Jackson,Jackson用于生成JSON)

我使用GlassFish4.0作为服务器,使用netbeans作为IDE

Web服务工作正常,但目前我没有任何身份验证

现在我考虑的是摘要身份验证,它对密码进行散列,这样你就不需要用纯文本传输密码了。此外,我想使用https,以便对数据进行加密

我理解这个理论。但我不知道如何用玻璃鱼在Netbeans中实现这一点

我看到一些教程在glassfish的管理控制台中做了一些事情。但是仅仅在netbeans中难道没有办法做到这一点吗?我不能在netbeans中定义一个在部署应用程序时创建的领域吗


在创建领域和内容之后。我认为我需要在我的所有资源(Web服务)中注入某种经过身份验证的“用户”对象。但我以前从未这样做过。我正在寻找一个很好的教程,它描述了我如何设置摘要身份验证,以及如何通过netbeans使用netbeans实现这一点,以便我能够很好地理解它。

注意:我的回答没有涵盖问题中与使用netbeans配置容器身份验证相关的部分

我知道您只需要实现服务器端(不需要客户端)

在服务器上,需要解决两个部分:身份验证和授权

认证

如果决定使用HTTP基本身份验证、HTTP摘要身份验证或客户端证书身份验证,则需要让Glassfish执行身份验证。如果您想使用SSL进行传输,我宁愿使用HTTP基本身份验证。密码以明文形式发送,但通信是加密的。优点是这种身份验证更容易为客户端实现。要定义HTTP基本身份验证,可以使用应用程序的web.xml并定义“安全约束”和“登录配置”标记。例如:

<security-constraint>
    <web-resource-collection>
        <url-pattern>/rest/*</url-pattern>
    </web-resource-collection>
    <auth-constraint>
        <role-name>customer</role-name>
        <role-name>admin</role-name>
    </auth-constraint>
</security-constraint>
<login-config>
    <auth-method>BASIC</auth-method>
    <realm-name>my-defaul-realm</realm-name>
</login-config>
这将导致只有角色为“admin”的用户才能执行get()方法

您可以查看Jersey文档以了解更多详细信息(安全章节):

注意:我的回答不包括问题中与使用Netbeans配置容器身份验证相关的部分

我知道您只需要实现服务器端(不需要客户端)

在服务器上,需要解决两个部分:身份验证和授权

认证

如果决定使用HTTP基本身份验证、HTTP摘要身份验证或客户端证书身份验证,则需要让Glassfish执行身份验证。如果您想使用SSL进行传输,我宁愿使用HTTP基本身份验证。密码以明文形式发送,但通信是加密的。优点是这种身份验证更容易为客户端实现。要定义HTTP基本身份验证,可以使用应用程序的web.xml并定义“安全约束”和“登录配置”标记。例如:

<security-constraint>
    <web-resource-collection>
        <url-pattern>/rest/*</url-pattern>
    </web-resource-collection>
    <auth-constraint>
        <role-name>customer</role-name>
        <role-name>admin</role-name>
    </auth-constraint>
</security-constraint>
<login-config>
    <auth-method>BASIC</auth-method>
    <realm-name>my-defaul-realm</realm-name>
</login-config>
这将导致只有角色为“admin”的用户才能执行get()方法

您可以查看Jersey文档以了解更多详细信息(安全章节):