【问题标题】:Jax rs authentication using CXF frame work without spring security使用没有弹簧安全性的 CXF 框架的 Jax rs 身份验证
【发布时间】:2013-10-23 01:32:02
【问题描述】:

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

【问题讨论】:

  • 您使用的是什么容器?雄猫?其他?
  • 你也没有提到你想如何获得授权。您可以使用 JAX-RS 处理程序来检查负载并向 XACML 决策引擎发出授权请求。

标签: authentication authorization cxf jax-rs restful-authentication


【解决方案1】:

您可以使用容器级别的身份验证。例如,在 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 元素

这是一个示例 sn-p:

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

请注意,这里也有一个很好的答案:Easy way for Authentication and Authorization with JAX-RS Jersey

【讨论】:

  • 感谢您的回复。我正在使用 tomcat 容器。但是我可以向供应商(ROLE_VENDOR)和我的超级管理员((ROLE_SUPERADMIN))提供 API 密钥,我可以用我的数据库检查它。所以我想通过使用 jaxrs 对用户进行身份验证cxf,我的一些网络服务需要授权给供应商,但我的超级管理员可以拥有所有权限。
猜你喜欢
  • 2015-12-18
  • 2017-09-22
  • 1970-01-01
  • 2012-02-15
  • 2015-09-04
  • 2021-06-05
  • 1970-01-01
  • 2014-05-20
  • 1970-01-01
相关资源
最近更新 更多