Package org.springframework.ws.soap.security

Source Code of org.springframework.ws.soap.security.SkipValidationWsSecurityInterceptorTest

package org.springframework.ws.soap.security;

import static org.junit.Assert.assertTrue;
import static org.junit.Assert.fail;

import java.io.IOException;
import java.io.InputStream;

import javax.xml.soap.MessageFactory;
import javax.xml.soap.MimeHeaders;
import javax.xml.soap.SOAPException;

import org.junit.Before;
import org.junit.Test;
import org.springframework.core.io.ClassPathResource;
import org.springframework.core.io.Resource;
import org.springframework.ws.context.DefaultMessageContext;
import org.springframework.ws.context.MessageContext;
import org.springframework.ws.soap.SoapMessage;
import org.springframework.ws.soap.saaj.SaajSoapMessage;
import org.springframework.ws.soap.saaj.SaajSoapMessageFactory;

public class SkipValidationWsSecurityInterceptorTest {

  private MessageFactory messageFactory;
  private AbstractWsSecurityInterceptor interceptor;
  private SaajSoapMessageFactory soapMessageFactory;

  @Before
  public void setUp() throws Exception {
    messageFactory = MessageFactory.newInstance();
    soapMessageFactory = new SaajSoapMessageFactory(messageFactory);
    interceptor = new AbstractWsSecurityInterceptor() {

      @Override
      protected void validateMessage(SoapMessage soapMessage,
          MessageContext messageContext)
          throws WsSecurityValidationException {
        fail("validation must be skipped.");
      }

      @Override
      protected void secureMessage(SoapMessage soapMessage,
          MessageContext messageContext)
          throws WsSecuritySecurementException {
      }

      @Override
      protected void cleanUp() {
      }
    };
    interceptor.setSkipValidationIfNoHeaderPresent(true);
  }

  @Test
  public void testSkipValidationOnNoHeader() throws Exception {
    doTestSkipValidation("noHeader-soap.xml");
  }
 
  @Test
  public void testSkipValidationOnEmptyHeader() throws Exception {
    doTestSkipValidation("emptyHeader-soap.xml");
  }

  @Test
  public void testSkipValidationOnNoSecurityHeader() throws Exception {
    doTestSkipValidation("noSecurityHeader-soap.xml");
  }
 

  private void doTestSkipValidation(String fileName) throws Exception {
    SoapMessage message = loadSaajMessage(fileName);
    MessageContext messageContext = new DefaultMessageContext(message,
        soapMessageFactory);
    assertTrue("handeRequest result must be true", interceptor
        .handleRequest(messageContext, null));
   
  }
 
  private SaajSoapMessage loadSaajMessage(String fileName)
      throws SOAPException, IOException {
    MimeHeaders mimeHeaders = new MimeHeaders();
    mimeHeaders.addHeader("Content-Type", "text/xml");
    Resource resource = new ClassPathResource(fileName, getClass());
    InputStream is = resource.getInputStream();
    try {
      assertTrue("Could not load SAAJ message [" + resource + "]",
          resource.exists());
      is = resource.getInputStream();
      return new SaajSoapMessage(messageFactory.createMessage(
          mimeHeaders, is));
    } finally {
      is.close();
    }
  }
}
TOP

Related Classes of org.springframework.ws.soap.security.SkipValidationWsSecurityInterceptorTest

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.