0

我是 jax rs 实现的新手。我创建的 RESTFUL 应用程序包含使用 jax rs 的 Web 服务。但我想为某些 Web 服务提供身份验证和授权。我无法为身份验证配置 web.xml。提前致谢

4

1 回答 1

0

您可以使用容器级身份验证。例如,在 Apache Tomcat 中,您可以配置基于 HTTP 的身份验证(例如 BASIC、DIGEST,甚至基于 FORM,尽管后者对 API 没有意义)。

以配置 HTTP BASIC 身份验证为例,您需要:

  • 在用户存储中定义用户并将 Tomcat 连接到它。默认情况下,Tomcat 为您提供了一个 tomcat-users.xml 文件,您可以使用它来定义用户。您还可以将 Tomcat 配置为使用 LDAP 作为源
  • 更新您的 web.xml 文件以添加security-constraint元素
  • 更新您的 web.xml 以添加login-config元素
  • 更新您的 web.xml 以添加security-role元素

这是一个示例片段:

<security-constraint>
    <web-resource-collection>
        <web-resource-name>Protected Area</web-resource-name>
        <url-pattern>/*</url-pattern>
        <http-method>PUT</http-method>
        <http-method>DELETE</http-method>
        <http-method>GET</http-method>
        <http-method>POST</http-method>
    </web-resource-collection>
    <auth-constraint>
        <role-name>basic-user</role-name>
    </auth-constraint>
</security-constraint>
<login-config>
    <auth-method>BASIC</auth-method>
</login-config>
<security-role>
    <role-name>basic-user</role-name>
</security-role>

请注意,这里也已经有一个很好的答案:使用 JAX-RS Jersey 进行身份验证和授权的简单方法

于 2013-10-15T12:50:53.293 回答