cxf - 如何使用 CXF 隐藏 WSDL

标签 cxf

我已经使用 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/

相关文章:

java - cxf Web 服务不更新

java - Java/CXF/SOAP 应用程序中的继承问题?

java - CXF LoggingFeature 不记录入站请求

java - Junit CXF REST API 和回滚测试数据

jms - 如何为 CXF 重新发布失败的 QPid 消息进行 JMS 传输?或者,我是否缺少更好的解决方案?

java - 如何从 build.gradle 文件运行 WSDLToJava?

java - JAXB 错误 : has more than one mapping. 由于两个对象工厂具有相同的 Bean

java - 在 pom.xml 中定义 wsdl2java 参数

tomcat - 资源路径 [cxf-ehcache.xml] 无效

java - 其余 CXF 中是否有生成和消耗注释的默认类型