我使用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);
}
}