public abstract class org.apache.shiro.mgt.AbstractRememberMeManager extends java.lang.Object implements org.apache.shiro.mgt.RememberMeManager
{
private static final org.slf4j.Logger log;
private org.apache.shiro.io.Serializer serializer;
private org.apache.shiro.crypto.CipherService cipherService;
private byte[] encryptionCipherKey;
private byte[] decryptionCipherKey;
public void <init>()
{
java.security.Key v;
byte[] v;
org.apache.shiro.crypto.AesCipherService v;
org.apache.shiro.io.DefaultSerializer v;
org.apache.shiro.mgt.AbstractRememberMeManager v;
v := @this: org.apache.shiro.mgt.AbstractRememberMeManager;
specialinvoke v.<java.lang.Object: void <init>()>();
v = new org.apache.shiro.io.DefaultSerializer;
specialinvoke v.<org.apache.shiro.io.DefaultSerializer: void <init>()>();
v.<org.apache.shiro.mgt.AbstractRememberMeManager: org.apache.shiro.io.Serializer serializer> = v;
v = new org.apache.shiro.crypto.AesCipherService;
specialinvoke v.<org.apache.shiro.crypto.AesCipherService: void <init>()>();
v.<org.apache.shiro.mgt.AbstractRememberMeManager: org.apache.shiro.crypto.CipherService cipherService> = v;
v = virtualinvoke v.<org.apache.shiro.crypto.AesCipherService: java.security.Key generateNewKey()>();
v = interfaceinvoke v.<java.security.Key: byte[] getEncoded()>();
virtualinvoke v.<org.apache.shiro.mgt.AbstractRememberMeManager: void setCipherKey(byte[])>(v);
return;
}
public org.apache.shiro.io.Serializer getSerializer()
{
org.apache.shiro.io.Serializer v;
org.apache.shiro.mgt.AbstractRememberMeManager v;
v := @this: org.apache.shiro.mgt.AbstractRememberMeManager;
v = v.<org.apache.shiro.mgt.AbstractRememberMeManager: org.apache.shiro.io.Serializer serializer>;
return v;
}
public void setSerializer(org.apache.shiro.io.Serializer)
{
org.apache.shiro.io.Serializer v;
org.apache.shiro.mgt.AbstractRememberMeManager v;
v := @this: org.apache.shiro.mgt.AbstractRememberMeManager;
v := @parameter: org.apache.shiro.io.Serializer;
v.<org.apache.shiro.mgt.AbstractRememberMeManager: org.apache.shiro.io.Serializer serializer> = v;
return;
}
public org.apache.shiro.crypto.CipherService getCipherService()
{
org.apache.shiro.mgt.AbstractRememberMeManager v;
org.apache.shiro.crypto.CipherService v;
v := @this: org.apache.shiro.mgt.AbstractRememberMeManager;
v = v.<org.apache.shiro.mgt.AbstractRememberMeManager: org.apache.shiro.crypto.CipherService cipherService>;
return v;
}
public void setCipherService(org.apache.shiro.crypto.CipherService)
{
org.apache.shiro.mgt.AbstractRememberMeManager v;
org.apache.shiro.crypto.CipherService v;
v := @this: org.apache.shiro.mgt.AbstractRememberMeManager;
v := @parameter: org.apache.shiro.crypto.CipherService;
v.<org.apache.shiro.mgt.AbstractRememberMeManager: org.apache.shiro.crypto.CipherService cipherService> = v;
return;
}
public byte[] getEncryptionCipherKey()
{
byte[] v;
org.apache.shiro.mgt.AbstractRememberMeManager v;
v := @this: org.apache.shiro.mgt.AbstractRememberMeManager;
v = v.<org.apache.shiro.mgt.AbstractRememberMeManager: byte[] encryptionCipherKey>;
return v;
}
public void setEncryptionCipherKey(byte[])
{
byte[] v;
org.apache.shiro.mgt.AbstractRememberMeManager v;
v := @this: org.apache.shiro.mgt.AbstractRememberMeManager;
v := @parameter: byte[];
v.<org.apache.shiro.mgt.AbstractRememberMeManager: byte[] encryptionCipherKey> = v;
return;
}
public byte[] getDecryptionCipherKey()
{
byte[] v;
org.apache.shiro.mgt.AbstractRememberMeManager v;
v := @this: org.apache.shiro.mgt.AbstractRememberMeManager;
v = v.<org.apache.shiro.mgt.AbstractRememberMeManager: byte[] decryptionCipherKey>;
return v;
}
public void setDecryptionCipherKey(byte[])
{
byte[] v;
org.apache.shiro.mgt.AbstractRememberMeManager v;
v := @this: org.apache.shiro.mgt.AbstractRememberMeManager;
v := @parameter: byte[];
v.<org.apache.shiro.mgt.AbstractRememberMeManager: byte[] decryptionCipherKey> = v;
return;
}
public byte[] getCipherKey()
{
byte[] v;
org.apache.shiro.mgt.AbstractRememberMeManager v;
v := @this: org.apache.shiro.mgt.AbstractRememberMeManager;
v = virtualinvoke v.<org.apache.shiro.mgt.AbstractRememberMeManager: byte[] getEncryptionCipherKey()>();
return v;
}
public void setCipherKey(byte[])
{
byte[] v;
org.apache.shiro.mgt.AbstractRememberMeManager v;
v := @this: org.apache.shiro.mgt.AbstractRememberMeManager;
v := @parameter: byte[];
virtualinvoke v.<org.apache.shiro.mgt.AbstractRememberMeManager: void setEncryptionCipherKey(byte[])>(v);
virtualinvoke v.<org.apache.shiro.mgt.AbstractRememberMeManager: void setDecryptionCipherKey(byte[])>(v);
return;
}
protected abstract void forgetIdentity(org.apache.shiro.subject.Subject);
protected boolean isRememberMe(org.apache.shiro.authc.AuthenticationToken)
{
org.apache.shiro.authc.AuthenticationToken v;
org.apache.shiro.mgt.AbstractRememberMeManager v;
boolean v, v, v;
v := @this: org.apache.shiro.mgt.AbstractRememberMeManager;
v := @parameter: org.apache.shiro.authc.AuthenticationToken;
if v == null goto label;
v = v instanceof org.apache.shiro.authc.RememberMeAuthenticationToken;
if v == 0 goto label;
v = interfaceinvoke v.<org.apache.shiro.authc.RememberMeAuthenticationToken: boolean isRememberMe()>();
if v == 0 goto label;
v = 1;
goto label;
label:
v = 0;
label:
return v;
}
public void onSuccessfulLogin(org.apache.shiro.subject.Subject, org.apache.shiro.authc.AuthenticationToken, org.apache.shiro.authc.AuthenticationInfo)
{
org.apache.shiro.authc.AuthenticationInfo v;
org.slf4j.Logger v, v;
org.apache.shiro.authc.AuthenticationToken v;
org.apache.shiro.subject.Subject v;
org.apache.shiro.mgt.AbstractRememberMeManager v;
boolean v, v;
v := @this: org.apache.shiro.mgt.AbstractRememberMeManager;
v := @parameter: org.apache.shiro.subject.Subject;
v := @parameter: org.apache.shiro.authc.AuthenticationToken;
v := @parameter: org.apache.shiro.authc.AuthenticationInfo;
virtualinvoke v.<org.apache.shiro.mgt.AbstractRememberMeManager: void forgetIdentity(org.apache.shiro.subject.Subject)>(v);
v = virtualinvoke v.<org.apache.shiro.mgt.AbstractRememberMeManager: boolean isRememberMe(org.apache.shiro.authc.AuthenticationToken)>(v);
if v == 0 goto label;
virtualinvoke v.<org.apache.shiro.mgt.AbstractRememberMeManager: void rememberIdentity(org.apache.shiro.subject.Subject,org.apache.shiro.authc.AuthenticationToken,org.apache.shiro.authc.AuthenticationInfo)>(v, v, v);
goto label;
label:
v = <org.apache.shiro.mgt.AbstractRememberMeManager: org.slf4j.Logger log>;
v = interfaceinvoke v.<org.slf4j.Logger: boolean isDebugEnabled()>();
if v == 0 goto label;
v = <org.apache.shiro.mgt.AbstractRememberMeManager: org.slf4j.Logger log>;
interfaceinvoke v.<org.slf4j.Logger: void debug(java.lang.String)>("AuthenticationToken did not indicate RememberMe is requested.  RememberMe functionality will not be executed for corresponding account.");
label:
return;
}
public void rememberIdentity(org.apache.shiro.subject.Subject, org.apache.shiro.authc.AuthenticationToken, org.apache.shiro.authc.AuthenticationInfo)
{
org.apache.shiro.authc.AuthenticationInfo v;
org.apache.shiro.subject.Subject v;
org.apache.shiro.authc.AuthenticationToken v;
org.apache.shiro.subject.PrincipalCollection v;
org.apache.shiro.mgt.AbstractRememberMeManager v;
v := @this: org.apache.shiro.mgt.AbstractRememberMeManager;
v := @parameter: org.apache.shiro.subject.Subject;
v := @parameter: org.apache.shiro.authc.AuthenticationToken;
v := @parameter: org.apache.shiro.authc.AuthenticationInfo;
v = virtualinvoke v.<org.apache.shiro.mgt.AbstractRememberMeManager: org.apache.shiro.subject.PrincipalCollection getIdentityToRemember(org.apache.shiro.subject.Subject,org.apache.shiro.authc.AuthenticationInfo)>(v, v);
virtualinvoke v.<org.apache.shiro.mgt.AbstractRememberMeManager: void rememberIdentity(org.apache.shiro.subject.Subject,org.apache.shiro.subject.PrincipalCollection)>(v, v);
return;
}
protected org.apache.shiro.subject.PrincipalCollection getIdentityToRemember(org.apache.shiro.subject.Subject, org.apache.shiro.authc.AuthenticationInfo)
{
org.apache.shiro.authc.AuthenticationInfo v;
org.apache.shiro.subject.Subject v;
org.apache.shiro.subject.PrincipalCollection v;
org.apache.shiro.mgt.AbstractRememberMeManager v;
v := @this: org.apache.shiro.mgt.AbstractRememberMeManager;
v := @parameter: org.apache.shiro.subject.Subject;
v := @parameter: org.apache.shiro.authc.AuthenticationInfo;
v = interfaceinvoke v.<org.apache.shiro.authc.AuthenticationInfo: org.apache.shiro.subject.PrincipalCollection getPrincipals()>();
return v;
}
protected void rememberIdentity(org.apache.shiro.subject.Subject, org.apache.shiro.subject.PrincipalCollection)
{
byte[] v;
org.apache.shiro.subject.Subject v;
org.apache.shiro.subject.PrincipalCollection v;
org.apache.shiro.mgt.AbstractRememberMeManager v;
v := @this: org.apache.shiro.mgt.AbstractRememberMeManager;
v := @parameter: org.apache.shiro.subject.Subject;
v := @parameter: org.apache.shiro.subject.PrincipalCollection;
v = virtualinvoke v.<org.apache.shiro.mgt.AbstractRememberMeManager: byte[] convertPrincipalsToBytes(org.apache.shiro.subject.PrincipalCollection)>(v);
virtualinvoke v.<org.apache.shiro.mgt.AbstractRememberMeManager: void rememberSerializedIdentity(org.apache.shiro.subject.Subject,byte[])>(v, v);
return;
}
protected byte[] convertPrincipalsToBytes(org.apache.shiro.subject.PrincipalCollection)
{
byte[] v;
org.apache.shiro.crypto.CipherService v;
org.apache.shiro.subject.PrincipalCollection v;
org.apache.shiro.mgt.AbstractRememberMeManager v;
v := @this: org.apache.shiro.mgt.AbstractRememberMeManager;
v := @parameter: org.apache.shiro.subject.PrincipalCollection;
v = virtualinvoke v.<org.apache.shiro.mgt.AbstractRememberMeManager: byte[] serialize(org.apache.shiro.subject.PrincipalCollection)>(v);
v = virtualinvoke v.<org.apache.shiro.mgt.AbstractRememberMeManager: org.apache.shiro.crypto.CipherService getCipherService()>();
if v == null goto label;
v = virtualinvoke v.<org.apache.shiro.mgt.AbstractRememberMeManager: byte[] encrypt(byte[])>(v);
label:
return v;
}
protected abstract void rememberSerializedIdentity(org.apache.shiro.subject.Subject, byte[]);
public org.apache.shiro.subject.PrincipalCollection getRememberedPrincipals(org.apache.shiro.subject.SubjectContext)
{
org.apache.shiro.subject.SubjectContext v;
byte[] v;
int v;
org.apache.shiro.subject.PrincipalCollection v;
java.lang.RuntimeException v;
org.apache.shiro.mgt.AbstractRememberMeManager v;
v := @this: org.apache.shiro.mgt.AbstractRememberMeManager;
v := @parameter: org.apache.shiro.subject.SubjectContext;
v = null;
label:
v = virtualinvoke v.<org.apache.shiro.mgt.AbstractRememberMeManager: byte[] getRememberedSerializedIdentity(org.apache.shiro.subject.SubjectContext)>(v);
if v == null goto label;
v = lengthof v;
if v <= 0 goto label;
v = virtualinvoke v.<org.apache.shiro.mgt.AbstractRememberMeManager: org.apache.shiro.subject.PrincipalCollection convertBytesToPrincipals(byte[],org.apache.shiro.subject.SubjectContext)>(v, v);
label:
goto label;
label:
v := @caughtexception;
v = virtualinvoke v.<org.apache.shiro.mgt.AbstractRememberMeManager: org.apache.shiro.subject.PrincipalCollection onRememberedPrincipalFailure(java.lang.RuntimeException,org.apache.shiro.subject.SubjectContext)>(v, v);
label:
return v;
catch java.lang.RuntimeException from label to label with label;
}
protected abstract byte[] getRememberedSerializedIdentity(org.apache.shiro.subject.SubjectContext);
protected org.apache.shiro.subject.PrincipalCollection convertBytesToPrincipals(byte[], org.apache.shiro.subject.SubjectContext)
{
org.apache.shiro.subject.SubjectContext v;
byte[] v;
org.apache.shiro.crypto.CipherService v;
org.apache.shiro.subject.PrincipalCollection v;
org.apache.shiro.mgt.AbstractRememberMeManager v;
v := @this: org.apache.shiro.mgt.AbstractRememberMeManager;
v := @parameter: byte[];
v := @parameter: org.apache.shiro.subject.SubjectContext;
v = virtualinvoke v.<org.apache.shiro.mgt.AbstractRememberMeManager: org.apache.shiro.crypto.CipherService getCipherService()>();
if v == null goto label;
v = virtualinvoke v.<org.apache.shiro.mgt.AbstractRememberMeManager: byte[] decrypt(byte[])>(v);
label:
v = virtualinvoke v.<org.apache.shiro.mgt.AbstractRememberMeManager: org.apache.shiro.subject.PrincipalCollection deserialize(byte[])>(v);
return v;
}
protected org.apache.shiro.subject.PrincipalCollection onRememberedPrincipalFailure(java.lang.RuntimeException, org.apache.shiro.subject.SubjectContext)
{
org.apache.shiro.subject.SubjectContext v;
org.slf4j.Logger v, v;
java.lang.RuntimeException v;
org.apache.shiro.mgt.AbstractRememberMeManager v;
boolean v;
v := @this: org.apache.shiro.mgt.AbstractRememberMeManager;
v := @parameter: java.lang.RuntimeException;
v := @parameter: org.apache.shiro.subject.SubjectContext;
v = <org.apache.shiro.mgt.AbstractRememberMeManager: org.slf4j.Logger log>;
v = interfaceinvoke v.<org.slf4j.Logger: boolean isWarnEnabled()>();
if v == 0 goto label;
v = <org.apache.shiro.mgt.AbstractRememberMeManager: org.slf4j.Logger log>;
interfaceinvoke v.<org.slf4j.Logger: void warn(java.lang.String)>("There was a failure while trying to retrieve remembered principals.  This could be due to a configuration problem or corrupted principals.  This could also be due to a recently changed encryption key, if you are using a shiro.ini file, this property would be \'securityManager.rememberMeManager.cipherKey\' see: http://shiro.apache.org/web.html#Web-RememberMeServices. The remembered identity will be forgotten and not used for this request.");
label:
virtualinvoke v.<org.apache.shiro.mgt.AbstractRememberMeManager: void forgetIdentity(org.apache.shiro.subject.SubjectContext)>(v);
throw v;
}
protected byte[] encrypt(byte[])
{
byte[] v, v, v;
org.apache.shiro.util.ByteSource v;
org.apache.shiro.crypto.CipherService v;
org.apache.shiro.mgt.AbstractRememberMeManager v;
v := @this: org.apache.shiro.mgt.AbstractRememberMeManager;
v := @parameter: byte[];
v = v;
v = virtualinvoke v.<org.apache.shiro.mgt.AbstractRememberMeManager: org.apache.shiro.crypto.CipherService getCipherService()>();
if v == null goto label;
v = virtualinvoke v.<org.apache.shiro.mgt.AbstractRememberMeManager: byte[] getEncryptionCipherKey()>();
v = interfaceinvoke v.<org.apache.shiro.crypto.CipherService: org.apache.shiro.util.ByteSource encrypt(byte[],byte[])>(v, v);
v = interfaceinvoke v.<org.apache.shiro.util.ByteSource: byte[] getBytes()>();
label:
return v;
}
protected byte[] decrypt(byte[])
{
byte[] v, v, v;
org.apache.shiro.util.ByteSource v;
org.apache.shiro.crypto.CipherService v;
org.apache.shiro.mgt.AbstractRememberMeManager v;
v := @this: org.apache.shiro.mgt.AbstractRememberMeManager;
v := @parameter: byte[];
v = v;
v = virtualinvoke v.<org.apache.shiro.mgt.AbstractRememberMeManager: org.apache.shiro.crypto.CipherService getCipherService()>();
if v == null goto label;
v = virtualinvoke v.<org.apache.shiro.mgt.AbstractRememberMeManager: byte[] getDecryptionCipherKey()>();
v = interfaceinvoke v.<org.apache.shiro.crypto.CipherService: org.apache.shiro.util.ByteSource decrypt(byte[],byte[])>(v, v);
v = interfaceinvoke v.<org.apache.shiro.util.ByteSource: byte[] getBytes()>();
label:
return v;
}
protected byte[] serialize(org.apache.shiro.subject.PrincipalCollection)
{
byte[] v;
org.apache.shiro.io.Serializer v;
org.apache.shiro.subject.PrincipalCollection v;
org.apache.shiro.mgt.AbstractRememberMeManager v;
v := @this: org.apache.shiro.mgt.AbstractRememberMeManager;
v := @parameter: org.apache.shiro.subject.PrincipalCollection;
v = virtualinvoke v.<org.apache.shiro.mgt.AbstractRememberMeManager: org.apache.shiro.io.Serializer getSerializer()>();
v = interfaceinvoke v.<org.apache.shiro.io.Serializer: byte[] serialize(java.lang.Object)>(v);
return v;
}
protected org.apache.shiro.subject.PrincipalCollection deserialize(byte[])
{
byte[] v;
org.apache.shiro.io.Serializer v;
java.lang.Object v;
org.apache.shiro.mgt.AbstractRememberMeManager v;
v := @this: org.apache.shiro.mgt.AbstractRememberMeManager;
v := @parameter: byte[];
v = virtualinvoke v.<org.apache.shiro.mgt.AbstractRememberMeManager: org.apache.shiro.io.Serializer getSerializer()>();
v = interfaceinvoke v.<org.apache.shiro.io.Serializer: java.lang.Object deserialize(byte[])>(v);
return v;
}
public void onFailedLogin(org.apache.shiro.subject.Subject, org.apache.shiro.authc.AuthenticationToken, org.apache.shiro.authc.AuthenticationException)
{
org.apache.shiro.authc.AuthenticationException v;
org.apache.shiro.subject.Subject v;
org.apache.shiro.authc.AuthenticationToken v;
org.apache.shiro.mgt.AbstractRememberMeManager v;
v := @this: org.apache.shiro.mgt.AbstractRememberMeManager;
v := @parameter: org.apache.shiro.subject.Subject;
v := @parameter: org.apache.shiro.authc.AuthenticationToken;
v := @parameter: org.apache.shiro.authc.AuthenticationException;
virtualinvoke v.<org.apache.shiro.mgt.AbstractRememberMeManager: void forgetIdentity(org.apache.shiro.subject.Subject)>(v);
return;
}
public void onLogout(org.apache.shiro.subject.Subject)
{
org.apache.shiro.mgt.AbstractRememberMeManager v;
org.apache.shiro.subject.Subject v;
v := @this: org.apache.shiro.mgt.AbstractRememberMeManager;
v := @parameter: org.apache.shiro.subject.Subject;
virtualinvoke v.<org.apache.shiro.mgt.AbstractRememberMeManager: void forgetIdentity(org.apache.shiro.subject.Subject)>(v);
return;
}
static void <clinit>()
{
org.slf4j.Logger v;
v = staticinvoke <org.slf4j.LoggerFactory: org.slf4j.Logger getLogger(java.lang.Class)>(class "Lorg/apache/shiro/mgt/AbstractRememberMeManager;");
<org.apache.shiro.mgt.AbstractRememberMeManager: org.slf4j.Logger log> = v;
return;
}
}