final class com.sun.security.sasl.gsskerb.GssKrb5Server extends com.sun.security.sasl.gsskerb.GssKrb5Base implements javax.security.sasl.SaslServer
minor version: 0
major version: 59
flags: flags: (0x0030) ACC_FINAL, ACC_SUPER
this_class: com.sun.security.sasl.gsskerb.GssKrb5Server
super_class: com.sun.security.sasl.gsskerb.GssKrb5Base
{
private static final java.lang.String MY_CLASS_NAME;
descriptor: Ljava/lang/String;
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
private int handshakeStage;
descriptor: I
flags: (0x0002) ACC_PRIVATE
private java.lang.String peer;
descriptor: Ljava/lang/String;
flags: (0x0002) ACC_PRIVATE
private java.lang.String me;
descriptor: Ljava/lang/String;
flags: (0x0002) ACC_PRIVATE
private java.lang.String authzid;
descriptor: Ljava/lang/String;
flags: (0x0002) ACC_PRIVATE
private javax.security.auth.callback.CallbackHandler cbh;
descriptor: Ljavax/security/auth/callback/CallbackHandler;
flags: (0x0002) ACC_PRIVATE
private final java.lang.String protocolSaved;
descriptor: Ljava/lang/String;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
static void <clinit>();
descriptor: ()V
flags: (0x0008) ACC_STATIC
Code:
stack=1, locals=0, args_size=0
0: ldc Lcom/sun/security/sasl/gsskerb/GssKrb5Server;
invokevirtual java.lang.Class.getName:()Ljava/lang/String;
putstatic com.sun.security.sasl.gsskerb.GssKrb5Server.MY_CLASS_NAME:Ljava/lang/String;
return
LocalVariableTable:
Start End Slot Name Signature
void <init>(java.lang.String, java.lang.String, java.util.Map<java.lang.String, ?>, javax.security.auth.callback.CallbackHandler);
descriptor: (Ljava/lang/String;Ljava/lang/String;Ljava/util/Map;Ljavax/security/auth/callback/CallbackHandler;)V
flags: (0x0000)
Code:
stack=5, locals=9, args_size=5
start local 0 start local 1 start local 2 start local 3 start local 4 0: aload 0
aload 3
getstatic com.sun.security.sasl.gsskerb.GssKrb5Server.MY_CLASS_NAME:Ljava/lang/String;
invokespecial com.sun.security.sasl.gsskerb.GssKrb5Base.<init>:(Ljava/util/Map;Ljava/lang/String;)V
1: aload 0
iconst_0
putfield com.sun.security.sasl.gsskerb.GssKrb5Server.handshakeStage:I
2: aload 0
aload 4
putfield com.sun.security.sasl.gsskerb.GssKrb5Server.cbh:Ljavax/security/auth/callback/CallbackHandler;
3: aload 2
ifnonnull 7
4: aload 0
aload 1
putfield com.sun.security.sasl.gsskerb.GssKrb5Server.protocolSaved:Ljava/lang/String;
5: aconst_null
astore 5
start local 5 6: goto 9
end local 5 7: StackMap locals: com.sun.security.sasl.gsskerb.GssKrb5Server java.lang.String java.lang.String java.util.Map javax.security.auth.callback.CallbackHandler
StackMap stack:
aload 0
aconst_null
putfield com.sun.security.sasl.gsskerb.GssKrb5Server.protocolSaved:Ljava/lang/String;
8: new java.lang.StringBuilder
dup
aload 1
invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
ldc "@"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
aload 2
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
astore 5
start local 5 9: StackMap locals: java.lang.String
StackMap stack:
getstatic com.sun.security.sasl.gsskerb.GssKrb5Server.logger:Ljava/util/logging/Logger;
getstatic java.util.logging.Level.FINE:Ljava/util/logging/Level;
ldc "KRB5SRV01:Using service name: {0}"
aload 5
invokevirtual java.util.logging.Logger.log:(Ljava/util/logging/Level;Ljava/lang/String;Ljava/lang/Object;)V
10: invokestatic org.ietf.jgss.GSSManager.getInstance:()Lorg/ietf/jgss/GSSManager;
astore 6
start local 6 11: aload 5
ifnonnull 12
aconst_null
goto 13
12: StackMap locals: org.ietf.jgss.GSSManager
StackMap stack:
aload 6
aload 5
getstatic org.ietf.jgss.GSSName.NT_HOSTBASED_SERVICE:Lorg/ietf/jgss/Oid;
getstatic com.sun.security.sasl.gsskerb.GssKrb5Server.KRB5_OID:Lorg/ietf/jgss/Oid;
invokevirtual org.ietf.jgss.GSSManager.createName:(Ljava/lang/String;Lorg/ietf/jgss/Oid;Lorg/ietf/jgss/Oid;)Lorg/ietf/jgss/GSSName;
13: StackMap locals:
StackMap stack: org.ietf.jgss.GSSName
astore 7
start local 7 14: aload 6
aload 7
15: ldc 2147483647
16: getstatic com.sun.security.sasl.gsskerb.GssKrb5Server.KRB5_OID:Lorg/ietf/jgss/Oid;
iconst_2
17: invokevirtual org.ietf.jgss.GSSManager.createCredential:(Lorg/ietf/jgss/GSSName;ILorg/ietf/jgss/Oid;I)Lorg/ietf/jgss/GSSCredential;
astore 8
start local 8 18: aload 0
aload 6
aload 8
invokevirtual org.ietf.jgss.GSSManager.createContext:(Lorg/ietf/jgss/GSSCredential;)Lorg/ietf/jgss/GSSContext;
putfield com.sun.security.sasl.gsskerb.GssKrb5Server.secCtx:Lorg/ietf/jgss/GSSContext;
19: aload 0
getfield com.sun.security.sasl.gsskerb.GssKrb5Server.allQop:B
iconst_2
iand
ifeq 21
20: aload 0
getfield com.sun.security.sasl.gsskerb.GssKrb5Server.secCtx:Lorg/ietf/jgss/GSSContext;
iconst_1
invokeinterface org.ietf.jgss.GSSContext.requestInteg:(Z)V
21: StackMap locals: org.ietf.jgss.GSSName org.ietf.jgss.GSSCredential
StackMap stack:
aload 0
getfield com.sun.security.sasl.gsskerb.GssKrb5Server.allQop:B
iconst_4
iand
ifeq 26
22: aload 0
getfield com.sun.security.sasl.gsskerb.GssKrb5Server.secCtx:Lorg/ietf/jgss/GSSContext;
iconst_1
invokeinterface org.ietf.jgss.GSSContext.requestConf:(Z)V
end local 8 end local 7 end local 6 23: goto 26
StackMap locals: com.sun.security.sasl.gsskerb.GssKrb5Server java.lang.String java.lang.String java.util.Map javax.security.auth.callback.CallbackHandler java.lang.String
StackMap stack: org.ietf.jgss.GSSException
24: astore 6
start local 6 25: new javax.security.sasl.SaslException
dup
ldc "Failure to initialize security context"
aload 6
invokespecial javax.security.sasl.SaslException.<init>:(Ljava/lang/String;Ljava/lang/Throwable;)V
athrow
end local 6 26: StackMap locals:
StackMap stack:
getstatic com.sun.security.sasl.gsskerb.GssKrb5Server.logger:Ljava/util/logging/Logger;
getstatic java.util.logging.Level.FINE:Ljava/util/logging/Level;
ldc "KRB5SRV02:Initialization complete"
invokevirtual java.util.logging.Logger.log:(Ljava/util/logging/Level;Ljava/lang/String;)V
27: return
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 28 0 this Lcom/sun/security/sasl/gsskerb/GssKrb5Server;
0 28 1 protocol Ljava/lang/String;
0 28 2 serverName Ljava/lang/String;
0 28 3 props Ljava/util/Map<Ljava/lang/String;*>;
0 28 4 cbh Ljavax/security/auth/callback/CallbackHandler;
6 7 5 service Ljava/lang/String;
9 28 5 service Ljava/lang/String;
11 23 6 mgr Lorg/ietf/jgss/GSSManager;
14 23 7 serviceName Lorg/ietf/jgss/GSSName;
18 23 8 cred Lorg/ietf/jgss/GSSCredential;
25 26 6 e Lorg/ietf/jgss/GSSException;
Exception table:
from to target type
10 23 24 Class org.ietf.jgss.GSSException
Exceptions:
throws javax.security.sasl.SaslException
Signature: (Ljava/lang/String;Ljava/lang/String;Ljava/util/Map<Ljava/lang/String;*>;Ljavax/security/auth/callback/CallbackHandler;)V
MethodParameters:
Name Flags
protocol
serverName
props
cbh
public byte[] evaluateResponse(byte[]);
descriptor: ([B)[B
flags: (0x0001) ACC_PUBLIC
Code:
stack=7, locals=3, args_size=2
start local 0 start local 1 0: aload 0
getfield com.sun.security.sasl.gsskerb.GssKrb5Server.completed:Z
ifeq 4
1: new javax.security.sasl.SaslException
dup
2: ldc "SASL authentication already complete"
3: invokespecial javax.security.sasl.SaslException.<init>:(Ljava/lang/String;)V
athrow
4: StackMap locals:
StackMap stack:
getstatic com.sun.security.sasl.gsskerb.GssKrb5Server.logger:Ljava/util/logging/Logger;
getstatic java.util.logging.Level.FINER:Ljava/util/logging/Level;
invokevirtual java.util.logging.Logger.isLoggable:(Ljava/util/logging/Level;)Z
ifeq 8
5: getstatic com.sun.security.sasl.gsskerb.GssKrb5Server.MY_CLASS_NAME:Ljava/lang/String;
ldc "evaluateResponse"
6: ldc "KRB5SRV03:Response [raw]:"
aload 1
7: invokestatic com.sun.security.sasl.gsskerb.GssKrb5Server.traceOutput:(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;[B)V
8: StackMap locals:
StackMap stack:
aload 0
getfield com.sun.security.sasl.gsskerb.GssKrb5Server.handshakeStage:I
tableswitch { // 1 - 2
1: 9
2: 10
default: 11
}
9: StackMap locals:
StackMap stack:
aload 0
aload 1
invokevirtual com.sun.security.sasl.gsskerb.GssKrb5Server.doHandshake1:([B)[B
areturn
10: StackMap locals:
StackMap stack:
aload 0
aload 1
invokevirtual com.sun.security.sasl.gsskerb.GssKrb5Server.doHandshake2:([B)[B
areturn
11: StackMap locals:
StackMap stack:
aload 0
getfield com.sun.security.sasl.gsskerb.GssKrb5Server.secCtx:Lorg/ietf/jgss/GSSContext;
aload 1
12: iconst_0
aload 1
arraylength
13: invokeinterface org.ietf.jgss.GSSContext.acceptSecContext:([BII)[B
astore 2
start local 2 14: getstatic com.sun.security.sasl.gsskerb.GssKrb5Server.logger:Ljava/util/logging/Logger;
getstatic java.util.logging.Level.FINER:Ljava/util/logging/Level;
invokevirtual java.util.logging.Logger.isLoggable:(Ljava/util/logging/Level;)Z
ifeq 18
15: getstatic com.sun.security.sasl.gsskerb.GssKrb5Server.MY_CLASS_NAME:Ljava/lang/String;
ldc "evaluateResponse"
16: ldc "KRB5SRV04:Challenge: [after acceptSecCtx]"
aload 2
17: invokestatic com.sun.security.sasl.gsskerb.GssKrb5Server.traceOutput:(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;[B)V
18: StackMap locals: byte[]
StackMap stack:
aload 0
getfield com.sun.security.sasl.gsskerb.GssKrb5Server.secCtx:Lorg/ietf/jgss/GSSContext;
invokeinterface org.ietf.jgss.GSSContext.isEstablished:()Z
ifeq 34
19: aload 0
iconst_1
putfield com.sun.security.sasl.gsskerb.GssKrb5Server.handshakeStage:I
20: aload 0
aload 0
getfield com.sun.security.sasl.gsskerb.GssKrb5Server.secCtx:Lorg/ietf/jgss/GSSContext;
invokeinterface org.ietf.jgss.GSSContext.getSrcName:()Lorg/ietf/jgss/GSSName;
invokeinterface org.ietf.jgss.GSSName.toString:()Ljava/lang/String;
putfield com.sun.security.sasl.gsskerb.GssKrb5Server.peer:Ljava/lang/String;
21: aload 0
aload 0
getfield com.sun.security.sasl.gsskerb.GssKrb5Server.secCtx:Lorg/ietf/jgss/GSSContext;
invokeinterface org.ietf.jgss.GSSContext.getTargName:()Lorg/ietf/jgss/GSSName;
invokeinterface org.ietf.jgss.GSSName.toString:()Ljava/lang/String;
putfield com.sun.security.sasl.gsskerb.GssKrb5Server.me:Ljava/lang/String;
22: getstatic com.sun.security.sasl.gsskerb.GssKrb5Server.logger:Ljava/util/logging/Logger;
getstatic java.util.logging.Level.FINE:Ljava/util/logging/Level;
23: ldc "KRB5SRV05:Peer name is : {0}, my name is : {1}"
24: iconst_2
anewarray java.lang.Object
dup
iconst_0
aload 0
getfield com.sun.security.sasl.gsskerb.GssKrb5Server.peer:Ljava/lang/String;
aastore
dup
iconst_1
aload 0
getfield com.sun.security.sasl.gsskerb.GssKrb5Server.me:Ljava/lang/String;
aastore
25: invokevirtual java.util.logging.Logger.log:(Ljava/util/logging/Level;Ljava/lang/String;[Ljava/lang/Object;)V
26: aload 0
getfield com.sun.security.sasl.gsskerb.GssKrb5Server.protocolSaved:Ljava/lang/String;
ifnull 31
27: aload 0
getfield com.sun.security.sasl.gsskerb.GssKrb5Server.protocolSaved:Ljava/lang/String;
aload 0
getfield com.sun.security.sasl.gsskerb.GssKrb5Server.me:Ljava/lang/String;
ldc "[/@]"
invokevirtual java.lang.String.split:(Ljava/lang/String;)[Ljava/lang/String;
iconst_0
aaload
invokevirtual java.lang.String.equalsIgnoreCase:(Ljava/lang/String;)Z
ifne 31
28: new javax.security.sasl.SaslException
dup
29: new java.lang.StringBuilder
dup
ldc "GSS context targ name protocol error: "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 0
getfield com.sun.security.sasl.gsskerb.GssKrb5Server.me:Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
30: invokespecial javax.security.sasl.SaslException.<init>:(Ljava/lang/String;)V
athrow
31: StackMap locals:
StackMap stack:
aload 2
ifnonnull 34
32: aload 0
getstatic com.sun.security.sasl.gsskerb.GssKrb5Server.EMPTY:[B
invokevirtual com.sun.security.sasl.gsskerb.GssKrb5Server.doHandshake1:([B)[B
33: areturn
34: StackMap locals:
StackMap stack:
aload 2
35: areturn
end local 2 36: StackMap locals: com.sun.security.sasl.gsskerb.GssKrb5Server byte[]
StackMap stack: org.ietf.jgss.GSSException
astore 2
start local 2 37: new javax.security.sasl.SaslException
dup
ldc "GSS initiate failed"
aload 2
invokespecial javax.security.sasl.SaslException.<init>:(Ljava/lang/String;Ljava/lang/Throwable;)V
athrow
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 38 0 this Lcom/sun/security/sasl/gsskerb/GssKrb5Server;
0 38 1 responseData [B
14 36 2 gssOutToken [B
37 38 2 e Lorg/ietf/jgss/GSSException;
Exception table:
from to target type
11 33 36 Class org.ietf.jgss.GSSException
34 35 36 Class org.ietf.jgss.GSSException
Exceptions:
throws javax.security.sasl.SaslException
MethodParameters:
Name Flags
responseData
private byte[] doHandshake1(byte[]);
descriptor: ([B)[B
flags: (0x0002) ACC_PRIVATE
Code:
stack=8, locals=4, args_size=2
start local 0 start local 1 0: aload 1
ifnull 4
aload 1
arraylength
ifle 4
1: new javax.security.sasl.SaslException
dup
2: ldc "Handshake expecting no response data from server"
3: invokespecial javax.security.sasl.SaslException.<init>:(Ljava/lang/String;)V
athrow
4: StackMap locals:
StackMap stack:
iconst_4
newarray 8
astore 2
start local 2 5: aload 2
iconst_0
aload 0
getfield com.sun.security.sasl.gsskerb.GssKrb5Server.allQop:B
bastore
6: aload 0
getfield com.sun.security.sasl.gsskerb.GssKrb5Server.recvMaxBufSize:I
aload 2
iconst_1
iconst_3
invokestatic com.sun.security.sasl.gsskerb.GssKrb5Server.intToNetworkByteOrder:(I[BII)V
7: getstatic com.sun.security.sasl.gsskerb.GssKrb5Server.logger:Ljava/util/logging/Logger;
getstatic java.util.logging.Level.FINE:Ljava/util/logging/Level;
invokevirtual java.util.logging.Logger.isLoggable:(Ljava/util/logging/Level;)Z
ifeq 13
8: getstatic com.sun.security.sasl.gsskerb.GssKrb5Server.logger:Ljava/util/logging/Logger;
getstatic java.util.logging.Level.FINE:Ljava/util/logging/Level;
9: ldc "KRB5SRV06:Supported protections: {0}; recv max buf size: {1}"
10: iconst_2
anewarray java.lang.Object
dup
iconst_0
aload 0
getfield com.sun.security.sasl.gsskerb.GssKrb5Server.allQop:B
invokestatic java.lang.Byte.valueOf:(B)Ljava/lang/Byte;
aastore
dup
iconst_1
11: aload 0
getfield com.sun.security.sasl.gsskerb.GssKrb5Server.recvMaxBufSize:I
invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
aastore
12: invokevirtual java.util.logging.Logger.log:(Ljava/util/logging/Level;Ljava/lang/String;[Ljava/lang/Object;)V
13: StackMap locals: byte[]
StackMap stack:
aload 0
iconst_2
putfield com.sun.security.sasl.gsskerb.GssKrb5Server.handshakeStage:I
14: getstatic com.sun.security.sasl.gsskerb.GssKrb5Server.logger:Ljava/util/logging/Logger;
getstatic java.util.logging.Level.FINER:Ljava/util/logging/Level;
invokevirtual java.util.logging.Logger.isLoggable:(Ljava/util/logging/Level;)Z
ifeq 18
15: getstatic com.sun.security.sasl.gsskerb.GssKrb5Server.MY_CLASS_NAME:Ljava/lang/String;
ldc "doHandshake1"
16: ldc "KRB5SRV07:Challenge [raw]"
aload 2
17: invokestatic com.sun.security.sasl.gsskerb.GssKrb5Server.traceOutput:(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;[B)V
18: StackMap locals:
StackMap stack:
aload 0
getfield com.sun.security.sasl.gsskerb.GssKrb5Server.secCtx:Lorg/ietf/jgss/GSSContext;
aload 2
iconst_0
aload 2
arraylength
19: new org.ietf.jgss.MessageProp
dup
iconst_0
iconst_0
invokespecial org.ietf.jgss.MessageProp.<init>:(IZ)V
20: invokeinterface org.ietf.jgss.GSSContext.wrap:([BIILorg/ietf/jgss/MessageProp;)[B
astore 3
start local 3 21: getstatic com.sun.security.sasl.gsskerb.GssKrb5Server.logger:Ljava/util/logging/Logger;
getstatic java.util.logging.Level.FINER:Ljava/util/logging/Level;
invokevirtual java.util.logging.Logger.isLoggable:(Ljava/util/logging/Level;)Z
ifeq 25
22: getstatic com.sun.security.sasl.gsskerb.GssKrb5Server.MY_CLASS_NAME:Ljava/lang/String;
ldc "doHandshake1"
23: ldc "KRB5SRV08:Challenge [after wrap]"
aload 3
24: invokestatic com.sun.security.sasl.gsskerb.GssKrb5Server.traceOutput:(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;[B)V
25: StackMap locals: byte[]
StackMap stack:
aload 3
26: areturn
end local 3 end local 2 27: StackMap locals: com.sun.security.sasl.gsskerb.GssKrb5Server byte[]
StackMap stack: org.ietf.jgss.GSSException
astore 2
start local 2 28: new javax.security.sasl.SaslException
dup
ldc "Problem wrapping handshake1"
aload 2
invokespecial javax.security.sasl.SaslException.<init>:(Ljava/lang/String;Ljava/lang/Throwable;)V
athrow
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 29 0 this Lcom/sun/security/sasl/gsskerb/GssKrb5Server;
0 29 1 responseData [B
5 27 2 gssInToken [B
21 27 3 gssOutToken [B
28 29 2 e Lorg/ietf/jgss/GSSException;
Exception table:
from to target type
0 26 27 Class org.ietf.jgss.GSSException
Exceptions:
throws javax.security.sasl.SaslException
MethodParameters:
Name Flags
responseData
private byte[] doHandshake2(byte[]);
descriptor: ([B)[B
flags: (0x0002) ACC_PRIVATE
Code:
stack=7, locals=7, args_size=2
start local 0 start local 1 0: new org.ietf.jgss.MessageProp
dup
iconst_0
invokespecial org.ietf.jgss.MessageProp.<init>:(Z)V
astore 2
start local 2 1: aload 0
getfield com.sun.security.sasl.gsskerb.GssKrb5Server.secCtx:Lorg/ietf/jgss/GSSContext;
aload 1
iconst_0
2: aload 1
arraylength
aload 2
3: invokeinterface org.ietf.jgss.GSSContext.unwrap:([BIILorg/ietf/jgss/MessageProp;)[B
astore 3
start local 3 4: aload 0
ldc "Handshake failure: "
aload 2
invokevirtual com.sun.security.sasl.gsskerb.GssKrb5Server.checkMessageProp:(Ljava/lang/String;Lorg/ietf/jgss/MessageProp;)V
5: getstatic com.sun.security.sasl.gsskerb.GssKrb5Server.logger:Ljava/util/logging/Logger;
getstatic java.util.logging.Level.FINER:Ljava/util/logging/Level;
invokevirtual java.util.logging.Logger.isLoggable:(Ljava/util/logging/Level;)Z
ifeq 9
6: getstatic com.sun.security.sasl.gsskerb.GssKrb5Server.MY_CLASS_NAME:Ljava/lang/String;
ldc "doHandshake2"
7: ldc "KRB5SRV09:Response [after unwrap]"
aload 3
8: invokestatic com.sun.security.sasl.gsskerb.GssKrb5Server.traceOutput:(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;[B)V
9: StackMap locals: org.ietf.jgss.MessageProp byte[]
StackMap stack:
aload 3
iconst_0
baload
istore 4
start local 4 10: iload 4
aload 0
getfield com.sun.security.sasl.gsskerb.GssKrb5Server.allQop:B
iand
ifne 14
11: new javax.security.sasl.SaslException
dup
new java.lang.StringBuilder
dup
ldc "Client selected unsupported protection: "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
12: iload 4
invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
13: invokespecial javax.security.sasl.SaslException.<init>:(Ljava/lang/String;)V
athrow
14: StackMap locals: int
StackMap stack:
iload 4
iconst_4
iand
ifeq 18
15: aload 0
iconst_1
putfield com.sun.security.sasl.gsskerb.GssKrb5Server.privacy:Z
16: aload 0
iconst_1
putfield com.sun.security.sasl.gsskerb.GssKrb5Server.integrity:Z
17: goto 20
StackMap locals:
StackMap stack:
18: iload 4
iconst_2
iand
ifeq 20
19: aload 0
iconst_1
putfield com.sun.security.sasl.gsskerb.GssKrb5Server.integrity:Z
20: StackMap locals:
StackMap stack:
aload 3
iconst_1
iconst_3
invokestatic com.sun.security.sasl.gsskerb.GssKrb5Server.networkByteOrderToInt:([BII)I
istore 5
start local 5 21: aload 0
aload 0
getfield com.sun.security.sasl.gsskerb.GssKrb5Server.sendMaxBufSize:I
ifne 22
iload 5
goto 23
22: StackMap locals: com.sun.security.sasl.gsskerb.GssKrb5Server byte[] org.ietf.jgss.MessageProp byte[] int int
StackMap stack: com.sun.security.sasl.gsskerb.GssKrb5Server
aload 0
getfield com.sun.security.sasl.gsskerb.GssKrb5Server.sendMaxBufSize:I
iload 5
invokestatic java.lang.Math.min:(II)I
23: StackMap locals: com.sun.security.sasl.gsskerb.GssKrb5Server byte[] org.ietf.jgss.MessageProp byte[] int int
StackMap stack: com.sun.security.sasl.gsskerb.GssKrb5Server int
putfield com.sun.security.sasl.gsskerb.GssKrb5Server.sendMaxBufSize:I
24: aload 0
aload 0
getfield com.sun.security.sasl.gsskerb.GssKrb5Server.secCtx:Lorg/ietf/jgss/GSSContext;
iconst_0
aload 0
getfield com.sun.security.sasl.gsskerb.GssKrb5Server.privacy:Z
25: aload 0
getfield com.sun.security.sasl.gsskerb.GssKrb5Server.sendMaxBufSize:I
26: invokeinterface org.ietf.jgss.GSSContext.getWrapSizeLimit:(IZI)I
putfield com.sun.security.sasl.gsskerb.GssKrb5Server.rawSendSize:I
27: getstatic com.sun.security.sasl.gsskerb.GssKrb5Server.logger:Ljava/util/logging/Logger;
getstatic java.util.logging.Level.FINE:Ljava/util/logging/Level;
invokevirtual java.util.logging.Logger.isLoggable:(Ljava/util/logging/Level;)Z
ifeq 40
28: getstatic com.sun.security.sasl.gsskerb.GssKrb5Server.logger:Ljava/util/logging/Logger;
getstatic java.util.logging.Level.FINE:Ljava/util/logging/Level;
29: ldc "KRB5SRV10:Selected protection: {0}; privacy: {1}; integrity: {2}"
30: iconst_3
anewarray java.lang.Object
dup
iconst_0
iload 4
invokestatic java.lang.Byte.valueOf:(B)Ljava/lang/Byte;
aastore
dup
iconst_1
31: aload 0
getfield com.sun.security.sasl.gsskerb.GssKrb5Server.privacy:Z
invokestatic java.lang.Boolean.valueOf:(Z)Ljava/lang/Boolean;
aastore
dup
iconst_2
32: aload 0
getfield com.sun.security.sasl.gsskerb.GssKrb5Server.integrity:Z
invokestatic java.lang.Boolean.valueOf:(Z)Ljava/lang/Boolean;
aastore
33: invokevirtual java.util.logging.Logger.log:(Ljava/util/logging/Level;Ljava/lang/String;[Ljava/lang/Object;)V
34: getstatic com.sun.security.sasl.gsskerb.GssKrb5Server.logger:Ljava/util/logging/Logger;
getstatic java.util.logging.Level.FINE:Ljava/util/logging/Level;
35: ldc "KRB5SRV11:Client max recv size: {0}; server max send size: {1}; rawSendSize: {2}"
36: iconst_3
anewarray java.lang.Object
dup
iconst_0
iload 5
invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
aastore
dup
iconst_1
37: aload 0
getfield com.sun.security.sasl.gsskerb.GssKrb5Server.sendMaxBufSize:I
invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
aastore
dup
iconst_2
38: aload 0
getfield com.sun.security.sasl.gsskerb.GssKrb5Server.rawSendSize:I
invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
aastore
39: invokevirtual java.util.logging.Logger.log:(Ljava/util/logging/Level;Ljava/lang/String;[Ljava/lang/Object;)V
40: StackMap locals:
StackMap stack:
aload 3
arraylength
iconst_4
if_icmple 45
41: aload 0
new java.lang.String
dup
aload 3
iconst_4
42: aload 3
arraylength
iconst_4
isub
getstatic java.nio.charset.StandardCharsets.UTF_8:Ljava/nio/charset/Charset;
invokespecial java.lang.String.<init>:([BIILjava/nio/charset/Charset;)V
43: putfield com.sun.security.sasl.gsskerb.GssKrb5Server.authzid:Ljava/lang/String;
44: goto 46
45: StackMap locals:
StackMap stack:
aload 0
aload 0
getfield com.sun.security.sasl.gsskerb.GssKrb5Server.peer:Ljava/lang/String;
putfield com.sun.security.sasl.gsskerb.GssKrb5Server.authzid:Ljava/lang/String;
46: StackMap locals:
StackMap stack:
getstatic com.sun.security.sasl.gsskerb.GssKrb5Server.logger:Ljava/util/logging/Logger;
getstatic java.util.logging.Level.FINE:Ljava/util/logging/Level;
ldc "KRB5SRV12:Authzid: {0}"
aload 0
getfield com.sun.security.sasl.gsskerb.GssKrb5Server.authzid:Ljava/lang/String;
invokevirtual java.util.logging.Logger.log:(Ljava/util/logging/Level;Ljava/lang/String;Ljava/lang/Object;)V
47: new javax.security.sasl.AuthorizeCallback
dup
aload 0
getfield com.sun.security.sasl.gsskerb.GssKrb5Server.peer:Ljava/lang/String;
aload 0
getfield com.sun.security.sasl.gsskerb.GssKrb5Server.authzid:Ljava/lang/String;
invokespecial javax.security.sasl.AuthorizeCallback.<init>:(Ljava/lang/String;Ljava/lang/String;)V
astore 6
start local 6 48: aload 0
getfield com.sun.security.sasl.gsskerb.GssKrb5Server.cbh:Ljavax/security/auth/callback/CallbackHandler;
iconst_1
anewarray javax.security.auth.callback.Callback
dup
iconst_0
aload 6
aastore
invokeinterface javax.security.auth.callback.CallbackHandler.handle:([Ljavax/security/auth/callback/Callback;)V
49: aload 6
invokevirtual javax.security.sasl.AuthorizeCallback.isAuthorized:()Z
ifeq 53
50: aload 0
aload 6
invokevirtual javax.security.sasl.AuthorizeCallback.getAuthorizedID:()Ljava/lang/String;
putfield com.sun.security.sasl.gsskerb.GssKrb5Server.authzid:Ljava/lang/String;
51: aload 0
iconst_1
putfield com.sun.security.sasl.gsskerb.GssKrb5Server.completed:Z
52: goto 56
53: StackMap locals: javax.security.sasl.AuthorizeCallback
StackMap stack:
new javax.security.sasl.SaslException
dup
new java.lang.StringBuilder
dup
aload 0
getfield com.sun.security.sasl.gsskerb.GssKrb5Server.peer:Ljava/lang/String;
invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
54: ldc " is not authorized to connect as "
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
aload 0
getfield com.sun.security.sasl.gsskerb.GssKrb5Server.authzid:Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
55: invokespecial javax.security.sasl.SaslException.<init>:(Ljava/lang/String;)V
athrow
56: StackMap locals:
StackMap stack:
aconst_null
areturn
end local 6 end local 5 end local 4 end local 3 end local 2 57: StackMap locals: com.sun.security.sasl.gsskerb.GssKrb5Server byte[]
StackMap stack: org.ietf.jgss.GSSException
astore 2
start local 2 58: new javax.security.sasl.SaslException
dup
ldc "Final handshake step failed"
aload 2
invokespecial javax.security.sasl.SaslException.<init>:(Ljava/lang/String;Ljava/lang/Throwable;)V
athrow
end local 2 59: StackMap locals:
StackMap stack: java.io.IOException
astore 2
start local 2 60: new javax.security.sasl.SaslException
dup
ldc "Problem with callback handler"
aload 2
invokespecial javax.security.sasl.SaslException.<init>:(Ljava/lang/String;Ljava/lang/Throwable;)V
athrow
end local 2 61: StackMap locals:
StackMap stack: javax.security.auth.callback.UnsupportedCallbackException
astore 2
start local 2 62: new javax.security.sasl.SaslException
dup
ldc "Problem with callback handler"
aload 2
invokespecial javax.security.sasl.SaslException.<init>:(Ljava/lang/String;Ljava/lang/Throwable;)V
athrow
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 63 0 this Lcom/sun/security/sasl/gsskerb/GssKrb5Server;
0 63 1 responseData [B
1 57 2 msgProp Lorg/ietf/jgss/MessageProp;
4 57 3 gssOutToken [B
10 57 4 selectedQop B
21 57 5 clntMaxBufSize I
48 57 6 acb Ljavax/security/sasl/AuthorizeCallback;
58 59 2 e Lorg/ietf/jgss/GSSException;
60 61 2 e Ljava/io/IOException;
62 63 2 e Ljavax/security/auth/callback/UnsupportedCallbackException;
Exception table:
from to target type
0 56 57 Class org.ietf.jgss.GSSException
0 56 59 Class java.io.IOException
0 56 61 Class javax.security.auth.callback.UnsupportedCallbackException
Exceptions:
throws javax.security.sasl.SaslException
MethodParameters:
Name Flags
responseData
public java.lang.String getAuthorizationID();
descriptor: ()Ljava/lang/String;
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=1, args_size=1
start local 0 0: aload 0
getfield com.sun.security.sasl.gsskerb.GssKrb5Server.completed:Z
ifeq 2
1: aload 0
getfield com.sun.security.sasl.gsskerb.GssKrb5Server.authzid:Ljava/lang/String;
areturn
2: StackMap locals:
StackMap stack:
new java.lang.IllegalStateException
dup
ldc "Authentication incomplete"
invokespecial java.lang.IllegalStateException.<init>:(Ljava/lang/String;)V
athrow
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Lcom/sun/security/sasl/gsskerb/GssKrb5Server;
public java.lang.Object getNegotiatedProperty(java.lang.String);
descriptor: (Ljava/lang/String;)Ljava/lang/Object;
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=4, args_size=2
start local 0 start local 1 0: aload 0
getfield com.sun.security.sasl.gsskerb.GssKrb5Server.completed:Z
ifne 2
1: new java.lang.IllegalStateException
dup
ldc "Authentication incomplete"
invokespecial java.lang.IllegalStateException.<init>:(Ljava/lang/String;)V
athrow
2: StackMap locals:
StackMap stack:
aload 1
dup
astore 3
invokevirtual java.lang.String.hashCode:()I
lookupswitch { // 1
183461877: 3
default: 9
}
StackMap locals: com.sun.security.sasl.gsskerb.GssKrb5Server java.lang.String top java.lang.String
StackMap stack:
3: aload 3
ldc "javax.security.sasl.bound.server.name"
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ifne 4
goto 9
4: StackMap locals:
StackMap stack:
aload 0
getfield com.sun.security.sasl.gsskerb.GssKrb5Server.me:Ljava/lang/String;
ldc "[/@]"
invokevirtual java.lang.String.split:(Ljava/lang/String;)[Ljava/lang/String;
iconst_1
aaload
astore 2
start local 2 5: goto 10
end local 2 StackMap locals:
StackMap stack: java.lang.Exception
6: pop
7: aconst_null
astore 2
start local 2 8: goto 10
end local 2 9: StackMap locals:
StackMap stack:
aload 0
aload 1
invokespecial com.sun.security.sasl.gsskerb.GssKrb5Base.getNegotiatedProperty:(Ljava/lang/String;)Ljava/lang/Object;
astore 2
start local 2 10: StackMap locals: com.sun.security.sasl.gsskerb.GssKrb5Server java.lang.String java.lang.Object
StackMap stack:
aload 2
areturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 11 0 this Lcom/sun/security/sasl/gsskerb/GssKrb5Server;
0 11 1 propName Ljava/lang/String;
5 6 2 result Ljava/lang/Object;
8 9 2 result Ljava/lang/Object;
10 11 2 result Ljava/lang/Object;
Exception table:
from to target type
4 5 6 Class java.lang.Exception
MethodParameters:
Name Flags
propName
}
SourceFile: "GssKrb5Server.java"