src/share/jaxws_classes/com/sun/xml/internal/ws/addressing/WsaTube.java
Print this page
*** 1,7 ****
/*
! * Copyright (c) 1997, 2010, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
* under the terms of the GNU General Public License version 2 only, as
* published by the Free Software Foundation. Oracle designates this
--- 1,7 ----
/*
! * Copyright (c) 1997, 2013, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
* under the terms of the GNU General Public License version 2 only, as
* published by the Free Software Foundation. Oracle designates this
*** 28,39 ****
import com.sun.istack.internal.NotNull;
import com.sun.xml.internal.ws.addressing.model.InvalidAddressingHeaderException;
import com.sun.xml.internal.ws.addressing.model.MissingAddressingHeaderException;
import com.sun.xml.internal.ws.api.SOAPVersion;
import com.sun.xml.internal.ws.api.WSBinding;
- import com.sun.xml.internal.ws.api.server.WSEndpoint;
import com.sun.xml.internal.ws.api.addressing.AddressingVersion;
import com.sun.xml.internal.ws.api.message.Header;
import com.sun.xml.internal.ws.api.message.Message;
import com.sun.xml.internal.ws.api.message.Messages;
import com.sun.xml.internal.ws.api.message.Packet;
import com.sun.xml.internal.ws.api.model.wsdl.WSDLBoundOperation;
--- 28,39 ----
import com.sun.istack.internal.NotNull;
import com.sun.xml.internal.ws.addressing.model.InvalidAddressingHeaderException;
import com.sun.xml.internal.ws.addressing.model.MissingAddressingHeaderException;
import com.sun.xml.internal.ws.api.SOAPVersion;
import com.sun.xml.internal.ws.api.WSBinding;
import com.sun.xml.internal.ws.api.addressing.AddressingVersion;
+ import com.sun.xml.internal.ws.api.message.AddressingUtils;
import com.sun.xml.internal.ws.api.message.Header;
import com.sun.xml.internal.ws.api.message.Message;
import com.sun.xml.internal.ws.api.message.Messages;
import com.sun.xml.internal.ws.api.message.Packet;
import com.sun.xml.internal.ws.api.model.wsdl.WSDLBoundOperation;
*** 41,65 ****
import com.sun.xml.internal.ws.api.pipe.NextAction;
import com.sun.xml.internal.ws.api.pipe.Tube;
import com.sun.xml.internal.ws.api.pipe.TubeCloner;
import com.sun.xml.internal.ws.api.pipe.helper.AbstractFilterTubeImpl;
import com.sun.xml.internal.ws.developer.MemberSubmissionAddressingFeature;
- import com.sun.xml.internal.ws.developer.WSBindingProvider;
import com.sun.xml.internal.ws.message.FaultDetailHeader;
import com.sun.xml.internal.ws.resources.AddressingMessages;
- import com.sun.xml.internal.ws.binding.BindingImpl;
import javax.xml.namespace.QName;
import javax.xml.soap.SOAPFault;
import javax.xml.stream.XMLStreamException;
import javax.xml.ws.WebServiceException;
- import javax.xml.ws.Binding;
import javax.xml.ws.soap.AddressingFeature;
import javax.xml.ws.soap.SOAPBinding;
import java.util.Iterator;
- import java.util.Set;
- import java.util.Arrays;
import java.util.logging.Logger;
import java.util.logging.Level;
/**
* WS-Addressing processing code shared between client and server.
--- 41,60 ----
*** 105,124 ****
soapVersion = that.soapVersion;
addressingRequired = that.addressingRequired;
}
private void addKnownHeadersToBinding(WSBinding binding) {
- Set<QName> headerQNames = binding.getKnownHeaders();
for (AddressingVersion addrVersion: AddressingVersion.values()) {
! headerQNames.add(addrVersion.actionTag);
! headerQNames.add(addrVersion.faultDetailTag);
! headerQNames.add(addrVersion.faultToTag);
! headerQNames.add(addrVersion.fromTag);
! headerQNames.add(addrVersion.messageIDTag);
! headerQNames.add(addrVersion.relatesToTag);
! headerQNames.add(addrVersion.replyToTag);
! headerQNames.add(addrVersion.toTag);
}
}
@Override
public @NotNull NextAction processException(Throwable t) {
--- 100,118 ----
soapVersion = that.soapVersion;
addressingRequired = that.addressingRequired;
}
private void addKnownHeadersToBinding(WSBinding binding) {
for (AddressingVersion addrVersion: AddressingVersion.values()) {
! binding.addKnownHeader(addrVersion.actionTag);
! binding.addKnownHeader(addrVersion.faultDetailTag);
! binding.addKnownHeader(addrVersion.faultToTag);
! binding.addKnownHeader(addrVersion.fromTag);
! binding.addKnownHeader(addrVersion.messageIDTag);
! binding.addKnownHeader(addrVersion.relatesToTag);
! binding.addKnownHeader(addrVersion.replyToTag);
! binding.addKnownHeader(addrVersion.toTag);
}
}
@Override
public @NotNull NextAction processException(Throwable t) {
*** 204,214 ****
return false;
if (packet.getMessage().getHeaders() != null)
return false;
! String action = packet.getMessage().getHeaders().getAction(addressingVersion, soapVersion);
if (action == null)
return true;
return true;
}
--- 198,210 ----
return false;
if (packet.getMessage().getHeaders() != null)
return false;
! String action = AddressingUtils.getAction(
! packet.getMessage().getHeaders(),
! addressingVersion, soapVersion);
if (action == null)
return true;
return true;
}
*** 368,378 ****
return wsdlPort.getBinding().get(opName);
return null;
}
protected void validateSOAPAction(Packet packet) {
! String gotA = packet.getMessage().getHeaders().getAction(addressingVersion, soapVersion);
if (gotA == null)
throw new WebServiceException(AddressingMessages.VALIDATION_SERVER_NULL_ACTION());
if(packet.soapAction != null && !packet.soapAction.equals("\"\"") && !packet.soapAction.equals("\""+gotA+"\"")) {
throw new InvalidAddressingHeaderException(addressingVersion.actionTag, addressingVersion.actionMismatchTag);
}
--- 364,376 ----
return wsdlPort.getBinding().get(opName);
return null;
}
protected void validateSOAPAction(Packet packet) {
! String gotA = AddressingUtils.getAction(
! packet.getMessage().getHeaders(),
! addressingVersion, soapVersion);
if (gotA == null)
throw new WebServiceException(AddressingMessages.VALIDATION_SERVER_NULL_ACTION());
if(packet.soapAction != null && !packet.soapAction.equals("\"\"") && !packet.soapAction.equals("\""+gotA+"\"")) {
throw new InvalidAddressingHeaderException(addressingVersion.actionTag, addressingVersion.actionMismatchTag);
}