我已经使用 CXF 和 Spring 开发了一个 Java Web 服务。
由于安全原因,我想隐藏 WSDL,尽管 WS 仍然可用。
有没有办法使用 CXF 做到这一点?
最佳答案
您可以在 web.xml 中添加一个 servlet 过滤器来停止处理 ?wsdl 请求:
<filter>
<filter-name>wsdlFilter</filter-name>
<filter-class>com.mycompany.myWsdlFilterClass</filter-class>
</filter>
<filter-mapping>
<filter-name>wsdlFilter</filter-name>
<url-pattern>*?wsdl</url-pattern>
</filter-mapping>
doFilter() 方法如下所示:
public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException,
ServletException {
String queryString = ((HttpServletRequest) request).getQueryString();
if(queryString!=null && queryString.toLowerCase().startsWith("wsdl")){
return; //the filter chain stops and request does not get processed
}
else{
chain.doFilter(request, response);
}
}
关于cxf - 如何使用 CXF 隐藏 WSDL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4461972/