Axis2身份验证-采用Module方式验证Soap Header实现

1.创建UserCheckModule类

import org.apache.axis2.AxisFault;
import org.apache.axis2.context.ConfigurationContext;
import org.apache.axis2.description.AxisDescription;
import org.apache.axis2.description.AxisModule;
import org.apache.axis2.modules.Module;
import org.apache.neethi.Assertion;
import org.apache.neethi.Policy;

/**
 * <P>Description: TODO</P>
 * @ClassName: UserCheckModule
 */
public class UserCheckModule implements Module {

    /**
     * <p>Title: init</p>
     * @see org.apache.axis2.modules.Module#init(org.apache.axis2.context.ConfigurationContext, org.apache.axis2.description.AxisModule)
     */
    @Override
    public void init(ConfigurationContext configContext, AxisModule module) throws AxisFault {
        // TODO Auto-generated method stub

    }

    /**
     * <p>Title: engageNotify</p>
     * @see org.apache.axis2.modules.Module#engageNotify(org.apache.axis2.description.AxisDescription)
     */
    @Override
    public void engageNotify(AxisDescription axisDescription) throws AxisFault {
        // TODO Auto-generated method stub

    }

    /**
     * <p>Title: canSupportAssertion</p>
     * @see org.apache.axis2.modules.Module#canSupportAssertion(org.apache.neethi.Assertion)
     */
    @Override
    public boolean canSupportAssertion(Assertion assertion) {
        // TODO Auto-generated method stub
        return false;
    }

    /**
     * <p>Title: applyPolicy</p>
     * @see org.apache.axis2.modules.Module#applyPolicy(org.apache.neethi.Policy, org.apache.axis2.description.AxisDescription)
     */
    @Override
    public void applyPolicy(Policy policy, AxisDescription axisDescription) throws AxisFault {
        // TODO Auto-generated method stub

    }

    /**
     * <p>Title: shutdown</p>
     * @see org.apache.axis2.modules.Module#shutdown(org.apache.axis2.context.ConfigurationContext)
     */
    @Override
    public void shutdown(ConfigurationContext configurationContext) throws AxisFault {
        // TODO Auto-generated method stub

    }

}

2.创建UserCheckHandler

import java.util.Iterator;

import org.apache.axiom.om.OMElement;
import org.apache.axis2.AxisFault;
import org.apache.axis2.context.MessageContext;
import org.apache.axis2.engine.Handler;
import org.apache.axis2.handlers.AbstractHandler;

public class UserCheckHandler extends AbstractHandler implements Handler {

    @Override
    public InvocationResponse invoke(MessageContext msgContext) throws AxisFault {
        // 获取Head
        OMElement fistElement = msgContext.getEnvelope().getHeader().getFirstElement();
        if (fistElement!=null&&fistElement.getChildren() != null) {
            Iterator<?> list = (Iterator<?>) fistElement.getChildren();
            String Username = "";
            String Password = "";
            while (list.hasNext()) {
                OMElement element = (OMElement) list.next();
                if (element.getLocalName().equals("Username")) {
                    Username = element.getText();
                }
                if (element.getLocalName().equals("Password")) {
                    Password = element.getText();
                }
            }
            if (!Username.equals("toone") || !Password.equals("111111")) {
                throw new AxisFault(" Authentication Fail! Check username/password ");
            }
            return InvocationResponse.CONTINUE;
        } else {
            throw new AxisFault(" Authentication Fail! Check username/password ");
        }
    }
}

3.创建module.xml

<?xml version="1.0" encoding="UTF-8"?>
<moudle name="userCheck" class="com.ehonglin.axis.module.UserCheckModule">
    <InFlow>
        <handler name="InFlowLogHandler" class="com.ehonglin.axis.module.UserCheckHandler">
            <order phase="userCheckPhase"/>
        </handler>
    </InFlow>
</moudle>

4.修改axis.xml

5.在services.xml中使用userCheck

<?xml version="1.0" encoding="UTF-8"?>
<service name="EmptyBoxService" targetNamespace="http://tempuri.org/">
    <description>web service</description>
    <schema schemaNamespace="http://tempuri.org/"/>
    <module ref="userCheck"/>
    <parameter name="ServiceObjectSupplier">
        org.apache.axis2.extensions.spring.receivers.SpringServletContextObjectSupplier
    </parameter>
    <parameter name="SpringBeanName">emptyBoxService</parameter>
    <messageReceivers>
        <messageReceiver mep="http://www.w3.org/ns/wsdl/in-only"
            class="org.apache.axis2.rpc.receivers.RPCInOnlyMessageReceiver" />
        <messageReceiver mep="http://www.w3.org/ns/wsdl/in-out"
            class="org.apache.axis2.rpc.receivers.RPCMessageReceiver" />
    </messageReceivers>
</service>
时间: 2024-11-03 21:21:03

