我是 jax rs 实现的新手。我创建的 RESTFUL 应用程序包含使用 jax rs 的 Web 服务。但我想为某些 Web 服务提供身份验证和授权。我无法为身份验证配置 web.xml。提前致谢
问问题
1475 次
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 回答