1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20 package org.apache.ws.security.handler;
21
22 import org.apache.ws.security.WSPasswordCallback;
23 import org.apache.ws.security.WSConstants;
24 import org.apache.ws.security.WSSConfig;
25 import org.apache.ws.security.common.CustomHandler;
26 import org.apache.ws.security.common.SOAPUtil;
27 import org.apache.ws.security.common.UsernamePasswordCallbackHandler;
28 import org.w3c.dom.Document;
29
30 import javax.security.auth.callback.CallbackHandler;
31
32
33
34
35
36 public class WSHandlerGetPasswordTest extends org.junit.Assert {
37 private static final org.apache.commons.logging.Log LOG =
38 org.apache.commons.logging.LogFactory.getLog(WSHandlerGetPasswordTest.class);
39 private CallbackHandler callbackHandler = new UsernamePasswordCallbackHandler();
40
41
42
43
44
45 @org.junit.Test
46 public void
47 testGetPasswordRequestContextUnit() throws Exception {
48
49 final WSSConfig cfg = WSSConfig.getNewInstance();
50 final RequestData reqData = new RequestData();
51 reqData.setWssConfig(cfg);
52 java.util.Map<String, Object> messageContext = new java.util.TreeMap<String, Object>();
53 messageContext.put("password", "securityPassword");
54 reqData.setMsgContext(messageContext);
55
56 WSHandler handler = new CustomHandler();
57 CallbackHandler callbackHandler =
58 handler.getCallbackHandler("SomeCallbackTag", "SomeCallbackRef", reqData);
59 WSPasswordCallback callback =
60 handler.getPasswordCB("alice", WSConstants.UT, callbackHandler, reqData);
61 assertTrue("alice".equals(callback.getIdentifier()));
62 assertTrue("securityPassword".equals(callback.getPassword()));
63 assertTrue(WSPasswordCallback.USERNAME_TOKEN == callback.getUsage());
64 }
65
66
67
68
69
70 @org.junit.Test
71 public void
72 testGetPasswordRequestContext() throws Exception {
73
74 final WSSConfig cfg = WSSConfig.getNewInstance();
75 final RequestData reqData = new RequestData();
76 reqData.setWssConfig(cfg);
77 reqData.setUsername("alice");
78 reqData.setPwType(WSConstants.PASSWORD_TEXT);
79 java.util.Map<String, Object> messageContext = new java.util.TreeMap<String, Object>();
80 messageContext.put("password", "securityPassword");
81 reqData.setMsgContext(messageContext);
82
83 final java.util.List<Integer> actions = new java.util.ArrayList<Integer>();
84 actions.add(Integer.valueOf(WSConstants.UT));
85 Document doc = SOAPUtil.toSOAPPart(SOAPUtil.SAMPLE_SOAP_MSG);
86 CustomHandler handler = new CustomHandler();
87 handler.send(
88 WSConstants.UT,
89 doc,
90 reqData,
91 actions,
92 true
93 );
94
95 String outputString =
96 org.apache.ws.security.util.XMLUtils.PrettyDocumentToString(doc);
97 if (LOG.isDebugEnabled()) {
98 LOG.debug(outputString);
99 }
100 assertTrue(outputString.indexOf("alice") != -1);
101 assertTrue(outputString.indexOf("securityPassword") != -1);
102 }
103
104
105
106
107
108 @org.junit.Test
109 public void
110 testGetPasswordCallbackHandlerRef() throws Exception {
111
112 final WSSConfig cfg = WSSConfig.getNewInstance();
113 final RequestData reqData = new RequestData();
114 reqData.setWssConfig(cfg);
115 reqData.setUsername("alice");
116 reqData.setPwType(WSConstants.PASSWORD_TEXT);
117 java.util.Map<String, Object> messageContext = new java.util.TreeMap<String, Object>();
118 messageContext.put(
119 WSHandlerConstants.PW_CALLBACK_REF,
120 callbackHandler
121 );
122 reqData.setMsgContext(messageContext);
123
124 final java.util.List<Integer> actions = new java.util.ArrayList<Integer>();
125 actions.add(Integer.valueOf(WSConstants.UT));
126 Document doc = SOAPUtil.toSOAPPart(SOAPUtil.SAMPLE_SOAP_MSG);
127 CustomHandler handler = new CustomHandler();
128 handler.send(
129 WSConstants.UT,
130 doc,
131 reqData,
132 actions,
133 true
134 );
135
136 String outputString =
137 org.apache.ws.security.util.XMLUtils.PrettyDocumentToString(doc);
138 if (LOG.isDebugEnabled()) {
139 LOG.debug(outputString);
140 }
141 assertTrue(outputString.indexOf("alice") != -1);
142 assertTrue(outputString.indexOf("securityPassword") != -1);
143 }
144
145 }