public class WEB-INF.classes.org.apache.nifi.registry.web.security.authentication.jwt.JwtService extends java.lang.Object
{
private static final org.slf4j.Logger logger;
private static final io.jsonwebtoken.SignatureAlgorithm SIGNATURE_ALGORITHM;
private static final java.lang.String KEY_ID_CLAIM;
private static final java.lang.String USERNAME_CLAIM;
private static final java.util.regex.Pattern tokenPattern;
public static final java.lang.String AUTHORIZATION;
private final org.apache.nifi.registry.security.key.KeyService keyService;
public void <init>(org.apache.nifi.registry.security.key.KeyService)
{
org.apache.nifi.registry.security.key.KeyService v;
WEB-INF.classes.org.apache.nifi.registry.web.security.authentication.jwt.JwtService v;
v := @this: WEB-INF.classes.org.apache.nifi.registry.web.security.authentication.jwt.JwtService;
v := @parameter: org.apache.nifi.registry.security.key.KeyService;
specialinvoke v.<java.lang.Object: void <init>()>();
v.<org.apache.nifi.registry.web.security.authentication.jwt.JwtService: org.apache.nifi.registry.security.key.KeyService keyService> = v;
return;
}
public java.lang.String getUserIdentityFromToken(java.lang.String) throws io.jsonwebtoken.JwtException
{
java.lang.Throwable v;
io.jsonwebtoken.Jws v;
WEB-INF.classes.org.apache.nifi.registry.web.security.authentication.jwt.JwtService v;
java.lang.String v, v, v, v, v;
boolean v, v;
org.slf4j.Logger v, v;
io.jsonwebtoken.JwtException v, v, v;
java.lang.Object v, v, v;
v := @this: WEB-INF.classes.org.apache.nifi.registry.web.security.authentication.jwt.JwtService;
v := @parameter: java.lang.String;
label:
v = specialinvoke v.<org.apache.nifi.registry.web.security.authentication.jwt.JwtService: io.jsonwebtoken.Jws parseTokenFromBase64EncodedString(java.lang.String)>(v);
if v != null goto label;
v = new io.jsonwebtoken.JwtException;
specialinvoke v.<io.jsonwebtoken.JwtException: void <init>(java.lang.String)>("Unable to parse token");
throw v;
label:
v = interfaceinvoke v.<io.jsonwebtoken.Jws: java.lang.Object getBody()>();
v = interfaceinvoke v.<io.jsonwebtoken.Claims: java.lang.String getSubject()>();
v = staticinvoke <org.apache.commons.lang.StringUtils: boolean isEmpty(java.lang.CharSequence)>(v);
if v == 0 goto label;
v = new io.jsonwebtoken.JwtException;
specialinvoke v.<io.jsonwebtoken.JwtException: void <init>(java.lang.String)>("No subject available in token");
throw v;
label:
v = interfaceinvoke v.<io.jsonwebtoken.Jws: java.lang.Object getBody()>();
v = interfaceinvoke v.<io.jsonwebtoken.Claims: java.lang.String getIssuer()>();
v = staticinvoke <org.apache.commons.lang.StringUtils: boolean isEmpty(java.lang.CharSequence)>(v);
if v == 0 goto label;
v = new io.jsonwebtoken.JwtException;
specialinvoke v.<io.jsonwebtoken.JwtException: void <init>(java.lang.String)>("No issuer available in token");
throw v;
label:
v = interfaceinvoke v.<io.jsonwebtoken.Jws: java.lang.Object getBody()>();
v = interfaceinvoke v.<io.jsonwebtoken.Claims: java.lang.String getSubject()>();
label:
return v;
label:
v := @caughtexception;
v = <org.apache.nifi.registry.web.security.authentication.jwt.JwtService: org.slf4j.Logger logger>;
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[])>("The Base encoded JWT: \u0001");
interfaceinvoke v.<org.slf4j.Logger: void debug(java.lang.String)>(v);
v = <org.apache.nifi.registry.web.security.authentication.jwt.JwtService: org.slf4j.Logger logger>;
interfaceinvoke v.<org.slf4j.Logger: void error(java.lang.String,java.lang.Throwable)>("There was an error validating the JWT", v);
throw v;
catch io.jsonwebtoken.JwtException from label to label with label;
}
private io.jsonwebtoken.Jws parseTokenFromBase64EncodedString(java.lang.String) throws io.jsonwebtoken.JwtException
{
java.lang.Throwable v;
org.apache.nifi.registry.web.security.authentication.jwt.JwtService$1 v;
io.jsonwebtoken.JwtParser v, v;
io.jsonwebtoken.Jws v;
WEB-INF.classes.org.apache.nifi.registry.web.security.authentication.jwt.JwtService v;
io.jsonwebtoken.JwtException v;
java.lang.String v;
v := @this: WEB-INF.classes.org.apache.nifi.registry.web.security.authentication.jwt.JwtService;
v := @parameter: java.lang.String;
label:
v = staticinvoke <io.jsonwebtoken.Jwts: io.jsonwebtoken.JwtParser parser()>();
v = new org.apache.nifi.registry.web.security.authentication.jwt.JwtService$1;
specialinvoke v.<org.apache.nifi.registry.web.security.authentication.jwt.JwtService$1: void <init>(org.apache.nifi.registry.web.security.authentication.jwt.JwtService)>(v);
v = interfaceinvoke v.<io.jsonwebtoken.JwtParser: io.jsonwebtoken.JwtParser setSigningKeyResolver(io.jsonwebtoken.SigningKeyResolver)>(v);
v = interfaceinvoke v.<io.jsonwebtoken.JwtParser: io.jsonwebtoken.Jws parseClaimsJws(java.lang.String)>(v);
label:
return v;
label:
v := @caughtexception;
v = new io.jsonwebtoken.JwtException;
specialinvoke v.<io.jsonwebtoken.JwtException: void <init>(java.lang.String,java.lang.Throwable)>("Unable to validate the access token.", v);
throw v;
catch io.jsonwebtoken.MalformedJwtException from label to label with label;
catch io.jsonwebtoken.UnsupportedJwtException from label to label with label;
catch io.jsonwebtoken.SignatureException from label to label with label;
catch io.jsonwebtoken.ExpiredJwtException from label to label with label;
catch java.lang.IllegalArgumentException from label to label with label;
}
public java.lang.String generateSignedToken(org.apache.nifi.registry.security.authentication.AuthenticationResponse) throws io.jsonwebtoken.JwtException
{
long v;
java.lang.IllegalArgumentException v;
org.apache.nifi.registry.security.authentication.AuthenticationResponse v;
WEB-INF.classes.org.apache.nifi.registry.web.security.authentication.jwt.JwtService v;
java.lang.String v, v, v, v, v;
v := @this: WEB-INF.classes.org.apache.nifi.registry.web.security.authentication.jwt.JwtService;
v := @parameter: org.apache.nifi.registry.security.authentication.AuthenticationResponse;
if v != null goto label;
v = new java.lang.IllegalArgumentException;
specialinvoke v.<java.lang.IllegalArgumentException: void <init>(java.lang.String)>("Cannot generate a JWT for a null authenticationResponse");
throw v;
label:
v = virtualinvoke v.<org.apache.nifi.registry.security.authentication.AuthenticationResponse: java.lang.String getIdentity()>();
v = virtualinvoke v.<org.apache.nifi.registry.security.authentication.AuthenticationResponse: java.lang.String getUsername()>();
v = virtualinvoke v.<org.apache.nifi.registry.security.authentication.AuthenticationResponse: java.lang.String getIssuer()>();
v = virtualinvoke v.<org.apache.nifi.registry.security.authentication.AuthenticationResponse: java.lang.String getIssuer()>();
v = virtualinvoke v.<org.apache.nifi.registry.security.authentication.AuthenticationResponse: long getExpiration()>();
v = virtualinvoke v.<org.apache.nifi.registry.web.security.authentication.jwt.JwtService: java.lang.String generateSignedToken(java.lang.String,java.lang.String,java.lang.String,java.lang.String,long)>(v, v, v, v, v);
return v;
}
public java.lang.String generateSignedToken(java.lang.String, java.lang.String, java.lang.String, java.lang.String, long) throws io.jsonwebtoken.JwtException
{
byte[] v;
java.util.Date v, v;
java.lang.NullPointerException v;
WEB-INF.classes.org.apache.nifi.registry.web.security.authentication.jwt.JwtService v;
io.jsonwebtoken.JwtBuilder v, v, v, v, v, v, v, v, v;
io.jsonwebtoken.SignatureAlgorithm v;
boolean v;
long v, v, v, v;
java.util.Calendar v, v;
java.nio.charset.Charset v;
java.lang.String v, v, v, v, v, v, v, v, v;
java.util.Calendar$Builder v, v;
org.slf4j.Logger v, v;
org.apache.nifi.registry.security.key.Key v;
java.lang.IllegalArgumentException v;
io.jsonwebtoken.JwtException v;
org.apache.nifi.registry.security.key.KeyService v;
v := @this: WEB-INF.classes.org.apache.nifi.registry.web.security.authentication.jwt.JwtService;
v := @parameter: java.lang.String;
v := @parameter: java.lang.String;
v := @parameter: java.lang.String;
v := @parameter: java.lang.String;
v := @parameter: long;
if v == null goto label;
v = staticinvoke <org.apache.commons.lang.StringUtils: boolean isEmpty(java.lang.CharSequence)>(v);
if v == 0 goto label;
label:
if v == null goto label;
v = dynamicinvoke "makeConcatWithConstants" <java.lang.String (java.lang.String,java.lang.String)>("Cannot generate a JWT for a token with an empty identity", 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[])>("\u issued by \u.");
goto label;
label:
v = ".";
label:
v = <org.apache.nifi.registry.web.security.authentication.jwt.JwtService: org.slf4j.Logger logger>;
interfaceinvoke v.<org.slf4j.Logger: void error(java.lang.String)>(v);
v = new java.lang.IllegalArgumentException;
specialinvoke v.<java.lang.IllegalArgumentException: void <init>(java.lang.String)>(v);
throw v;
label:
v = staticinvoke <java.util.Calendar: java.util.Calendar getInstance()>();
v = staticinvoke <org.apache.nifi.registry.web.security.authentication.jwt.JwtService: long validateTokenExpiration(long,java.lang.String)>(v, v);
v = virtualinvoke v.<java.util.Calendar: long getTimeInMillis()>();
v = v + v;
v = new java.util.Calendar$Builder;
specialinvoke v.<java.util.Calendar$Builder: void <init>()>();
v = virtualinvoke v.<java.util.Calendar$Builder: java.util.Calendar$Builder setInstant(long)>(v);
v = virtualinvoke v.<java.util.Calendar$Builder: java.util.Calendar build()>();
label:
v = v.<org.apache.nifi.registry.web.security.authentication.jwt.JwtService: org.apache.nifi.registry.security.key.KeyService keyService>;
v = interfaceinvoke v.<org.apache.nifi.registry.security.key.KeyService: org.apache.nifi.registry.security.key.Key getOrCreateKey(java.lang.String)>(v);
v = virtualinvoke v.<org.apache.nifi.registry.security.key.Key: java.lang.String getKey()>();
v = <java.nio.charset.StandardCharsets: java.nio.charset.Charset UTF_8>;
v = virtualinvoke v.<java.lang.String: byte[] getBytes(java.nio.charset.Charset)>(v);
v = staticinvoke <io.jsonwebtoken.Jwts: io.jsonwebtoken.JwtBuilder builder()>();
v = interfaceinvoke v.<io.jsonwebtoken.JwtBuilder: io.jsonwebtoken.JwtBuilder setSubject(java.lang.String)>(v);
v = interfaceinvoke v.<io.jsonwebtoken.JwtBuilder: io.jsonwebtoken.JwtBuilder setIssuer(java.lang.String)>(v);
v = interfaceinvoke v.<io.jsonwebtoken.JwtBuilder: io.jsonwebtoken.JwtBuilder setAudience(java.lang.String)>(v);
v = interfaceinvoke v.<io.jsonwebtoken.JwtBuilder: io.jsonwebtoken.JwtBuilder claim(java.lang.String,java.lang.Object)>("preferred_username", v);
v = virtualinvoke v.<org.apache.nifi.registry.security.key.Key: java.lang.String getId()>();
v = interfaceinvoke v.<io.jsonwebtoken.JwtBuilder: io.jsonwebtoken.JwtBuilder claim(java.lang.String,java.lang.Object)>("kid", v);
v = virtualinvoke v.<java.util.Calendar: java.util.Date getTime()>();
v = interfaceinvoke v.<io.jsonwebtoken.JwtBuilder: io.jsonwebtoken.JwtBuilder setIssuedAt(java.util.Date)>(v);
v = virtualinvoke v.<java.util.Calendar: java.util.Date getTime()>();
v = interfaceinvoke v.<io.jsonwebtoken.JwtBuilder: io.jsonwebtoken.JwtBuilder setExpiration(java.util.Date)>(v);
v = <org.apache.nifi.registry.web.security.authentication.jwt.JwtService: io.jsonwebtoken.SignatureAlgorithm SIGNATURE_ALGORITHM>;
v = interfaceinvoke v.<io.jsonwebtoken.JwtBuilder: io.jsonwebtoken.JwtBuilder signWith(io.jsonwebtoken.SignatureAlgorithm,byte[])>(v, v);
v = interfaceinvoke v.<io.jsonwebtoken.JwtBuilder: java.lang.String compact()>();
label:
return v;
label:
v := @caughtexception;
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[])>("Could not retrieve the signing key for JWT for \u0001");
v = <org.apache.nifi.registry.web.security.authentication.jwt.JwtService: org.slf4j.Logger logger>;
interfaceinvoke v.<org.slf4j.Logger: void error(java.lang.String,java.lang.Throwable)>(v, v);
v = new io.jsonwebtoken.JwtException;
specialinvoke v.<io.jsonwebtoken.JwtException: void <init>(java.lang.String,java.lang.Throwable)>(v, v);
throw v;
catch java.lang.NullPointerException from label to label with label;
}
public void deleteKey(java.lang.String)
{
org.slf4j.Logger v, v;
java.lang.Exception v;
WEB-INF.classes.org.apache.nifi.registry.web.security.authentication.jwt.JwtService v;
io.jsonwebtoken.JwtException v;
java.lang.String v, v;
org.apache.nifi.registry.security.key.KeyService v;
boolean v;
v := @this: WEB-INF.classes.org.apache.nifi.registry.web.security.authentication.jwt.JwtService;
v := @parameter: java.lang.String;
if v == null goto label;
v = virtualinvoke v.<java.lang.String: boolean isEmpty()>();
if v == 0 goto label;
label:
v = new io.jsonwebtoken.JwtException;
specialinvoke v.<io.jsonwebtoken.JwtException: void <init>(java.lang.String)>("Log out failed: The user identity was not present in the request token to log out user.");
throw v;
label:
v = v.<org.apache.nifi.registry.web.security.authentication.jwt.JwtService: org.apache.nifi.registry.security.key.KeyService keyService>;
interfaceinvoke v.<org.apache.nifi.registry.security.key.KeyService: void deleteKey(java.lang.String)>(v);
v = <org.apache.nifi.registry.web.security.authentication.jwt.JwtService: org.slf4j.Logger logger>;
interfaceinvoke v.<org.slf4j.Logger: void info(java.lang.String)>("Deleted token from database.");
label:
goto label;
label:
v := @caughtexception;
v = <org.apache.nifi.registry.web.security.authentication.jwt.JwtService: org.slf4j.Logger logger>;
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[])>("Unable to delete token for user: [\u].");
interfaceinvoke v.<org.slf4j.Logger: void error(java.lang.String)>(v);
throw v;
label:
return;
catch java.lang.Exception from label to label with label;
}
private static long validateTokenExpiration(long, java.lang.String)
{
java.lang.Object[] v, v;
long v, v, v;
byte v, v;
java.lang.Long v, v, v, v;
java.lang.String v, v, v;
org.slf4j.Logger v, v;
java.util.concurrent.TimeUnit v, v, v, v;
v := @parameter: long;
v := @parameter: java.lang.String;
v = <java.util.concurrent.TimeUnit: java.util.concurrent.TimeUnit MILLISECONDS>;
v = <java.util.concurrent.TimeUnit: java.util.concurrent.TimeUnit HOURS>;
v = virtualinvoke v.<java.util.concurrent.TimeUnit: long convert(long,java.util.concurrent.TimeUnit)>(12L, v);
v = <java.util.concurrent.TimeUnit: java.util.concurrent.TimeUnit MILLISECONDS>;
v = <java.util.concurrent.TimeUnit: java.util.concurrent.TimeUnit MINUTES>;
v = virtualinvoke v.<java.util.concurrent.TimeUnit: long convert(long,java.util.concurrent.TimeUnit)>(1L, v);
v = v cmp v;
if v <= 0 goto label;
v = <org.apache.nifi.registry.web.security.authentication.jwt.JwtService: org.slf4j.Logger logger>;
v = newarray (java.lang.Object)[3];
v = staticinvoke <java.lang.Long: java.lang.Long valueOf(long)>(v);
v[0] = v;
v = staticinvoke <java.lang.Long: java.lang.Long valueOf(long)>(v);
v[1] = v;
v[2] = v;
v = staticinvoke <java.lang.String: java.lang.String format(java.lang.String,java.lang.Object[])>("Max token expiration exceeded. Setting expiration to %s from %s for %s", v);
interfaceinvoke v.<org.slf4j.Logger: void warn(java.lang.String)>(v);
v = v;
goto label;
label:
v = v cmp v;
if v >= 0 goto label;
v = <org.apache.nifi.registry.web.security.authentication.jwt.JwtService: org.slf4j.Logger logger>;
v = newarray (java.lang.Object)[3];
v = staticinvoke <java.lang.Long: java.lang.Long valueOf(long)>(v);
v[0] = v;
v = staticinvoke <java.lang.Long: java.lang.Long valueOf(long)>(v);
v[1] = v;
v[2] = v;
v = staticinvoke <java.lang.String: java.lang.String format(java.lang.String,java.lang.Object[])>("Min token expiration not met. Setting expiration to %s from %s for %s", v);
interfaceinvoke v.<org.slf4j.Logger: void warn(java.lang.String)>(v);
v = v;
label:
return v;
}
private static java.lang.String describe(org.apache.nifi.registry.security.authentication.AuthenticationResponse)
{
java.util.Date v;
java.text.SimpleDateFormat v;
long v, v, v, v, v;
org.apache.nifi.registry.security.authentication.AuthenticationResponse v;
java.util.Calendar v, v;
java.lang.String v, v, v, v;
java.util.TimeZone v;
java.lang.StringBuilder v;
v := @parameter: org.apache.nifi.registry.security.authentication.AuthenticationResponse;
v = staticinvoke <java.util.Calendar: java.util.Calendar getInstance()>();
v = virtualinvoke v.<org.apache.nifi.registry.security.authentication.AuthenticationResponse: long getExpiration()>();
virtualinvoke v.<java.util.Calendar: void setTimeInMillis(long)>(v);
v = virtualinvoke v.<java.util.Calendar: long getTimeInMillis()>();
v = staticinvoke <java.util.Calendar: java.util.Calendar getInstance()>();
v = virtualinvoke v.<java.util.Calendar: long getTimeInMillis()>();
v = v - v;
v = new java.text.SimpleDateFormat;
specialinvoke v.<java.text.SimpleDateFormat: void <init>(java.lang.String)>("dd-MM-yyyy HH:mm:ss.SSS");
v = virtualinvoke v.<java.util.Calendar: java.util.TimeZone getTimeZone()>();
virtualinvoke v.<java.text.SimpleDateFormat: void setTimeZone(java.util.TimeZone)>(v);
v = virtualinvoke v.<java.util.Calendar: java.util.Date getTime()>();
v = virtualinvoke v.<java.text.SimpleDateFormat: java.lang.String format(java.util.Date)>(v);
specialinvoke v.<java.lang.StringBuilder: void <init>(java.lang.String)>("LoginAuthenticationToken for ");
v = virtualinvoke v.<org.apache.nifi.registry.security.authentication.AuthenticationResponse: java.lang.String getUsername()>();
v = virtualinvoke v.<org.apache.nifi.registry.security.authentication.AuthenticationResponse: java.lang.String getIssuer()>();
v = virtualinvoke v.<org.apache.nifi.registry.security.authentication.AuthenticationResponse: long getExpiration()>();
v = dynamicinvoke "makeConcatWithConstants" <java.lang.String (java.lang.String,java.lang.String,java.lang.String,long,long)>(v, v, v, v, 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[])>("\u issued by \u expiring at \u [\u ms, \u ms remaining]");
return v;
}
static void <clinit>()
{
io.jsonwebtoken.SignatureAlgorithm v;
java.util.regex.Pattern v;
org.slf4j.Logger v;
v = staticinvoke <org.slf4j.LoggerFactory: org.slf4j.Logger getLogger(java.lang.Class)>(class "Lorg/apache/nifi/registry/web/security/authentication/jwt/JwtService;");
<org.apache.nifi.registry.web.security.authentication.jwt.JwtService: org.slf4j.Logger logger> = v;
v = <io.jsonwebtoken.SignatureAlgorithm: io.jsonwebtoken.SignatureAlgorithm HS256>;
<org.apache.nifi.registry.web.security.authentication.jwt.JwtService: io.jsonwebtoken.SignatureAlgorithm SIGNATURE_ALGORITHM> = v;
v = staticinvoke <java.util.regex.Pattern: java.util.regex.Pattern compile(java.lang.String)>("^Bearer (\\S*\\.\\S*\\.\\S*)$");
<org.apache.nifi.registry.web.security.authentication.jwt.JwtService: java.util.regex.Pattern tokenPattern> = v;
return;
}
}