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 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
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: 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 4: 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
5: invokestatic org.ietf.jgss.GSSManager.getInstance:()Lorg/ietf/jgss/GSSManager;
astore 6
start local 6 6: aload 6
aload 5
7: 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;
8: invokevirtual org.ietf.jgss.GSSManager.createName:(Ljava/lang/String;Lorg/ietf/jgss/Oid;Lorg/ietf/jgss/Oid;)Lorg/ietf/jgss/GSSName;
astore 7
start local 7 9: aload 6
aload 7
10: ldc 2147483647
11: getstatic com.sun.security.sasl.gsskerb.GssKrb5Server.KRB5_OID:Lorg/ietf/jgss/Oid;
iconst_2
12: invokevirtual org.ietf.jgss.GSSManager.createCredential:(Lorg/ietf/jgss/GSSName;ILorg/ietf/jgss/Oid;I)Lorg/ietf/jgss/GSSCredential;
astore 8
start local 8 13: 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;
14: aload 0
getfield com.sun.security.sasl.gsskerb.GssKrb5Server.allQop:B
iconst_2
iand
ifeq 16
15: aload 0
getfield com.sun.security.sasl.gsskerb.GssKrb5Server.secCtx:Lorg/ietf/jgss/GSSContext;
iconst_1
invokeinterface org.ietf.jgss.GSSContext.requestInteg:(Z)V
16: 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 org.ietf.jgss.GSSManager 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 21
17: 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 18: goto 21
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
19: astore 6
start local 6 20: 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 21: 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
22: 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 23 0 this Lcom/sun/security/sasl/gsskerb/GssKrb5Server;
0 23 1 protocol Ljava/lang/String;
0 23 2 serverName Ljava/lang/String;
0 23 3 props Ljava/util/Map<Ljava/lang/String;*>;
0 23 4 cbh Ljavax/security/auth/callback/CallbackHandler;
4 23 5 service Ljava/lang/String;
6 18 6 mgr Lorg/ietf/jgss/GSSManager;
9 18 7 serviceName Lorg/ietf/jgss/GSSName;
13 18 8 cred Lorg/ietf/jgss/GSSCredential;
20 21 6 e Lorg/ietf/jgss/GSSException;
Exception table:
from to target type
5 18 19 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=4, 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 25
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: getstatic com.sun.security.sasl.gsskerb.GssKrb5Server.logger:Ljava/util/logging/Logger;
getstatic java.util.logging.Level.FINE:Ljava/util/logging/Level;
ldc "KRB5SRV05:Peer name is : {0}"
aload 0
getfield com.sun.security.sasl.gsskerb.GssKrb5Server.peer:Ljava/lang/String;
invokevirtual java.util.logging.Logger.log:(Ljava/util/logging/Level;Ljava/lang/String;Ljava/lang/Object;)V
22: aload 2
ifnonnull 25
23: aload 0
getstatic com.sun.security.sasl.gsskerb.GssKrb5Server.EMPTY:[B
invokevirtual com.sun.security.sasl.gsskerb.GssKrb5Server.doHandshake1:([B)[B
24: areturn
25: StackMap locals:
StackMap stack:
aload 2
26: areturn
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 "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 29 0 this Lcom/sun/security/sasl/gsskerb/GssKrb5Server;
0 29 1 responseData [B
14 27 2 gssOutToken [B
28 29 2 e Lorg/ietf/jgss/GSSException;
Exception table:
from to target type
11 24 27 Class org.ietf.jgss.GSSException
25 26 27 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=9, 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
new java.lang.Byte
dup
aload 0
getfield com.sun.security.sasl.gsskerb.GssKrb5Server.allQop:B
invokespecial java.lang.Byte.<init>:(B)V
aastore
dup
iconst_1
11: new java.lang.Integer
dup
aload 0
getfield com.sun.security.sasl.gsskerb.GssKrb5Server.recvMaxBufSize:I
invokespecial java.lang.Integer.<init>:(I)V
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=9, locals=6, args_size=2
start local 0 start local 1 0: aload 0
getfield com.sun.security.sasl.gsskerb.GssKrb5Server.secCtx:Lorg/ietf/jgss/GSSContext;
aload 1
iconst_0
1: aload 1
arraylength
new org.ietf.jgss.MessageProp
dup
iconst_0
iconst_0
invokespecial org.ietf.jgss.MessageProp.<init>:(IZ)V
2: invokeinterface org.ietf.jgss.GSSContext.unwrap:([BIILorg/ietf/jgss/MessageProp;)[B
astore 2
start local 2 3: 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 7
4: getstatic com.sun.security.sasl.gsskerb.GssKrb5Server.MY_CLASS_NAME:Ljava/lang/String;
ldc "doHandshake2"
5: ldc "KRB5SRV09:Response [after unwrap]"
aload 2
6: invokestatic com.sun.security.sasl.gsskerb.GssKrb5Server.traceOutput:(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;[B)V
7: StackMap locals: byte[]
StackMap stack:
aload 2
iconst_0
baload
istore 3
start local 3 8: iload 3
aload 0
getfield com.sun.security.sasl.gsskerb.GssKrb5Server.allQop:B
iand
ifne 12
9: 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
10: iload 3
invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
11: invokespecial javax.security.sasl.SaslException.<init>:(Ljava/lang/String;)V
athrow
12: StackMap locals: int
StackMap stack:
iload 3
iconst_4
iand
ifeq 16
13: aload 0
iconst_1
putfield com.sun.security.sasl.gsskerb.GssKrb5Server.privacy:Z
14: aload 0
iconst_1
putfield com.sun.security.sasl.gsskerb.GssKrb5Server.integrity:Z
15: goto 18
StackMap locals:
StackMap stack:
16: iload 3
iconst_2
iand
ifeq 18
17: aload 0
iconst_1
putfield com.sun.security.sasl.gsskerb.GssKrb5Server.integrity:Z
18: StackMap locals:
StackMap stack:
aload 0
new org.ietf.jgss.MessageProp
dup
iconst_0
aload 0
getfield com.sun.security.sasl.gsskerb.GssKrb5Server.privacy:Z
invokespecial org.ietf.jgss.MessageProp.<init>:(IZ)V
putfield com.sun.security.sasl.gsskerb.GssKrb5Server.msgProp:Lorg/ietf/jgss/MessageProp;
19: aload 2
iconst_1
iconst_3
invokestatic com.sun.security.sasl.gsskerb.GssKrb5Server.networkByteOrderToInt:([BII)I
istore 4
start local 4 20: aload 0
aload 0
getfield com.sun.security.sasl.gsskerb.GssKrb5Server.sendMaxBufSize:I
ifne 21
iload 4
goto 22
21: StackMap locals: com.sun.security.sasl.gsskerb.GssKrb5Server byte[] byte[] int int
StackMap stack: com.sun.security.sasl.gsskerb.GssKrb5Server
aload 0
getfield com.sun.security.sasl.gsskerb.GssKrb5Server.sendMaxBufSize:I
iload 4
invokestatic java.lang.Math.min:(II)I
22: StackMap locals: com.sun.security.sasl.gsskerb.GssKrb5Server byte[] byte[] int int
StackMap stack: com.sun.security.sasl.gsskerb.GssKrb5Server int
putfield com.sun.security.sasl.gsskerb.GssKrb5Server.sendMaxBufSize:I
23: 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
24: aload 0
getfield com.sun.security.sasl.gsskerb.GssKrb5Server.sendMaxBufSize:I
25: invokeinterface org.ietf.jgss.GSSContext.getWrapSizeLimit:(IZI)I
putfield com.sun.security.sasl.gsskerb.GssKrb5Server.rawSendSize:I
26: 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 39
27: getstatic com.sun.security.sasl.gsskerb.GssKrb5Server.logger:Ljava/util/logging/Logger;
getstatic java.util.logging.Level.FINE:Ljava/util/logging/Level;
28: ldc "KRB5SRV10:Selected protection: {0}; privacy: {1}; integrity: {2}"
29: iconst_3
anewarray java.lang.Object
dup
iconst_0
new java.lang.Byte
dup
iload 3
invokespecial java.lang.Byte.<init>:(B)V
aastore
dup
iconst_1
30: aload 0
getfield com.sun.security.sasl.gsskerb.GssKrb5Server.privacy:Z
invokestatic java.lang.Boolean.valueOf:(Z)Ljava/lang/Boolean;
aastore
dup
iconst_2
31: aload 0
getfield com.sun.security.sasl.gsskerb.GssKrb5Server.integrity:Z
invokestatic java.lang.Boolean.valueOf:(Z)Ljava/lang/Boolean;
aastore
32: invokevirtual java.util.logging.Logger.log:(Ljava/util/logging/Level;Ljava/lang/String;[Ljava/lang/Object;)V
33: getstatic com.sun.security.sasl.gsskerb.GssKrb5Server.logger:Ljava/util/logging/Logger;
getstatic java.util.logging.Level.FINE:Ljava/util/logging/Level;
34: ldc "KRB5SRV11:Client max recv size: {0}; server max send size: {1}; rawSendSize: {2}"
35: iconst_3
anewarray java.lang.Object
dup
iconst_0
new java.lang.Integer
dup
iload 4
invokespecial java.lang.Integer.<init>:(I)V
aastore
dup
iconst_1
36: new java.lang.Integer
dup
aload 0
getfield com.sun.security.sasl.gsskerb.GssKrb5Server.sendMaxBufSize:I
invokespecial java.lang.Integer.<init>:(I)V
aastore
dup
iconst_2
37: new java.lang.Integer
dup
aload 0
getfield com.sun.security.sasl.gsskerb.GssKrb5Server.rawSendSize:I
invokespecial java.lang.Integer.<init>:(I)V
aastore
38: invokevirtual java.util.logging.Logger.log:(Ljava/util/logging/Level;Ljava/lang/String;[Ljava/lang/Object;)V
39: StackMap locals:
StackMap stack:
aload 2
arraylength
iconst_4
if_icmple 46
40: aload 0
new java.lang.String
dup
aload 2
iconst_4
41: aload 2
arraylength
iconst_4
isub
ldc "UTF-8"
invokespecial java.lang.String.<init>:([BIILjava/lang/String;)V
42: putfield com.sun.security.sasl.gsskerb.GssKrb5Server.authzid:Ljava/lang/String;
43: goto 47
StackMap locals:
StackMap stack: java.io.UnsupportedEncodingException
44: astore 5
start local 5 45: new javax.security.sasl.SaslException
dup
ldc "Cannot decode authzid"
aload 5
invokespecial javax.security.sasl.SaslException.<init>:(Ljava/lang/String;Ljava/lang/Throwable;)V
athrow
end local 5 46: 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;
47: 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
48: 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 5
start local 5 49: 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 5
aastore
invokeinterface javax.security.auth.callback.CallbackHandler.handle:([Ljavax/security/auth/callback/Callback;)V
50: aload 5
invokevirtual javax.security.sasl.AuthorizeCallback.isAuthorized:()Z
ifeq 54
51: aload 0
aload 5
invokevirtual javax.security.sasl.AuthorizeCallback.getAuthorizedID:()Ljava/lang/String;
putfield com.sun.security.sasl.gsskerb.GssKrb5Server.authzid:Ljava/lang/String;
52: aload 0
iconst_1
putfield com.sun.security.sasl.gsskerb.GssKrb5Server.completed:Z
53: goto 57
54: 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
55: 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;
56: invokespecial javax.security.sasl.SaslException.<init>:(Ljava/lang/String;)V
athrow
57: StackMap locals:
StackMap stack:
aconst_null
areturn
end local 5 end local 4 end local 3 end local 2 58: StackMap locals: com.sun.security.sasl.gsskerb.GssKrb5Server byte[]
StackMap stack: org.ietf.jgss.GSSException
astore 2
start local 2 59: 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 60: StackMap locals:
StackMap stack: java.io.IOException
astore 2
start local 2 61: 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 62: StackMap locals:
StackMap stack: javax.security.auth.callback.UnsupportedCallbackException
astore 2
start local 2 63: 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 64 0 this Lcom/sun/security/sasl/gsskerb/GssKrb5Server;
0 64 1 responseData [B
3 58 2 gssOutToken [B
8 58 3 selectedQop B
20 58 4 clntMaxBufSize I
45 46 5 uee Ljava/io/UnsupportedEncodingException;
49 58 5 acb Ljavax/security/sasl/AuthorizeCallback;
59 60 2 e Lorg/ietf/jgss/GSSException;
61 62 2 e Ljava/io/IOException;
63 64 2 e Ljavax/security/auth/callback/UnsupportedCallbackException;
Exception table:
from to target type
40 43 44 Class java.io.UnsupportedEncodingException
0 57 58 Class org.ietf.jgss.GSSException
0 57 60 Class java.io.IOException
0 57 62 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;
}
SourceFile: "GssKrb5Server.java"