`
conquer0
  • 浏览: 78360 次
  • 性别: Icon_minigender_1
  • 来自: 广州
文章分类
社区版块
存档分类
最新评论

CXF四(续三的校验类AuthorizationInterceptor)

阅读更多
    @Override
    public void handleMessage(Message aMsg) throws Fault
    {
        final AuthorizationPolicy policy = aMsg.get(AuthorizationPolicy.class);
        if (null == policy)
        {
            sendErrorResponse(aMsg, HttpURLConnection.HTTP_UNAUTHORIZED);
            return;
        }
        String userName = policy.getUserName();
        String passwrod = policy.getPassword();
        if (StringUtil.isNullOrEmpty(passwrod))
        {
            sendErrorResponse(aMsg, HttpURLConnection.HTTP_UNAUTHORIZED);
            return;
        }     
        if (!passwrod.equalsIgnoreCase(this.getProps().getProperty(userName)))
        {
            sendErrorResponse(aMsg, HttpURLConnection.HTTP_UNAUTHORIZED);
            return;
        }
        super.handleMessage(aMsg);
    }
    private void sendErrorResponse(Message message, int responseCode)
    {
        Message outMessage = getOutMessage(message);
        outMessage.put(Message.RESPONSE_CODE, responseCode);  
        // Set the response headers         
        Map responseHeaders = (Map) message.get(Message.PROTOCOL_HEADERS);  
        if (responseHeaders != null)
        {
            responseHeaders.put("WWW-Authenticate",
                    Arrays.asList(new String[] { "Basic realm=realm" }));
            responseHeaders.put("Content-Length",
                    Arrays.asList(new String[] { "0" }));
        }
        message.getInterceptorChain().abort();
        try
        {
            getConduit(message).prepare(outMessage);
            close(outMessage);
        }
        catch (IOException e)
        {
            e.printStackTrace();
        }
       
    }  
    private Message getOutMessage(Message inMessage)
    {
        Exchange exchange = inMessage.getExchange();
        Message outMessage = exchange.getOutMessage();
        if (outMessage == null)
        {
            Endpoint endpoint = exchange.get(Endpoint.class);
            outMessage = endpoint.getBinding().createMessage();
            exchange.setOutMessage(outMessage);
        }
        outMessage.putAll(inMessage);
        return outMessage;
    }  
}
分享到:
评论

相关推荐

    CXF webService 工具类

    CXF工具类是CXF框架的一部分,提供了一系列方便实用的方法,帮助开发者在处理与Web服务相关的任务时提高效率。 1. **Web服务基础** - **SOAP(Simple Object Access Protocol)**:是一种基于XML的消息传递协议,...

    Springboot整合cxf测试项目亲测可用

    4. 创建Spring Boot启动类:在启动类上添加`@SpringBootApplication`注解,并可能使用`@EnableCxfRs`或`@Endpoint`注解来启用CXF服务。 5. 启动服务:运行Spring Boot应用,CXF服务将自动启动并监听配置的端口。 6...

    C#动态调用CXF WEBSERVICE框架的共通类

    C#动态调用CXF WEBSERVICE框架共通类。

    WebServiceConfig java springboot利用Apache CXF创建webserice接口配置类

    webserviceApache CXF java springboot利用Apache CXF创建webserice接口 Apache CXF 核心架构是以BUS为核心,整合其他组件。 * Bus是CXF的主干, 为共享资源提供一个可配置的场所,作用类似于Spring的...

    CXF-拦截器-权限控制-登录校验

    1. **创建拦截器**:首先,我们需要创建一个实现`org.apache.cxf.interceptor.FaultObserver`或`org.apache.cxf.interceptor.FaultInterceptor`接口的类。这两个接口分别处理异常的输入和输出。我们可以选择适合当前...

    web service cxf获取第三方天气数据

    `MainTest.java`是测试类,它将展示如何使用CXF客户端来调用第三方天气服务。在Java代码中,我们首先需要使用CXF的工具(如wsdl2java)从`WeatherWS.wsdl`生成Java客户端代理类。这些代理类提供了与Web服务交互的...

    cxf实例的java类和配置文件

    我们将重点关注CXF实例中的Java类和配置文件,这些都是创建和运行Web服务的关键组件。 首先,让我们了解CXF的核心概念。CXF提供了两种主要的方式来实现Web服务:JAX-WS(Java API for XML Web Services)和JAX-RS...

    springBoot完整整合WebService框架CXF示例

    4. **服务调用**:在服务调用端,CXF提供客户端代理类生成工具,如`JaxWsProxyFactoryBean`,用于创建服务客户端。只需要提供服务接口,CXF会自动生成代理类,从而能够调用远程服务。 5. **CXF拦截器**:CXF拦截器...

    CXF客户端生成器

    执行这个命令后,CXF会解析WSDL,并在指定的输出目录下生成对应的Java类,包括服务接口、消息模型类、异常类等,这些类可以直接被Java应用程序导入并使用。 生成的Java客户端代码通常包括以下部分: 1. **服务接口*...

    cxf 3.1.1 jar包

    1. **cxf-api.jar**: 包含CXF的主要API接口和抽象类,这些接口定义了如何与CXF框架交互。 2. **cxf-rt-frontend-jaxws.jar**: 提供了JAX-WS(Java API for XML Web Services)的支持,用于创建和处理基于SOAP的Web...

    CXF实现SSL安全验证

    ### CXF实现SSL安全验证 在现代网络应用中,安全通信是至关重要的。Apache CXF 是一个开源项目,提供了一套强大的工具和服务框架,用于构建和开发基于标准的服务(如 Web Services)。本文将详细介绍如何使用 CXF ...

    Cxf转换器示例

    1. **转换器实现**:开发者可能会定义一个或多个类,这些类实现了`org.apache.cxf.converters.Converter`接口,以便处理特定数据类型的转换。 2. **注册转换器**:为了让CXF知道如何使用这些转换器,开发者需要在...

    springBoot整合CXF并实现用户名密码校验的方法

    在这个配置类中,我们定义了CXF的servlet、spring bus和实现类appService。我们还添加了一个AuthInterceptor来进行用户名密码校验。 四、实现用户名密码校验 现在,我们需要实现用户名密码校验。我们可以在...

    cxf的jar包

    在实际应用中,将这些jar包添加到项目的类路径中,就可以使用CXF提供的API来创建和调用Web服务。为了使用这些jar包,开发者通常需要配置CXF的Spring Bean,或者使用Maven或Gradle等构建工具管理依赖。同时,对于...

    cxf+spring+hibernate整合添加功能实现修改版

    总的来说,"cxf+spring+hibernate整合添加功能实现修改版"是一个提升系统稳定性和性能的实践案例,开发者通过深入理解和灵活运用这三个技术,实现了服务功能的优化。对于学习和研究Java企业级应用开发的人员来说,这...

    springboot整合CXF发布webservice和客户端调用

    SpringBoot整合CXF是将流行的Java Web服务框架CXF与SpringBoot轻量级框架结合,以便更方便地创建和消费Web服务。这个项目提供了一个很好的示例,通过详细注释帮助开发者理解如何在SpringBoot应用中发布和调用Web服务...

    CXF介绍

    【标题】:“CXF介绍” CXF,全称CXF CXF (Common eXtensible Framework),是一个开源的Java框架,主要用于构建和开发Web服务。它整合了多种Web服务标准,如SOAP、RESTful、WS-*等,为开发者提供了一站式的Web服务...

    cxf框架包 apache-cxf-3.4.3.tar.gz

    可以通过Maven或Gradle依赖管理工具引入,或者将CXF的JAR文件添加到项目的类路径中。 **7. 使用示例** - 创建服务接口和实现 - 使用CXF工具生成客户端代码 - 配置服务发布和消费 - 调试和测试服务 **8. 扩展与集成...

    apache-cxf-2.5.2

    8. **测试工具**:CXF提供了诸如CXF TestSuite之类的工具,帮助开发者进行服务端和客户端的测试。 9. **MTOM/XOP**:CXF支持Message Transmission Optimization Mechanism (MTOM) 和XML-binary Optimized Packaging...

    通过cxf发布webservice需要的一些jar

    1. **cxf-api.jar**:这是CXF的核心API,包含了各种接口和类,用于构建和处理Web服务。 2. **cxf-rt-frontend-jaxws.jar**:这个jar文件提供了JAX-WS(Java API for XML Web Services)前端的支持,使我们可以用...

Global site tag (gtag.js) - Google Analytics