• webservice jaxws header验证


    @WebService
    @HandlerChain
    public class UserService {
      ...
    }
    package com.xx.ws.header;
    
    import org.w3c.dom.Node;
    
    import javax.xml.namespace.QName;
    import javax.xml.soap.*;
    import javax.xml.ws.handler.MessageContext;
    import javax.xml.ws.handler.soap.SOAPHandler;
    import javax.xml.ws.handler.soap.SOAPMessageContext;
    import javax.xml.ws.soap.SOAPFaultException;
    import java.util.Set;
    
    public class MySoapHandler implements SOAPHandler<SOAPMessageContext> {
        public boolean handleMessage(SOAPMessageContext context) {
            Boolean out = (Boolean) context.get(MessageContext.MESSAGE_OUTBOUND_PROPERTY);
    
            if (!out) {
                SOAPMessage message = context.getMessage();
    
                try {
                    SOAPHeader header = message.getSOAPPart().getEnvelope().getHeader();
    
                    if (header != null) {
                        Node userNameNode = header.getElementsByTagName("wsse:Username").item(0);
                        Node passwordNode = header.getElementsByTagName("wsse:Password").item(0);
    
                        if ("admin".equals(userNameNode.getTextContent()) && "password".equals(passwordNode.getTextContent())) {
                            return true;
                        }
    return false; } else { return false; } } catch (Exception e) { e.printStackTrace(); return false; } } return true; } @Override public boolean handleFault(SOAPMessageContext context) { return true; } @Override public void close(MessageContext context) { } @Override public Set<QName> getHeaders() { return null; } }
  • 相关阅读:
    Java之ServiceLoader
    docker学习(3)--Dockfile详解
    docker学习(2)--基础命令
    docker学习(1)--基础概念
    dubbo学习(1)--简单的入门搭建实例
    Flume搭建及学习(基础篇)
    VM下--Linux根分区磁盘扩容
    Windows10下简单搭建zookeeper
    Windows10下搭建TensorFlow环境
    cmath库函数
  • 原文地址:https://www.cnblogs.com/white-knight/p/8556249.html
Copyright © 2020-2023  润新知