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;
21
22 import org.apache.ws.security.message.token.BinarySecurity;
23 import org.apache.ws.security.message.token.SecurityContextToken;
24 import org.apache.ws.security.message.token.SignatureConfirmation;
25 import org.apache.ws.security.message.token.Timestamp;
26 import org.apache.ws.security.message.token.UsernameToken;
27 import org.apache.ws.security.saml.ext.AssertionWrapper;
28
29 import java.security.Principal;
30 import java.security.cert.X509Certificate;
31 import java.util.List;
32
33
34
35
36 public class WSSecurityEngineResult extends java.util.HashMap<String, Object> {
37
38
39
40
41
42
43
44
45 private static final long serialVersionUID = 8877354445092724300L;
46
47
48
49
50
51
52 public static final String TAG_SAML_ASSERTION = "saml-assertion";
53
54
55
56
57
58
59
60 public static final String TAG_TIMESTAMP = "timestamp";
61
62
63
64
65
66
67
68 public static final String TAG_SECURITY_CONTEXT_TOKEN = "security-context-token";
69
70
71
72
73 public static final String TAG_USERNAME_TOKEN = "username-token";
74
75
76
77
78 public static final String TAG_DERIVED_KEY_TOKEN = "derived-key-token";
79
80
81
82
83
84
85
86
87 public static final java.lang.String TAG_SIGNATURE_CONFIRMATION = "signature-confirmation";
88
89
90
91
92
93
94 public static final String TAG_BINARY_SECURITY_TOKEN = "binary-security-token";
95
96
97
98
99
100
101
102
103
104
105
106 public static final String TAG_TRANSFORMED_TOKEN = "transformed-token";
107
108
109
110
111
112
113
114
115
116 public static final String TAG_VALIDATED_TOKEN = "validated-token";
117
118
119
120
121
122
123 public static final String TAG_TOKEN_ELEMENT = "token-element";
124
125
126
127
128
129
130
131
132
133
134 public static final String TAG_X509_CERTIFICATE = "x509-certificate";
135
136
137
138
139
140
141 public static final String TAG_SIGNATURE_VALUE = "signature-value";
142
143
144
145
146
147
148 public static final String TAG_X509_CERTIFICATES = "x509-certificates";
149
150
151
152
153
154
155 public static final String TAG_X509_REFERENCE_TYPE = "x509-reference-type";
156
157
158
159
160
161
162 public static final String TAG_ENCRYPTED_EPHEMERAL_KEY = "encrypted-ephemeral-key-bytes";
163
164
165
166
167 public static final String TAG_SECRET = "secret";
168
169
170
171
172 public static final String TAG_PUBLIC_KEY = "public-key";
173
174
175
176
177
178
179
180
181
182
183 public static final String TAG_ACTION = "action";
184
185
186
187
188
189
190 public static final String TAG_PRINCIPAL = "principal";
191
192
193
194
195
196
197 public static final String TAG_SUBJECT = "subject";
198
199
200
201
202
203
204 public static final String TAG_DATA_REF_URIS = "data-ref-uris";
205
206
207
208
209
210
211 public static final String TAG_ENCRYPTED_KEY_TRANSPORT_METHOD = "encrypted-key-transport-method";
212
213
214
215
216
217
218 public static final String TAG_SIGNATURE_METHOD = "signature-method";
219
220
221
222
223
224
225 public static final String TAG_CANONICALIZATION_METHOD = "canonicalization-method";
226
227
228
229
230 public static final String TAG_ID = "id";
231
232 public WSSecurityEngineResult(int act) {
233 put(TAG_ACTION, Integer.valueOf(act));
234 }
235
236 public WSSecurityEngineResult(
237 int act,
238 AssertionWrapper ass
239 ) {
240 put(TAG_ACTION, Integer.valueOf(act));
241 put(TAG_SAML_ASSERTION, ass);
242 put(TAG_VALIDATED_TOKEN, Boolean.FALSE);
243 put(TAG_TOKEN_ELEMENT, ass.getElement());
244 }
245
246 public WSSecurityEngineResult(
247 int act,
248 Principal princ,
249 X509Certificate[] certs,
250 byte[] sv
251 ) {
252 put(TAG_ACTION, Integer.valueOf(act));
253 put(TAG_PRINCIPAL, princ);
254 put(TAG_X509_CERTIFICATES, certs);
255 put(TAG_SIGNATURE_VALUE, sv);
256 if (certs != null) {
257 put(TAG_X509_CERTIFICATE, certs[0]);
258 }
259 put(TAG_VALIDATED_TOKEN, Boolean.FALSE);
260 }
261
262 public
263 WSSecurityEngineResult(
264 int act,
265 Principal princ,
266 X509Certificate[] certs,
267 List<WSDataRef> dataRefs,
268 byte[] sv
269 ) {
270 this(act, princ, certs, sv);
271 put(TAG_DATA_REF_URIS, dataRefs);
272 }
273
274 public WSSecurityEngineResult(
275 int act,
276 byte[] decryptedKey,
277 byte[] encryptedKeyBytes,
278 List<WSDataRef> dataRefUris
279 ) {
280 put(TAG_ACTION, Integer.valueOf(act));
281 put(TAG_SECRET, decryptedKey);
282 put(TAG_ENCRYPTED_EPHEMERAL_KEY, encryptedKeyBytes);
283 put(TAG_DATA_REF_URIS, dataRefUris);
284 put(TAG_VALIDATED_TOKEN, Boolean.FALSE);
285 }
286
287 public WSSecurityEngineResult(
288 int act,
289 byte[] decryptedKey,
290 byte[] encryptedKeyBytes,
291 List<WSDataRef> dataRefUris,
292 X509Certificate[] certs
293 ) {
294 put(TAG_ACTION, Integer.valueOf(act));
295 put(TAG_SECRET, decryptedKey);
296 put(TAG_ENCRYPTED_EPHEMERAL_KEY, encryptedKeyBytes);
297 put(TAG_DATA_REF_URIS, dataRefUris);
298 put(TAG_X509_CERTIFICATES, certs);
299 if (certs != null) {
300 put(TAG_X509_CERTIFICATE, certs[0]);
301 }
302 put(TAG_VALIDATED_TOKEN, Boolean.FALSE);
303 }
304
305 public WSSecurityEngineResult(int act, List<WSDataRef> dataRefUris) {
306 put(TAG_ACTION, Integer.valueOf(act));
307 put(TAG_DATA_REF_URIS, dataRefUris);
308 put(TAG_VALIDATED_TOKEN, Boolean.FALSE);
309 }
310
311 public WSSecurityEngineResult(int act, Timestamp tstamp) {
312 put(TAG_ACTION, Integer.valueOf(act));
313 put(TAG_TIMESTAMP, tstamp);
314 put(TAG_VALIDATED_TOKEN, Boolean.FALSE);
315 put(TAG_TOKEN_ELEMENT, tstamp.getElement());
316 }
317
318 public WSSecurityEngineResult(int act, SecurityContextToken sct) {
319 put(TAG_ACTION, Integer.valueOf(act));
320 put(TAG_SECURITY_CONTEXT_TOKEN, sct);
321 put(TAG_VALIDATED_TOKEN, Boolean.FALSE);
322 put(TAG_TOKEN_ELEMENT, sct.getElement());
323 }
324
325 public WSSecurityEngineResult(int act, SignatureConfirmation sc) {
326 put(TAG_ACTION, Integer.valueOf(act));
327 put(TAG_SIGNATURE_CONFIRMATION, sc);
328 put(TAG_VALIDATED_TOKEN, Boolean.FALSE);
329 put(TAG_TOKEN_ELEMENT, sc.getElement());
330 }
331
332 public WSSecurityEngineResult(int act, UsernameToken usernameToken) {
333 this(act, usernameToken, null);
334 }
335
336 public WSSecurityEngineResult(int act, UsernameToken usernameToken, Principal principal) {
337 put(TAG_ACTION, Integer.valueOf(act));
338 put(TAG_USERNAME_TOKEN, usernameToken);
339 put(TAG_PRINCIPAL, principal);
340 put(TAG_VALIDATED_TOKEN, Boolean.FALSE);
341 put(TAG_TOKEN_ELEMENT, usernameToken.getElement());
342 }
343
344 public WSSecurityEngineResult(int act, BinarySecurity token, X509Certificate[] certs) {
345 put(TAG_ACTION, Integer.valueOf(act));
346 put(TAG_BINARY_SECURITY_TOKEN, token);
347 put(TAG_X509_CERTIFICATES, certs);
348 if (certs != null) {
349 put(TAG_X509_CERTIFICATE, certs[0]);
350 }
351 put(TAG_VALIDATED_TOKEN, Boolean.FALSE);
352 put(TAG_TOKEN_ELEMENT, token.getElement());
353 }
354
355
356 }