0 0

CXF Webservice如何控制浏览器访问5

CXF搭建Webservice服务时,有时不想让所有的用户都能看到wsdl数据,怎么能够拦截设置只让允许指定的个别的Ip的用户浏览器能够访问到cxf的wsdl数据。急用,请求大侠们帮忙改如何解决。

 

1个答案 按时间排序 按投票排序

0 0

不知道你的CXF搭建在那种servlet容器上面,如果是tomcat,可以写一个filter,然后在web.xml中增加filter以及filter mapping的设置,让所有访问wsdl的请求url都mapping到你写的filter,在filter里面通过request.getRemoteAddr()获取客户端的ip地址,如果是你指定的ip的话就放行,否则直接返回response应答。

web.xml

<filter>
    <filter-name>CXF</filter-name>
    <filter-class>
      my.filter.CxfFilter
    </filter-class>
    <init-param>
      <param-name>allowedip</param-name>
      <param-value>192.168.0.1</param-value>
    </init-param>
</filter>

<filter-mapping>
    <filter-name>CXF</filter-name>
    <url-pattern>/wsdl/*</url-pattern>
</filter-mapping>


CxfFilter.java

package my.filter;
import java.io.IOException;
import java.io.PrintWriter;
import javax.servlet.Filter;
import javax.servlet.FilterChain;
import javax.servlet.FilterConfig;
import javax.servlet.ServletException;
import javax.servlet.ServletRequest;
import javax.servlet.ServletResponse;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

public class CxfFilter implements Filter {

    protected String allowedIp = null;

    public void init(FilterConfig config) 
        throws ServletException {
        if (config.getInitParameter("debug") != null) {
            allowedIp = config.getInitParameter("allowedip");
        }
    }

    public void doFilter(ServletRequest request, 
        ServletResponse response,FilterChain chain)
            throws IOException, ServletException {
        HttpServletRequest req = (HttpServletRequest)request;
        HttpServletResponse res = (HttpServletResponse)response;
        if(req.getRemoteAddr().equals(allowedIp)){
            chain.doFilter(req, res);
        }else{
            res.setContentType("text/html");
            res.getWriter().write(
            "<html><body>You have no permission.</body></html>");
        }
    }
}

2012年10月24日 10:55

相关推荐

    CXF webservice Demo

    它允许用户通过浏览器访问Web服务,查看WSDL,发送请求并查看响应。 总的来说,"CXF Webservice Demo"是一个学习和实践使用Apache CXF创建和使用SOAP Web服务的好例子。它涵盖了从服务定义、实现到客户端调用的整个...

    CXF WebService带有拦截器

    此外,结合Spring Security等框架,我们可以进一步实现细粒度的权限控制,比如基于角色的访问控制(RBAC)。 总结起来,"CXF WebService带有拦截器"的实践是Web服务开发中的一个重要方面,它允许我们在不侵入核心...

    基于CXF的webservice的发布及访问

    **基于CXF的Web服务发布及访问** 在Java开发中,Apache CXF是一个广泛使用的开源框架,用于构建和实现Web服务。本教程将详细介绍如何利用CXF发布基于SOAP 1.2的Web服务,以及如何进行客户端调用。首先,我们需要...

    java cxf webservice接口解决跨域问题

    Java CXF Webservice接口在处理Web服务时,可能会遇到跨域问题,这通常是由于浏览器的安全策略限制了不同源之间的通信。解决这个问题的关键在于理解和应用CORS(Cross-Origin Resource Sharing)机制。CORS允许...

    CXF开发webservice服务端

    可以使用浏览器访问WSDL文档或者使用Postman等工具发送请求来验证服务是否按预期工作。 #### 六、总结 通过上述步骤,我们成功地构建了一个简单的CXF Web Service服务端。这个过程中涵盖了实体类的设计、接口定义与...

    CXF使用EndpointImpl发布WebService加入拦截器

    本篇文章将深入探讨如何使用CXF的`EndpointImpl`类来发布一个WebService,并加入拦截器。 首先,我们要理解`EndpointImpl`是CXF框架用于构建和配置Web服务端点的核心类。通过实例化这个类,我们可以自定义服务的...

    springmvc整合cxf webservice

    通过浏览器访问`http://yourserver:port/context/services`,你应该能看到你的Web服务列表。使用测试客户端或任何SOAP客户端工具,调用你的Web服务。 ### 4. 总结 整合Spring MVC与CXF可以让你充分利用Spring的灵活...

    axis cxf 创建webservice

    - 通过浏览器访问服务的URL,例如`http://localhost:8080/CxfDemo/services/HelloWorldService`。 #### 总结 本文介绍了如何使用Eclipse、Axis2以及Spring和CXF来创建和调用WebService。通过实际操作步骤,读者可以...

    springboot2.1.5集成CXF3.2.5,webservice服务端

    你可以通过CXF提供的工具(如CXF-WS-Spy)或直接在浏览器中访问服务的地址(通常是http://localhost:8080/服务名?wsdl)来测试服务是否正常工作。 在“ws_record”文件中,可能包含了关于服务请求和响应的日志记录...

    CXF_webService文档

    8. **测试服务**:启动Tomcat服务器,通过浏览器访问`http://&lt;your server&gt;:&lt;port&gt;/&lt;deploymentname&gt;/services`,查看并测试生成的WSDL文档。 ### 客户端开发 1. **获取WSDL文档**:从服务端获取WSDL文档,它是...

    CXF实现WebService

    4. 创建服务端点:使用CXF提供的注解(如`@WebService`)或配置文件来创建服务端点。 5. 测试和部署:运行Maven的`install`命令将项目打包成WAR文件,然后将其部署到应用服务器(如Tomcat)上,最后通过SOAP客户端或...

    CXF拦截器(Interceptor)的使用

    标题:“CXF拦截器(Interceptor)的使用” 描述:“讲解了cxf实现拦截器的原因、核心API及使用方法” 在深入探讨CXF拦截器的使用之前,我们首先需要理解其在CXF框架中的核心作用与价值。Apache CXF是一个开源框架,...

    CXF搭建的RESTful风格的webservice

    服务启动后,可以通过浏览器或使用curl命令行工具访问`http://localhost:8080/hello`来测试服务。如果一切正常,你应该能看到"Hello, RESTful World!"的响应。 通过以上步骤,你已经成功地使用Apache CXF搭建了一...

    spring整合CXF开发webService所需jar包

    6. **部署和测试**:在Spring应用服务器(如Tomcat)上部署项目,并通过CXF提供的CXFServlet访问Web服务。你可以使用CXF的客户端API或通过浏览器测试服务。 7. **RESTful服务**:如果你需要开发RESTful服务,CXF也...

    CXF restful风格WebService

    5. **测试服务**:可以通过浏览器、curl命令或者编写客户端代码来调用这个服务,验证其功能是否正常。 **五、高级特性** 除了基本的GET、POST等方法,CXF还支持更多特性,如: - **数据绑定**:使用`@PathParam`...

    cxf集成Spring的restful WebService接口以Json形式表现

    本项目主要展示了如何使用CXF和Spring构建一个能够以JSON格式返回数据的RESTful WebService接口。JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,易于人阅读和编写,同时也易于机器解析和生成。它...

    ssh+cxf整合发布webservice实例

    - 运行项目,通过浏览器访问CXF生成的WSDL地址,确认Web服务已经发布成功。 - 可以使用CXF的WS Client工具或者自定义客户端代码进行Web服务的调用测试。 9. **示例项目** - 解压缩提供的`example`文件,它包含了...

    Webservice接口,Cxf写的服务端

    Webservice接口,Cxf写的服务端, 是web项目,必须tomcat部署. 开发环境:32位jdk1.7+Cxf3.1.4+tomcat7, 开发工具:myeclipse8.5. 浏览器、客户端均可访问,测试通过。

    cxf实现webService

    然后,你可以通过浏览器访问`http://your-server-address/context-path/helloworld?wsdl`来获取服务的WSDL描述。此外,可以编写客户端代码或使用CXF的WS-Client工具来调用Web服务。 ### 7. 异常处理 在Web服务开发...

    CXF框架webservice教程.pdf

    你可以通过浏览器访问`http://localhost:6666/MyCxfService?wsdl`来查看生成的WSDL(Web服务描述语言)文件,它是Web服务的接口规范。 为了消费这个Web服务,你需要创建一个客户端。这通常可以通过使用CXF的`...

Global site tag (gtag.js) - Google Analytics