java - Apache CXF - JAX-RS 安全

标签 java apache tomcat cxf

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

托管在 Tomcat 7 上,我的 super 简单的测试服务可以工作,但我不知道如何让 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 的 KerberosAuthenticationFilter,您必须使用 CXF 作为 JAX-RS 实现,而不是 Jersey。

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

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

编辑:

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

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

关于java - Apache CXF - JAX-RS 安全,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20914239/

相关文章:

java - 在JSP中创建动态表

tomcat - servlet 容器如何识别来自经过身份验证的用户的请求?

java - assertEquals() 失败的原因

java - 在服务之间共享 Java 类

java - Android:将大图像从 url 传递到 ImageView

apache - ws协议(protocol)和apache mod_proxy_wstunnel配置: error 500

apache - 如何在 Ubuntu 10.04 上配置 Apache 2.2.14 以仅使用 SSL(重定向循环)

php - 在一台服务器中重定向 2 个域的问题

java - 迭代器 isEmpty() 调用导致 noSuchElement 异常?

java - 如何让 Tomcat(等)接受 HTTPS 代理请求?