【问题标题】:Apache CXF - JAX-RS SecurityApache CXF - JAX-RS 安全性
【发布时间】:2014-01-03 22:57:51
【问题描述】:

努力启动并运行经过 Kerberos 身份验证的 Web 服务,虽然 Apache CXF 似乎满足我的要求,但我正在努力开始。

在 Tomcat 7 上托管,我的超级简单测试服务可以工作,但我不知道如何让 CXF 提供安全性:

import javax.ws.rs.GET;
import javax.ws.rs.Path;
import javax.ws.rs.Produces;
import javax.ws.rs.QueryParam;

    @Path("test")
    public class ItemResource {

        public ItemResource() {
        }


        @GET
        @Produces("application/json")
        public String getJson(@QueryParam("name") int test) {

            return "test";

        }
    }

Web.xml

    <servlet>
            <init-param>
                <param-name>com.sun.jersey.api.json.POJOMappingFeature</param-name>
                <param-value>true</param-value>
            </init-param>
    <servlet-name>jersey-serlvet</servlet-name>
    <servlet-class>
                 com.sun.jersey.spi.container.servlet.ServletContainer
            </servlet-class>
    <init-param>
         <param-name>com.sun.jersey.config.property.packages</param-name>
         <param-value>net.example.test/param-value>
    </init-param>
    <load-on-startup>1</load-on-startup>
</servlet>

The documentation 说我可以使用 org.apache.cxf.jaxrs.security.KerberosAuthenticationFilter 保护 Rest 服务,但我不确定如何执行此操作。

任何帮助将不胜感激。

【问题讨论】:

  • 你问过CXF用户列表了吗?

标签: java apache tomcat cxf


【解决方案1】:

如果你想使用 CXF 的 KerberosAuthenticationFilter,你必须使用 CXF 作为 JAX-RS 实现,而不是 Jersey。

您可以在 CXF JAX-RS 帮助页面或this tutorial 中了解如何执行此操作。首先,您必须从 web.xml 中删除所有配置,因为它仅对 Jersey 有效。然后按照教程创建服务。

最后,您必须像引用的文档中那样将提到的KerberosAuthenticationFilter 添加到 CXF 弹簧配置中。

编辑:

因为链接的教程确实没有运行,所以我修复了它。你可以从我的github项目RestWithCXF下载。

您还可以在 CXF 发行版的 samples\jax_rs 中找到有用的示例。

【讨论】:

  • 不幸的是,该教程不起作用,它可以编译但无法运行。碰巧知道其他人吗?
  • 我用固定教程代码的链接更新了我的答案。请看一下。也许有更好的教程(请注意,无论您使用哪个应用程序服务器,CXF 配置都是相同的)但我懒得为您搜索它:P
  • 感谢@Dawid,我使用原始损坏的教程让它工作了,但它并不有趣,你的工作示例会让下一个人更容易!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2013-12-18
  • 1970-01-01
  • 1970-01-01
  • 2014-09-11
  • 1970-01-01
  • 2014-05-31
  • 2014-03-10
相关资源
最近更新 更多