我使用CXF和Spring开发了一个Java Web服务。 由于安全原因,我想隐藏WSDL,尽管WS仍然可用。 有没有办法用CXF做到这一点?
答案 0 :(得分:2)
您可以在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);
}
}