努力使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服务,但我不确定如何执行此操作。
任何帮助都将不胜感激。
答案 0 :(得分:2)
如果你想使用CXF的KerberosAuthenticationFilter
,你必须使用CXF作为JAX-RS实现,而不是泽西。
您可以在CXF JAX-RS帮助页面或this tutorial中了解如何执行此操作。首先,您必须从web.xml
中删除所有配置,因为它仅对Jersey有效。然后按照教程创建服务。
最后,您必须在提到的文档中添加提到的KerberosAuthenticationFilter
到CXF弹簧配置。
修改强>
因为链接教程确实没有运行我修复了它。您可以从我的github项目RestWithCXF下载它。
您可能还会在CXF发行版的samples\jax_rs
中找到有用的示例。