public class org.apache.kafkaesque.common.security.authenticator.DefaultKafkaPrincipalBuilder extends java.lang.Object implements org.apache.kafkaesque.common.security.auth.KafkaPrincipalBuilder, java.io.Closeable
{
private final org.apache.kafkaesque.common.security.auth.PrincipalBuilder oldPrincipalBuilder;
private final org.apache.kafkaesque.common.network.Authenticator authenticator;
private final org.apache.kafkaesque.common.network.TransportLayer transportLayer;
private final org.apache.kafkaesque.common.security.kerberos.KerberosShortNamer kerberosShortNamer;
private final org.apache.kafkaesque.common.security.ssl.SslPrincipalMapper sslPrincipalMapper;
public static org.apache.kafkaesque.common.security.authenticator.DefaultKafkaPrincipalBuilder fromOldPrincipalBuilder(org.apache.kafkaesque.common.network.Authenticator, org.apache.kafkaesque.common.network.TransportLayer, org.apache.kafkaesque.common.security.auth.PrincipalBuilder, org.apache.kafkaesque.common.security.kerberos.KerberosShortNamer)
{
org.apache.kafkaesque.common.network.TransportLayer v;
org.apache.kafkaesque.common.network.Authenticator v;
org.apache.kafkaesque.common.security.auth.PrincipalBuilder v;
java.lang.Object v, v, v;
org.apache.kafkaesque.common.security.authenticator.DefaultKafkaPrincipalBuilder v;
org.apache.kafkaesque.common.security.kerberos.KerberosShortNamer v;
v := @parameter: org.apache.kafkaesque.common.network.Authenticator;
v := @parameter: org.apache.kafkaesque.common.network.TransportLayer;
v := @parameter: org.apache.kafkaesque.common.security.auth.PrincipalBuilder;
v := @parameter: org.apache.kafkaesque.common.security.kerberos.KerberosShortNamer;
v = new org.apache.kafkaesque.common.security.authenticator.DefaultKafkaPrincipalBuilder;
v = staticinvoke <java.util.Objects: java.lang.Object requireNonNull(java.lang.Object)>(v);
v = staticinvoke <java.util.Objects: java.lang.Object requireNonNull(java.lang.Object)>(v);
v = staticinvoke <java.util.Objects: java.lang.Object requireNonNull(java.lang.Object)>(v);
specialinvoke v.<org.apache.kafkaesque.common.security.authenticator.DefaultKafkaPrincipalBuilder: void <init>(org.apache.kafkaesque.common.network.Authenticator,org.apache.kafkaesque.common.network.TransportLayer,org.apache.kafkaesque.common.security.auth.PrincipalBuilder,org.apache.kafkaesque.common.security.kerberos.KerberosShortNamer,org.apache.kafkaesque.common.security.ssl.SslPrincipalMapper)>(v, v, v, v, null);
return v;
}
private void <init>(org.apache.kafkaesque.common.network.Authenticator, org.apache.kafkaesque.common.network.TransportLayer, org.apache.kafkaesque.common.security.auth.PrincipalBuilder, org.apache.kafkaesque.common.security.kerberos.KerberosShortNamer, org.apache.kafkaesque.common.security.ssl.SslPrincipalMapper)
{
org.apache.kafkaesque.common.network.Authenticator v;
org.apache.kafkaesque.common.security.ssl.SslPrincipalMapper v;
org.apache.kafkaesque.common.network.TransportLayer v;
org.apache.kafkaesque.common.security.auth.PrincipalBuilder v;
org.apache.kafkaesque.common.security.authenticator.DefaultKafkaPrincipalBuilder v;
org.apache.kafkaesque.common.security.kerberos.KerberosShortNamer v;
v := @this: org.apache.kafkaesque.common.security.authenticator.DefaultKafkaPrincipalBuilder;
v := @parameter: org.apache.kafkaesque.common.network.Authenticator;
v := @parameter: org.apache.kafkaesque.common.network.TransportLayer;
v := @parameter: org.apache.kafkaesque.common.security.auth.PrincipalBuilder;
v := @parameter: org.apache.kafkaesque.common.security.kerberos.KerberosShortNamer;
v := @parameter: org.apache.kafkaesque.common.security.ssl.SslPrincipalMapper;
specialinvoke v.<java.lang.Object: void <init>()>();
v.<org.apache.kafkaesque.common.security.authenticator.DefaultKafkaPrincipalBuilder: org.apache.kafkaesque.common.network.Authenticator authenticator> = v;
v.<org.apache.kafkaesque.common.security.authenticator.DefaultKafkaPrincipalBuilder: org.apache.kafkaesque.common.network.TransportLayer transportLayer> = v;
v.<org.apache.kafkaesque.common.security.authenticator.DefaultKafkaPrincipalBuilder: org.apache.kafkaesque.common.security.auth.PrincipalBuilder oldPrincipalBuilder> = v;
v.<org.apache.kafkaesque.common.security.authenticator.DefaultKafkaPrincipalBuilder: org.apache.kafkaesque.common.security.kerberos.KerberosShortNamer kerberosShortNamer> = v;
v.<org.apache.kafkaesque.common.security.authenticator.DefaultKafkaPrincipalBuilder: org.apache.kafkaesque.common.security.ssl.SslPrincipalMapper sslPrincipalMapper> = v;
return;
}
public void <init>(org.apache.kafkaesque.common.security.kerberos.KerberosShortNamer, org.apache.kafkaesque.common.security.ssl.SslPrincipalMapper)
{
org.apache.kafkaesque.common.security.authenticator.DefaultKafkaPrincipalBuilder v;
org.apache.kafkaesque.common.security.kerberos.KerberosShortNamer v;
org.apache.kafkaesque.common.security.ssl.SslPrincipalMapper v;
v := @this: org.apache.kafkaesque.common.security.authenticator.DefaultKafkaPrincipalBuilder;
v := @parameter: org.apache.kafkaesque.common.security.kerberos.KerberosShortNamer;
v := @parameter: org.apache.kafkaesque.common.security.ssl.SslPrincipalMapper;
specialinvoke v.<org.apache.kafkaesque.common.security.authenticator.DefaultKafkaPrincipalBuilder: void <init>(org.apache.kafkaesque.common.network.Authenticator,org.apache.kafkaesque.common.network.TransportLayer,org.apache.kafkaesque.common.security.auth.PrincipalBuilder,org.apache.kafkaesque.common.security.kerberos.KerberosShortNamer,org.apache.kafkaesque.common.security.ssl.SslPrincipalMapper)>(null, null, null, v, v);
return;
}
public org.apache.kafkaesque.common.security.auth.KafkaPrincipal build(org.apache.kafkaesque.common.security.auth.AuthenticationContext)
{
org.apache.kafkaesque.common.security.auth.AuthenticationContext v;
org.apache.kafkaesque.common.security.auth.PrincipalBuilder v, v, v, v;
org.apache.kafkaesque.common.security.authenticator.DefaultKafkaPrincipalBuilder v;
boolean v, v, v, v;
org.apache.kafkaesque.common.network.Authenticator v, v;
java.security.Principal v, v, v;
org.apache.kafkaesque.common.network.TransportLayer v, v;
javax.net.ssl.SSLSession v;
java.lang.String v, v, v, v, v, v;
java.lang.IllegalArgumentException v;
org.apache.kafkaesque.common.security.auth.KafkaPrincipal v, v, v, v, v, v, v;
java.lang.Class v;
javax.security.sasl.SaslServer v;
javax.net.ssl.SSLPeerUnverifiedException v;
v := @this: org.apache.kafkaesque.common.security.authenticator.DefaultKafkaPrincipalBuilder;
v := @parameter: org.apache.kafkaesque.common.security.auth.AuthenticationContext;
v = v instanceof org.apache.kafkaesque.common.security.auth.PlaintextAuthenticationContext;
if v == 0 goto label;
v = v.<org.apache.kafkaesque.common.security.authenticator.DefaultKafkaPrincipalBuilder: org.apache.kafkaesque.common.security.auth.PrincipalBuilder oldPrincipalBuilder>;
if v == null goto label;
v = v.<org.apache.kafkaesque.common.security.authenticator.DefaultKafkaPrincipalBuilder: org.apache.kafkaesque.common.security.auth.PrincipalBuilder oldPrincipalBuilder>;
v = v.<org.apache.kafkaesque.common.security.authenticator.DefaultKafkaPrincipalBuilder: org.apache.kafkaesque.common.network.TransportLayer transportLayer>;
v = v.<org.apache.kafkaesque.common.security.authenticator.DefaultKafkaPrincipalBuilder: org.apache.kafkaesque.common.network.Authenticator authenticator>;
v = interfaceinvoke v.<org.apache.kafkaesque.common.security.auth.PrincipalBuilder: java.security.Principal buildPrincipal(org.apache.kafkaesque.common.network.TransportLayer,org.apache.kafkaesque.common.network.Authenticator)>(v, v);
v = specialinvoke v.<org.apache.kafkaesque.common.security.authenticator.DefaultKafkaPrincipalBuilder: org.apache.kafkaesque.common.security.auth.KafkaPrincipal convertToKafkaPrincipal(java.security.Principal)>(v);
return v;
label:
v = <org.apache.kafkaesque.common.security.auth.KafkaPrincipal: org.apache.kafkaesque.common.security.auth.KafkaPrincipal ANONYMOUS>;
return v;
label:
v = v instanceof org.apache.kafkaesque.common.security.auth.SslAuthenticationContext;
if v == 0 goto label;
v = virtualinvoke v.<org.apache.kafkaesque.common.security.auth.SslAuthenticationContext: javax.net.ssl.SSLSession session()>();
v = v.<org.apache.kafkaesque.common.security.authenticator.DefaultKafkaPrincipalBuilder: org.apache.kafkaesque.common.security.auth.PrincipalBuilder oldPrincipalBuilder>;
if v == null goto label;
v = v.<org.apache.kafkaesque.common.security.authenticator.DefaultKafkaPrincipalBuilder: org.apache.kafkaesque.common.security.auth.PrincipalBuilder oldPrincipalBuilder>;
v = v.<org.apache.kafkaesque.common.security.authenticator.DefaultKafkaPrincipalBuilder: org.apache.kafkaesque.common.network.TransportLayer transportLayer>;
v = v.<org.apache.kafkaesque.common.security.authenticator.DefaultKafkaPrincipalBuilder: org.apache.kafkaesque.common.network.Authenticator authenticator>;
v = interfaceinvoke v.<org.apache.kafkaesque.common.security.auth.PrincipalBuilder: java.security.Principal buildPrincipal(org.apache.kafkaesque.common.network.TransportLayer,org.apache.kafkaesque.common.network.Authenticator)>(v, v);
v = specialinvoke v.<org.apache.kafkaesque.common.security.authenticator.DefaultKafkaPrincipalBuilder: org.apache.kafkaesque.common.security.auth.KafkaPrincipal convertToKafkaPrincipal(java.security.Principal)>(v);
return v;
label:
v = interfaceinvoke v.<javax.net.ssl.SSLSession: java.security.Principal getPeerPrincipal()>();
v = specialinvoke v.<org.apache.kafkaesque.common.security.authenticator.DefaultKafkaPrincipalBuilder: org.apache.kafkaesque.common.security.auth.KafkaPrincipal applySslPrincipalMapper(java.security.Principal)>(v);
label:
return v;
label:
v := @caughtexception;
v = <org.apache.kafkaesque.common.security.auth.KafkaPrincipal: org.apache.kafkaesque.common.security.auth.KafkaPrincipal ANONYMOUS>;
return v;
label:
v = v instanceof org.apache.kafkaesque.common.security.auth.SaslAuthenticationContext;
if v == 0 goto label;
v = virtualinvoke v.<org.apache.kafkaesque.common.security.auth.SaslAuthenticationContext: javax.security.sasl.SaslServer server()>();
v = "GSSAPI";
v = interfaceinvoke v.<javax.security.sasl.SaslServer: java.lang.String getMechanismName()>();
v = virtualinvoke v.<java.lang.String: boolean equals(java.lang.Object)>(v);
if v == 0 goto label;
v = interfaceinvoke v.<javax.security.sasl.SaslServer: java.lang.String getAuthorizationID()>();
v = specialinvoke v.<org.apache.kafkaesque.common.security.authenticator.DefaultKafkaPrincipalBuilder: org.apache.kafkaesque.common.security.auth.KafkaPrincipal applyKerberosShortNamer(java.lang.String)>(v);
return v;
label:
v = new org.apache.kafkaesque.common.security.auth.KafkaPrincipal;
v = interfaceinvoke v.<javax.security.sasl.SaslServer: java.lang.String getAuthorizationID()>();
specialinvoke v.<org.apache.kafkaesque.common.security.auth.KafkaPrincipal: void <init>(java.lang.String,java.lang.String)>("User", v);
return v;
label:
v = new java.lang.IllegalArgumentException;
v = virtualinvoke v.<java.lang.Object: java.lang.Class getClass()>();
v = virtualinvoke v.<java.lang.Class: java.lang.String getName()>();
v = dynamicinvoke "makeConcatWithConstants" <java.lang.String (java.lang.String)>(v) <java.lang.invoke.StringConcatFactory: java.lang.invoke.CallSite makeConcatWithConstants(java.lang.invoke.MethodHandles$Lookup,java.lang.String,java.lang.invoke.MethodType,java.lang.String,java.lang.Object[])>("Unhandled authentication context type: \u0001");
specialinvoke v.<java.lang.IllegalArgumentException: void <init>(java.lang.String)>(v);
throw v;
catch javax.net.ssl.SSLPeerUnverifiedException from label to label with label;
}
private org.apache.kafkaesque.common.security.auth.KafkaPrincipal applyKerberosShortNamer(java.lang.String)
{
java.io.IOException v;
org.apache.kafkaesque.common.security.auth.KafkaPrincipal v;
org.apache.kafkaesque.common.security.kerberos.KerberosName v;
org.apache.kafkaesque.common.KafkaException v;
java.lang.String v, v, v;
org.apache.kafkaesque.common.security.authenticator.DefaultKafkaPrincipalBuilder v;
org.apache.kafkaesque.common.security.kerberos.KerberosShortNamer v;
v := @this: org.apache.kafkaesque.common.security.authenticator.DefaultKafkaPrincipalBuilder;
v := @parameter: java.lang.String;
v = staticinvoke <org.apache.kafkaesque.common.security.kerberos.KerberosName: org.apache.kafkaesque.common.security.kerberos.KerberosName parse(java.lang.String)>(v);
label:
v = v.<org.apache.kafkaesque.common.security.authenticator.DefaultKafkaPrincipalBuilder: org.apache.kafkaesque.common.security.kerberos.KerberosShortNamer kerberosShortNamer>;
v = virtualinvoke v.<org.apache.kafkaesque.common.security.kerberos.KerberosShortNamer: java.lang.String shortName(org.apache.kafkaesque.common.security.kerberos.KerberosName)>(v);
v = new org.apache.kafkaesque.common.security.auth.KafkaPrincipal;
specialinvoke v.<org.apache.kafkaesque.common.security.auth.KafkaPrincipal: void <init>(java.lang.String,java.lang.String)>("User", v);
label:
return v;
label:
v := @caughtexception;
v = new org.apache.kafkaesque.common.KafkaException;
v = dynamicinvoke "makeConcatWithConstants" <java.lang.String (org.apache.kafkaesque.common.security.kerberos.KerberosName)>(v) <java.lang.invoke.StringConcatFactory: java.lang.invoke.CallSite makeConcatWithConstants(java.lang.invoke.MethodHandles$Lookup,java.lang.String,java.lang.invoke.MethodType,java.lang.String,java.lang.Object[])>("Failed to set name for \'\u0001\' based on Kerberos authentication rules.");
specialinvoke v.<org.apache.kafkaesque.common.KafkaException: void <init>(java.lang.String,java.lang.Throwable)>(v, v);
throw v;
catch java.io.IOException from label to label with label;
}
private org.apache.kafkaesque.common.security.auth.KafkaPrincipal applySslPrincipalMapper(java.security.Principal)
{
org.apache.kafkaesque.common.security.ssl.SslPrincipalMapper v;
java.io.IOException v;
java.security.Principal v;
org.apache.kafkaesque.common.security.auth.KafkaPrincipal v, v, v;
org.apache.kafkaesque.common.KafkaException v;
java.lang.String v, v, v, v, v;
org.apache.kafkaesque.common.security.authenticator.DefaultKafkaPrincipalBuilder v;
boolean v;
v := @this: org.apache.kafkaesque.common.security.authenticator.DefaultKafkaPrincipalBuilder;
v := @parameter: java.security.Principal;
label:
v = v instanceof javax.security.auth.x.X500Principal;
if v == 0 goto label;
v = <org.apache.kafkaesque.common.security.auth.KafkaPrincipal: org.apache.kafkaesque.common.security.auth.KafkaPrincipal ANONYMOUS>;
if v != v goto label;
label:
v = new org.apache.kafkaesque.common.security.auth.KafkaPrincipal;
v = interfaceinvoke v.<java.security.Principal: java.lang.String getName()>();
specialinvoke v.<org.apache.kafkaesque.common.security.auth.KafkaPrincipal: void <init>(java.lang.String,java.lang.String)>("User", v);
label:
return v;
label:
v = new org.apache.kafkaesque.common.security.auth.KafkaPrincipal;
v = v.<org.apache.kafkaesque.common.security.authenticator.DefaultKafkaPrincipalBuilder: org.apache.kafkaesque.common.security.ssl.SslPrincipalMapper sslPrincipalMapper>;
v = interfaceinvoke v.<java.security.Principal: java.lang.String getName()>();
v = virtualinvoke v.<org.apache.kafkaesque.common.security.ssl.SslPrincipalMapper: java.lang.String getName(java.lang.String)>(v);
specialinvoke v.<org.apache.kafkaesque.common.security.auth.KafkaPrincipal: void <init>(java.lang.String,java.lang.String)>("User", v);
label:
return v;
label:
v := @caughtexception;
v = new org.apache.kafkaesque.common.KafkaException;
v = interfaceinvoke v.<java.security.Principal: java.lang.String getName()>();
v = dynamicinvoke "makeConcatWithConstants" <java.lang.String (java.lang.String)>(v) <java.lang.invoke.StringConcatFactory: java.lang.invoke.CallSite makeConcatWithConstants(java.lang.invoke.MethodHandles$Lookup,java.lang.String,java.lang.invoke.MethodType,java.lang.String,java.lang.Object[])>("Failed to map name for \'\u0001\' based on SSL principal mapping rules.");
specialinvoke v.<org.apache.kafkaesque.common.KafkaException: void <init>(java.lang.String,java.lang.Throwable)>(v, v);
throw v;
catch java.io.IOException from label to label with label;
catch java.io.IOException from label to label with label;
}
private org.apache.kafkaesque.common.security.auth.KafkaPrincipal convertToKafkaPrincipal(java.security.Principal)
{
java.security.Principal v;
org.apache.kafkaesque.common.security.auth.KafkaPrincipal v;
java.lang.String v;
org.apache.kafkaesque.common.security.authenticator.DefaultKafkaPrincipalBuilder v;
v := @this: org.apache.kafkaesque.common.security.authenticator.DefaultKafkaPrincipalBuilder;
v := @parameter: java.security.Principal;
v = new org.apache.kafkaesque.common.security.auth.KafkaPrincipal;
v = interfaceinvoke v.<java.security.Principal: java.lang.String getName()>();
specialinvoke v.<org.apache.kafkaesque.common.security.auth.KafkaPrincipal: void <init>(java.lang.String,java.lang.String)>("User", v);
return v;
}
public void close()
{
org.apache.kafkaesque.common.security.auth.PrincipalBuilder v, v;
org.apache.kafkaesque.common.security.authenticator.DefaultKafkaPrincipalBuilder v;
v := @this: org.apache.kafkaesque.common.security.authenticator.DefaultKafkaPrincipalBuilder;
v = v.<org.apache.kafkaesque.common.security.authenticator.DefaultKafkaPrincipalBuilder: org.apache.kafkaesque.common.security.auth.PrincipalBuilder oldPrincipalBuilder>;
if v == null goto label;
v = v.<org.apache.kafkaesque.common.security.authenticator.DefaultKafkaPrincipalBuilder: org.apache.kafkaesque.common.security.auth.PrincipalBuilder oldPrincipalBuilder>;
interfaceinvoke v.<org.apache.kafkaesque.common.security.auth.PrincipalBuilder: void close()>();
label:
return;
}
}