Axis2身份验证-采用Module方式验证Soap Header实现的相关文章

ASP.NET中的身份验证有那些?你当前项目采用什么方式验证请解释

ASP.NET身份验证模式包括Windows.Forms(窗体).Passport(护照)和None(无). l  Windows身份验证—常结合应用程序自定义身份验证使用使用这种身份验证模式时,ASP.NET依赖于IIS对用户进行验证,并创建一个Windows访问令牌来表示已通过验证的标识.IIS提供以下几种身份验证机制: l  Passport身份验证.使用这种身份验证模式时,ASP.NET使用Microsoft Passport的集中式身份验证服务,该服务为成员站点提供单一登录和核心配置文

Web用户的身份验证及WebApi权限验证流程的设计和实现

前言:Web 用户的身份验证,及页面操作权限验证是B/S系统的基础功能,一个功能复杂的业务应用系统,通过角色授权来控制用户访问,本文通过Form认证,Mvc的Controller基类及Action的权限验证来实现Web系统登录,Mvc前端权限校验以及WebApi服务端的访问校验功能. 1. Web Form认证介绍 Web应用的访问方式因为是基于浏览器的Http地址请求,所以需要验证用户身份的合法性.目前常见的方式是Form认证,其处理逻辑描述如下:1. 用户首先要在登录页面输入用户名和密码,然

[置顶] Web用户的身份验证及WebApi权限验证流程的设计和实现

转发 http://blog.csdn.net/besley/article/details/8516894 [置顶] Web用户的身份验证及WebApi权限验证流程的设计和实现 2013-01-18 13:19 22755人阅读 评论(19) 收藏 举报  分类: Asp.net Web技术(9)  WebAPI(3)  MVC(6)  版权声明:本文为博主原创文章,未经博主允许不得转载. 前言:Web 用户的身份验证,及页面操作权限验证是B/S系统的基础功能,一个功能复杂的业务应用系统,通过

SQL安装过程中“针对SQL Server 注册表的一致性验证“出错解决方式

1.打开注册表,查找到[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Perflib\0804],分别打开Counter 和Help 2.打开Counter,把滚动条拉倒最后,然后记下最大的那个值(不同计算机不一样的),记下后关闭窗口 3.同样的打开Help,滚动到最后记最大的那个值(你们的值不一定跟我一样的哦!!!),记下后关闭窗口 4,再重新定位到Perflib的节点上, 5.双击Last Counter然后在

atittit.表单验证的实现方式以及原理本质以及选型以及自定义兼容easyui dsl规则的表单验证

atittit.表单验证的实现方式以及原理本质以及选型以及自定义兼容easyui dsl规则的表单验证 1. 需求,表单验证需要弹框式,但目前easyui ms绑定死了tooltip式样 1 2. 表单验证表现形式 1 2.1. 弹框 1 2.2. 浮动tooltip,推荐这个 1 3. 表单验证的实现原理 1 3.1. 定义reg 2 3.2. 解释 2 3.3. 调用提示... 2 4. 表单验证框架选型easyui>ligerui 2 4.1. ligerui的表单验证选型... 2 4.

(四)SSO之CAS框架单点登录,修改验证数据库的方式

应需求的变化,在登录cas的时候,默认根据用户名和密码进行验证,如果加上用户名,密码和一个系统标识进行验证呢?该如何做呢? 我们知道cas默认的登录界面中,输入的用户名和密码,再配置一下deployerConfigContext.xml 这个文件中的bean  org.jasig.cas.adaptors.jdbc.QueryDatabaseAuthenticationHandler 的这个标签,写上对应的sql,以及在<bean id="dataSource" class=&q

jquery.validate ajax方式验证

在做网站的时候有一块需要用到jquery.validate插件 ajax方式的方式来验证原始密码是否正确,研究了研究加上博客园朋友的帮助,终于实现了.贴出代码 <script type="text/javascript">    $(function () {        $("#form1").validate({            rules: {                pwd: {                    require

Spring MVC 数据验证——validate编码方式

1.导入jar包 validation-api-1.0.0.GA.jar这是比較关键的一个jar包,主要用于解析注解@Valid. hibernate-validator-4.3.2.Final.jar能够下载最新的.这个包在注解方式编码中尤为重要. 其它的就是一些日志包(不一定全不须要):jboss-logging-3.1.3.GA.jar.slf4j-log4j12-1.6.1.jar 2.web项目的结构图 项目的主要结构图,不清楚web项目的环境的能够自己学一下.推荐去慕课网上找视频看

[记录]jquery validate 不用submit方式验证表单或单个元素

jquery validate 不用submit方式验证表单或单个元素 jQuery validate的版本: v1.14.0 var result = $('#myForm').validate({ errorElement : 'span', errorClass : 'help-block error', rules:{ }, message:{ } }).form(); 具体的内容可以参考官网文档:http://jqueryvalidation.org/documentation/#li