1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19 package org.apache.wss4j.stax.impl.resourceResolvers;
20
21 import org.apache.xml.security.stax.ext.ResourceResolver;
22 import org.apache.xml.security.stax.ext.XMLSecurityConstants;
23 import org.apache.xml.security.stax.ext.stax.XMLSecStartElement;
24 import org.apache.wss4j.stax.ext.WSSConstants;
25 import org.apache.xml.security.stax.impl.resourceResolvers.ResolverSameDocument;
26
27 import javax.xml.namespace.QName;
28 import javax.xml.stream.events.Attribute;
29
30 public class WSS4JResolverSameDocument extends ResolverSameDocument {
31
32 public WSS4JResolverSameDocument() {
33 super();
34 }
35
36 public WSS4JResolverSameDocument(String uri) {
37 super(uri);
38 }
39
40 @Override
41 public ResourceResolver newInstance(String uri, String baseURI) {
42 return new WSS4JResolverSameDocument(uri);
43 }
44
45 @Override
46 public boolean matches(XMLSecStartElement xmlSecStartElement) {
47 return matches(xmlSecStartElement, XMLSecurityConstants.ATT_NULL_Id);
48 }
49
50 public boolean matches(XMLSecStartElement xmlSecStartElement, QName idAttributeNS) {
51 Attribute attribute = xmlSecStartElement.getAttributeByName(WSSConstants.ATT_WSU_ID);
52 if (attribute != null && attribute.getValue().equals(getId())) {
53 return true;
54 }
55
56 attribute = xmlSecStartElement.getAttributeByName(WSSConstants.ATT_NULL_ASSERTION_ID);
57 if (attribute != null && attribute.getValue().equals(getId())) {
58 return true;
59 }
60
61 attribute = xmlSecStartElement.getAttributeByName(WSSConstants.ATT_NULL_ID);
62 if (attribute != null && attribute.getValue().equals(getId())) {
63 return true;
64 }
65 return super.matches(xmlSecStartElement, idAttributeNS);
66 }
67
68 }