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.processor;
21
22 import org.apache.ws.security.WSConstants;
23 import org.apache.ws.security.WSDocInfo;
24 import org.apache.ws.security.WSSConfig;
25 import org.apache.ws.security.WSSecurityEngine;
26 import org.apache.ws.security.WSSecurityEngineResult;
27 import org.apache.ws.security.WSSecurityException;
28 import org.apache.ws.security.handler.RequestData;
29 import org.apache.ws.security.message.token.Timestamp;
30 import org.apache.ws.security.validate.Credential;
31 import org.apache.ws.security.validate.Validator;
32 import org.w3c.dom.Element;
33
34 import java.util.List;
35
36 public class TimestampProcessor implements Processor {
37 private static org.apache.commons.logging.Log log =
38 org.apache.commons.logging.LogFactory.getLog(TimestampProcessor.class);
39
40 public List<WSSecurityEngineResult> handleToken(
41 Element elem,
42 RequestData data,
43 WSDocInfo wsDocInfo
44 ) throws WSSecurityException {
45 if (log.isDebugEnabled()) {
46 log.debug("Found Timestamp list element");
47 }
48
49
50
51 WSSConfig config = data.getWssConfig();
52 Timestamp timestamp = new Timestamp(elem, config.isWsiBSPCompliant());
53 Credential credential = new Credential();
54 credential.setTimestamp(timestamp);
55
56 WSSecurityEngineResult result =
57 new WSSecurityEngineResult(WSConstants.TS, timestamp);
58 result.put(WSSecurityEngineResult.TAG_ID, timestamp.getID());
59
60 Validator validator = data.getValidator(WSSecurityEngine.TIMESTAMP);
61 if (validator != null) {
62 validator.validate(credential, data);
63
64 result.put(WSSecurityEngineResult.TAG_VALIDATED_TOKEN, Boolean.TRUE);
65 }
66
67 wsDocInfo.addTokenElement(elem);
68 wsDocInfo.addResult(result);
69 return java.util.Collections.singletonList(result);
70 }
71
72 }