【问题标题】:How to do kerberos / spnego support in a restful service ?如何在安静的服务中做 kerberos/spnego 支持?
【发布时间】:2017-04-24 08:47:16
【问题描述】:

我有一个用 C 编写的客户端,它使用 libcurl 将 json 发送到一个 restful api 服务(比如服务器)。服务器由java编写,restful api由jax-rs之一的jersey实现(非常简单,可以切换到另一个jax-rs实现)。现在我想在 C 客户端访问 java restful api 服务器之间做一些安全工作。我在 Internet 上搜索似乎应该使用 kerberos 或 spnego 进行 HTTP 访问。我遇到了一些问题。

  1. 我想使用 kerberos/spnego 身份验证。但是我查看了 jersey doc (https://jersey.java.net/documentation/latest/security.html) 的安全部分,但没有找到任何与 kerberos 相关的文档。你知道球衣是否支持kerberos吗?

  2. 如果我切换到 Apache CXF,是否容易切换?我查看了有关 CXF kerberos 支持的文档。看起来太简单了,在使用 Apache CXF 时,您是否有任何详细的文档或简单的示例来支持 kerberos 身份验证?

如果有什么不对的地方,请指正。谢谢。

【问题讨论】:

  • 第三个选项是在应用服务器中配置 spnego。我刚刚做了这个。此页面包含一些有关如何在 Tomcat 中执行此操作的信息:tomcat.apache.org/tomcat-8.5-doc/windows-auth-howto.html。我设法做到了这个配置,但是我没有ktpass工具,所以我使用了JDK自带的ktab工具。

标签: web-services rest jersey cxf kerberos


【解决方案1】:

这可以通过泽西岛实现。 Jersey Client 在其实现中使用 ClosableHttpClient。

如果您想为 Kerberos 使用 SPNEGO 身份验证方案,您可能必须编写自定义的 Connector 和 ConnectorProvider [我还没有找到使用 ApacheConnector 设置 AuthenticationScheme 的方法]。

如果它解决了您的用例Can JCIFS be used with Jersey?,请查看这篇文章以供参考:)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-05-30
    • 1970-01-01
    • 2011-05-29
    • 1970-01-01
    相关资源
    最近更新 更多