1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17 package org.springframework.ws.soap.security.xwss;
18
19 import javax.xml.soap.MessageFactory;
20 import javax.xml.soap.SOAPMessage;
21
22 import junit.framework.TestCase;
23
24 import org.springframework.ws.context.DefaultMessageContext;
25 import org.springframework.ws.context.MessageContext;
26 import org.springframework.ws.soap.SoapMessage;
27 import org.springframework.ws.soap.saaj.SaajSoapMessage;
28 import org.springframework.ws.soap.saaj.SaajSoapMessageFactory;
29 import org.springframework.ws.soap.security.WsSecurityValidationException;
30
31 public class XwsSecurityInterceptorTest extends TestCase {
32
33 private MessageFactory messageFactory;
34
35 protected void setUp() throws Exception {
36 messageFactory = MessageFactory.newInstance();
37 }
38
39 public void testhandleServerRequest() throws Exception {
40 final SOAPMessage request = messageFactory.createMessage();
41 final SOAPMessage validatedRequest = messageFactory.createMessage();
42 XwsSecurityInterceptor interceptor = new XwsSecurityInterceptor() {
43
44 protected void secureMessage(SoapMessage soapMessage, MessageContext messageContext)
45 throws XwsSecuritySecurementException {
46 fail("secure not expected");
47 }
48
49 protected void validateMessage(SoapMessage message, MessageContext messageContext)
50 throws WsSecurityValidationException {
51 SaajSoapMessage saajSoapMessage = (SaajSoapMessage) message;
52 assertEquals("Invalid message", request, saajSoapMessage.getSaajMessage());
53 saajSoapMessage.setSaajMessage(validatedRequest);
54 }
55
56 };
57 MessageContext context =
58 new DefaultMessageContext(new SaajSoapMessage(request), new SaajSoapMessageFactory(messageFactory));
59 interceptor.handleRequest(context, null);
60 assertEquals("Invalid request", validatedRequest, ((SaajSoapMessage) context.getRequest()).getSaajMessage());
61 }
62
63 public void testhandleServerResponse() throws Exception {
64 final SOAPMessage securedResponse = messageFactory.createMessage();
65 XwsSecurityInterceptor interceptor = new XwsSecurityInterceptor() {
66
67 protected void secureMessage(SoapMessage message, MessageContext messageContext)
68 throws XwsSecuritySecurementException {
69 SaajSoapMessage saajSoapMessage = (SaajSoapMessage) message;
70 saajSoapMessage.setSaajMessage(securedResponse);
71 }
72
73 protected void validateMessage(SoapMessage soapMessage, MessageContext messageContext)
74 throws WsSecurityValidationException {
75 fail("validate not expected");
76 }
77
78 };
79 SOAPMessage request = messageFactory.createMessage();
80 MessageContext context =
81 new DefaultMessageContext(new SaajSoapMessage(request), new SaajSoapMessageFactory(messageFactory));
82 context.getResponse();
83 interceptor.handleResponse(context, null);
84 assertEquals("Invalid response", securedResponse, ((SaajSoapMessage) context.getResponse()).getSaajMessage());
85 }
86
87 public void testhandleClientRequest() throws Exception {
88 final SOAPMessage request = messageFactory.createMessage();
89 final SOAPMessage securedRequest = messageFactory.createMessage();
90 XwsSecurityInterceptor interceptor = new XwsSecurityInterceptor() {
91
92 protected void secureMessage(SoapMessage soapMessage, MessageContext messageContext)
93 throws XwsSecuritySecurementException {
94 SaajSoapMessage saajSoapMessage = (SaajSoapMessage) soapMessage;
95 assertEquals("Invalid message", request, saajSoapMessage.getSaajMessage());
96 saajSoapMessage.setSaajMessage(securedRequest);
97 }
98
99 protected void validateMessage(SoapMessage message, MessageContext messageContext)
100 throws WsSecurityValidationException {
101 fail("validate not expected");
102 }
103
104 };
105 MessageContext context =
106 new DefaultMessageContext(new SaajSoapMessage(request), new SaajSoapMessageFactory(messageFactory));
107 interceptor.handleRequest(context);
108 assertEquals("Invalid request", securedRequest, ((SaajSoapMessage) context.getRequest()).getSaajMessage());
109 }
110
111 public void testhandleClientResponse() throws Exception {
112 final SOAPMessage validatedResponse = messageFactory.createMessage();
113 XwsSecurityInterceptor interceptor = new XwsSecurityInterceptor() {
114
115 protected void secureMessage(SoapMessage message, MessageContext messageContext)
116 throws XwsSecuritySecurementException {
117 fail("secure not expected");
118 }
119
120 protected void validateMessage(SoapMessage soapMessage, MessageContext messageContext)
121 throws WsSecurityValidationException {
122 SaajSoapMessage saajSoapMessage = (SaajSoapMessage) soapMessage;
123 saajSoapMessage.setSaajMessage(validatedResponse);
124 }
125
126 };
127 SOAPMessage request = messageFactory.createMessage();
128 MessageContext context =
129 new DefaultMessageContext(new SaajSoapMessage(request), new SaajSoapMessageFactory(messageFactory));
130 context.getResponse();
131 interceptor.handleResponse(context);
132 assertEquals("Invalid response", validatedResponse, ((SaajSoapMessage) context.getResponse()).getSaajMessage());
133 }
134
135 }