public final class org.jcp.xml.dsig.internal.dom.DOMURIDereferencer implements javax.xml.crypto.URIDereferencer
minor version: 0
major version: 59
flags: flags: (0x0031) ACC_PUBLIC, ACC_FINAL, ACC_SUPER
this_class: org.jcp.xml.dsig.internal.dom.DOMURIDereferencer
super_class: java.lang.Object
{
static final javax.xml.crypto.URIDereferencer INSTANCE;
descriptor: Ljavax/xml/crypto/URIDereferencer;
flags: (0x0018) ACC_STATIC, ACC_FINAL
static void <clinit>();
descriptor: ()V
flags: (0x0008) ACC_STATIC
Code:
stack=2, locals=0, args_size=0
0: new org.jcp.xml.dsig.internal.dom.DOMURIDereferencer
dup
invokespecial org.jcp.xml.dsig.internal.dom.DOMURIDereferencer.<init>:()V
putstatic org.jcp.xml.dsig.internal.dom.DOMURIDereferencer.INSTANCE:Ljavax/xml/crypto/URIDereferencer;
return
LocalVariableTable:
Start End Slot Name Signature
private void <init>();
descriptor: ()V
flags: (0x0002) ACC_PRIVATE
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
invokespecial java.lang.Object.<init>:()V
1: invokestatic com.sun.org.apache.xml.internal.security.Init.init:()V
2: return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Lorg/jcp/xml/dsig/internal/dom/DOMURIDereferencer;
public javax.xml.crypto.Data dereference(javax.xml.crypto.URIReference, javax.xml.crypto.XMLCryptoContext);
descriptor: (Ljavax/xml/crypto/URIReference;Ljavax/xml/crypto/XMLCryptoContext;)Ljavax/xml/crypto/Data;
flags: (0x0001) ACC_PUBLIC
Code:
stack=5, locals=13, args_size=3
start local 0 start local 1 start local 2 0: aload 1
ifnonnull 2
1: new java.lang.NullPointerException
dup
ldc "uriRef cannot be null"
invokespecial java.lang.NullPointerException.<init>:(Ljava/lang/String;)V
athrow
2: StackMap locals:
StackMap stack:
aload 2
ifnonnull 4
3: new java.lang.NullPointerException
dup
ldc "context cannot be null"
invokespecial java.lang.NullPointerException.<init>:(Ljava/lang/String;)V
athrow
4: StackMap locals:
StackMap stack:
aload 1
checkcast javax.xml.crypto.dom.DOMURIReference
astore 3
start local 3 5: aload 3
invokeinterface javax.xml.crypto.dom.DOMURIReference.getHere:()Lorg/w3c/dom/Node;
checkcast org.w3c.dom.Attr
astore 4
start local 4 6: aload 1
invokeinterface javax.xml.crypto.URIReference.getURI:()Ljava/lang/String;
astore 5
start local 5 7: aload 2
checkcast javax.xml.crypto.dom.DOMCryptoContext
astore 6
start local 6 8: aload 2
invokeinterface javax.xml.crypto.XMLCryptoContext.getBaseURI:()Ljava/lang/String;
astore 7
start local 7 9: aload 2
invokestatic org.jcp.xml.dsig.internal.dom.Utils.secureValidation:(Ljavax/xml/crypto/XMLCryptoContext;)Z
istore 8
start local 8 10: iload 8
ifeq 14
aload 5
invokestatic org.jcp.xml.dsig.internal.dom.Policy.restrictReferenceUriScheme:(Ljava/lang/String;)Z
ifeq 14
11: new javax.xml.crypto.URIReferenceException
dup
12: new java.lang.StringBuilder
dup
ldc "Uri "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 5
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
ldc " is forbidden when secure validation is enabled"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
13: invokespecial javax.xml.crypto.URIReferenceException.<init>:(Ljava/lang/String;)V
athrow
14: StackMap locals: org.jcp.xml.dsig.internal.dom.DOMURIDereferencer javax.xml.crypto.URIReference javax.xml.crypto.XMLCryptoContext javax.xml.crypto.dom.DOMURIReference org.w3c.dom.Attr java.lang.String javax.xml.crypto.dom.DOMCryptoContext java.lang.String int
StackMap stack:
aload 5
ifnull 42
aload 5
invokevirtual java.lang.String.length:()I
ifeq 42
aload 5
iconst_0
invokevirtual java.lang.String.charAt:(I)C
bipush 35
if_icmpne 42
15: aload 5
iconst_1
invokevirtual java.lang.String.substring:(I)Ljava/lang/String;
astore 9
start local 9 16: aload 9
ldc "xpointer(id("
invokevirtual java.lang.String.startsWith:(Ljava/lang/String;)Z
ifeq 20
17: aload 9
bipush 39
invokevirtual java.lang.String.indexOf:(I)I
istore 10
start local 10 18: aload 9
bipush 39
iload 10
iconst_1
iadd
invokevirtual java.lang.String.indexOf:(II)I
istore 11
start local 11 19: aload 9
iload 10
iconst_1
iadd
iload 11
invokevirtual java.lang.String.substring:(II)Ljava/lang/String;
astore 9
end local 11 end local 10 20: StackMap locals: java.lang.String
StackMap stack:
aload 4
invokeinterface org.w3c.dom.Attr.getOwnerDocument:()Lorg/w3c/dom/Document;
aload 9
invokeinterface org.w3c.dom.Document.getElementById:(Ljava/lang/String;)Lorg/w3c/dom/Element;
astore 10
start local 10 21: aload 10
ifnonnull 23
22: aload 6
aload 9
invokevirtual javax.xml.crypto.dom.DOMCryptoContext.getElementById:(Ljava/lang/String;)Lorg/w3c/dom/Element;
astore 10
23: StackMap locals: org.w3c.dom.Node
StackMap stack:
aload 10
ifnull 42
24: iload 8
ifeq 32
invokestatic org.jcp.xml.dsig.internal.dom.Policy.restrictDuplicateIds:()Z
ifeq 32
25: aload 10
invokeinterface org.w3c.dom.Node.getOwnerDocument:()Lorg/w3c/dom/Document;
invokeinterface org.w3c.dom.Document.getDocumentElement:()Lorg/w3c/dom/Element;
astore 11
start local 11 26: aload 11
aload 10
checkcast org.w3c.dom.Element
aload 9
invokestatic com.sun.org.apache.xml.internal.security.utils.XMLUtils.protectAgainstWrappingAttack:(Lorg/w3c/dom/Node;Lorg/w3c/dom/Element;Ljava/lang/String;)Z
ifne 32
27: new java.lang.StringBuilder
dup
ldc "Multiple Elements with the same ID "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
28: aload 9
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
ldc " detected when secure validation"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
29: ldc " is enabled"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
30: invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
astore 12
start local 12 31: new javax.xml.crypto.URIReferenceException
dup
aload 12
invokespecial javax.xml.crypto.URIReferenceException.<init>:(Ljava/lang/String;)V
athrow
end local 12 end local 11 32: StackMap locals:
StackMap stack:
new com.sun.org.apache.xml.internal.security.signature.XMLSignatureInput
dup
aload 10
invokespecial com.sun.org.apache.xml.internal.security.signature.XMLSignatureInput.<init>:(Lorg/w3c/dom/Node;)V
astore 11
start local 11 33: aload 11
iload 8
invokevirtual com.sun.org.apache.xml.internal.security.signature.XMLSignatureInput.setSecureValidation:(Z)V
34: aload 5
iconst_1
invokevirtual java.lang.String.substring:(I)Ljava/lang/String;
ldc "xpointer(id("
invokevirtual java.lang.String.startsWith:(Ljava/lang/String;)Z
ifne 36
35: aload 11
iconst_1
invokevirtual com.sun.org.apache.xml.internal.security.signature.XMLSignatureInput.setExcludeComments:(Z)V
36: StackMap locals: com.sun.org.apache.xml.internal.security.signature.XMLSignatureInput
StackMap stack:
aload 11
ldc "text/xml"
invokevirtual com.sun.org.apache.xml.internal.security.signature.XMLSignatureInput.setMIMEType:(Ljava/lang/String;)V
37: aload 7
ifnull 40
aload 7
invokevirtual java.lang.String.length:()I
ifle 40
38: aload 11
aload 7
aload 4
invokeinterface org.w3c.dom.Attr.getNodeValue:()Ljava/lang/String;
invokevirtual java.lang.String.concat:(Ljava/lang/String;)Ljava/lang/String;
invokevirtual com.sun.org.apache.xml.internal.security.signature.XMLSignatureInput.setSourceURI:(Ljava/lang/String;)V
39: goto 41
40: StackMap locals:
StackMap stack:
aload 11
aload 4
invokeinterface org.w3c.dom.Attr.getNodeValue:()Ljava/lang/String;
invokevirtual com.sun.org.apache.xml.internal.security.signature.XMLSignatureInput.setSourceURI:(Ljava/lang/String;)V
41: StackMap locals:
StackMap stack:
new org.jcp.xml.dsig.internal.dom.ApacheNodeSetData
dup
aload 11
invokespecial org.jcp.xml.dsig.internal.dom.ApacheNodeSetData.<init>:(Lcom/sun/org/apache/xml/internal/security/signature/XMLSignatureInput;)V
areturn
end local 11 end local 10 end local 9 42: StackMap locals:
StackMap stack:
aload 4
aload 7
iconst_0
invokestatic com.sun.org.apache.xml.internal.security.utils.resolver.ResourceResolver.getInstance:(Lorg/w3c/dom/Attr;Ljava/lang/String;Z)Lcom/sun/org/apache/xml/internal/security/utils/resolver/ResourceResolver;
43: astore 9
start local 9 44: aload 9
aload 4
aload 7
iconst_0
invokevirtual com.sun.org.apache.xml.internal.security.utils.resolver.ResourceResolver.resolve:(Lorg/w3c/dom/Attr;Ljava/lang/String;Z)Lcom/sun/org/apache/xml/internal/security/signature/XMLSignatureInput;
astore 10
start local 10 45: aload 10
invokevirtual com.sun.org.apache.xml.internal.security.signature.XMLSignatureInput.isOctetStream:()Z
ifeq 48
46: new org.jcp.xml.dsig.internal.dom.ApacheOctetStreamData
dup
aload 10
invokespecial org.jcp.xml.dsig.internal.dom.ApacheOctetStreamData.<init>:(Lcom/sun/org/apache/xml/internal/security/signature/XMLSignatureInput;)V
47: areturn
48: StackMap locals: com.sun.org.apache.xml.internal.security.utils.resolver.ResourceResolver com.sun.org.apache.xml.internal.security.signature.XMLSignatureInput
StackMap stack:
new org.jcp.xml.dsig.internal.dom.ApacheNodeSetData
dup
aload 10
invokespecial org.jcp.xml.dsig.internal.dom.ApacheNodeSetData.<init>:(Lcom/sun/org/apache/xml/internal/security/signature/XMLSignatureInput;)V
49: areturn
end local 10 end local 9 50: StackMap locals: org.jcp.xml.dsig.internal.dom.DOMURIDereferencer javax.xml.crypto.URIReference javax.xml.crypto.XMLCryptoContext javax.xml.crypto.dom.DOMURIReference org.w3c.dom.Attr java.lang.String javax.xml.crypto.dom.DOMCryptoContext java.lang.String int
StackMap stack: java.lang.Exception
astore 9
start local 9 51: new javax.xml.crypto.URIReferenceException
dup
aload 9
invokespecial javax.xml.crypto.URIReferenceException.<init>:(Ljava/lang/Throwable;)V
athrow
end local 9 end local 8 end local 7 end local 6 end local 5 end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 52 0 this Lorg/jcp/xml/dsig/internal/dom/DOMURIDereferencer;
0 52 1 uriRef Ljavax/xml/crypto/URIReference;
0 52 2 context Ljavax/xml/crypto/XMLCryptoContext;
5 52 3 domRef Ljavax/xml/crypto/dom/DOMURIReference;
6 52 4 uriAttr Lorg/w3c/dom/Attr;
7 52 5 uri Ljava/lang/String;
8 52 6 dcc Ljavax/xml/crypto/dom/DOMCryptoContext;
9 52 7 baseURI Ljava/lang/String;
10 52 8 secVal Z
16 42 9 id Ljava/lang/String;
18 20 10 i1 I
19 20 11 i2 I
21 42 10 referencedElem Lorg/w3c/dom/Node;
26 32 11 start Lorg/w3c/dom/Element;
31 32 12 error Ljava/lang/String;
33 42 11 result Lcom/sun/org/apache/xml/internal/security/signature/XMLSignatureInput;
44 50 9 apacheResolver Lcom/sun/org/apache/xml/internal/security/utils/resolver/ResourceResolver;
45 50 10 in Lcom/sun/org/apache/xml/internal/security/signature/XMLSignatureInput;
51 52 9 e Ljava/lang/Exception;
Exception table:
from to target type
42 47 50 Class java.lang.Exception
48 49 50 Class java.lang.Exception
Exceptions:
throws javax.xml.crypto.URIReferenceException
MethodParameters:
Name Flags
uriRef
context
}
SourceFile: "DOMURIDereferencer.java"