public class org.apache.wiki.WikiSession extends java.lang.Object implements org.apache.wiki.api.core.Session
{
private static final org.apache.logging.log4j.Logger LOG;
private static final java.lang.String ALL;
private static final java.lang.ThreadLocal c_guestSession;
private final javax.security.auth.Subject m_subject;
private final java.util.Map m_messages;
private org.apache.wiki.api.core.Engine m_engine;
private java.lang.String antiCsrfToken;
private java.lang.String m_status;
private java.security.Principal m_userPrincipal;
private java.security.Principal m_loginPrincipal;
private java.util.Locale m_cachedLocale;
protected boolean isInGroup(org.apache.wiki.auth.authorize.Group)
{
java.security.Principal[] v;
java.util.stream.Stream v;
java.util.function.Predicate v;
org.apache.wiki.WikiSession v;
org.apache.wiki.auth.authorize.Group v;
boolean v;
v := @this: org.apache.wiki.WikiSession;
v := @parameter: org.apache.wiki.auth.authorize.Group;
v = virtualinvoke v.<org.apache.wiki.WikiSession: java.security.Principal[] getPrincipals()>();
v = staticinvoke <java.util.Arrays: java.util.stream.Stream stream(java.lang.Object[])>(v);
v = staticinvoke <org.apache.wiki.WikiSession$lambda_isInGroup_0__5: java.util.function.Predicate bootstrap$(org.apache.wiki.WikiSession,org.apache.wiki.auth.authorize.Group)>(v, v);
v = interfaceinvoke v.<java.util.stream.Stream: boolean anyMatch(java.util.function.Predicate)>(v);
return v;
}
private void <init>()
{
java.security.Principal v, v;
java.util.Locale v;
java.util.concurrent.ConcurrentHashMap v;
org.apache.wiki.WikiSession v;
javax.security.auth.Subject v;
v := @this: org.apache.wiki.WikiSession;
specialinvoke v.<java.lang.Object: void <init>()>();
v = new javax.security.auth.Subject;
specialinvoke v.<javax.security.auth.Subject: void <init>()>();
v.<org.apache.wiki.WikiSession: javax.security.auth.Subject m_subject> = v;
v = new java.util.concurrent.ConcurrentHashMap;
specialinvoke v.<java.util.concurrent.ConcurrentHashMap: void <init>()>();
v.<org.apache.wiki.WikiSession: java.util.Map m_messages> = v;
v.<org.apache.wiki.WikiSession: java.lang.String m_status> = "anonymous";
v = <org.apache.wiki.auth.WikiPrincipal: java.security.Principal GUEST>;
v.<org.apache.wiki.WikiSession: java.security.Principal m_userPrincipal> = v;
v = <org.apache.wiki.auth.WikiPrincipal: java.security.Principal GUEST>;
v.<org.apache.wiki.WikiSession: java.security.Principal m_loginPrincipal> = v;
v = staticinvoke <java.util.Locale: java.util.Locale getDefault()>();
v.<org.apache.wiki.WikiSession: java.util.Locale m_cachedLocale> = v;
return;
}
public boolean isAsserted()
{
org.apache.wiki.auth.authorize.Role v;
java.util.Set v;
org.apache.wiki.WikiSession v;
javax.security.auth.Subject v;
boolean v;
v := @this: org.apache.wiki.WikiSession;
v = v.<org.apache.wiki.WikiSession: javax.security.auth.Subject m_subject>;
v = virtualinvoke v.<javax.security.auth.Subject: java.util.Set getPrincipals()>();
v = <org.apache.wiki.auth.authorize.Role: org.apache.wiki.auth.authorize.Role ASSERTED>;
v = interfaceinvoke v.<java.util.Set: boolean contains(java.lang.Object)>(v);
return v;
}
public boolean isAuthenticated()
{
org.apache.wiki.auth.authorize.Role v, v;
java.util.Set v, v;
javax.security.auth.Subject v, v;
org.apache.wiki.WikiSession v;
boolean v, v, v;
v := @this: org.apache.wiki.WikiSession;
v = v.<org.apache.wiki.WikiSession: javax.security.auth.Subject m_subject>;
v = virtualinvoke v.<javax.security.auth.Subject: java.util.Set getPrincipals()>();
v = <org.apache.wiki.auth.authorize.Role: org.apache.wiki.auth.authorize.Role AUTHENTICATED>;
v = interfaceinvoke v.<java.util.Set: boolean contains(java.lang.Object)>(v);
if v == 0 goto label;
return 1;
label:
v = virtualinvoke v.<org.apache.wiki.WikiSession: boolean isAnonymous()>();
if v != 0 goto label;
v = virtualinvoke v.<org.apache.wiki.WikiSession: boolean isAsserted()>();
if v != 0 goto label;
v = v.<org.apache.wiki.WikiSession: javax.security.auth.Subject m_subject>;
v = virtualinvoke v.<javax.security.auth.Subject: java.util.Set getPrincipals()>();
v = <org.apache.wiki.auth.authorize.Role: org.apache.wiki.auth.authorize.Role AUTHENTICATED>;
interfaceinvoke v.<java.util.Set: boolean add(java.lang.Object)>(v);
return 1;
label:
return 0;
}
public boolean isAnonymous()
{
org.apache.wiki.auth.authorize.Role v;
java.util.Set v;
javax.security.auth.Subject v;
java.security.Principal v, v;
org.apache.wiki.WikiSession v;
java.lang.String v;
boolean v, v, v, v;
v := @this: org.apache.wiki.WikiSession;
v = v.<org.apache.wiki.WikiSession: javax.security.auth.Subject m_subject>;
v = virtualinvoke v.<javax.security.auth.Subject: java.util.Set getPrincipals()>();
v = <org.apache.wiki.auth.authorize.Role: org.apache.wiki.auth.authorize.Role ANONYMOUS>;
v = interfaceinvoke v.<java.util.Set: boolean contains(java.lang.Object)>(v);
if v != 0 goto label;
v = <org.apache.wiki.auth.WikiPrincipal: java.security.Principal GUEST>;
v = interfaceinvoke v.<java.util.Set: boolean contains(java.lang.Object)>(v);
if v != 0 goto label;
v = virtualinvoke v.<org.apache.wiki.WikiSession: java.security.Principal getUserPrincipal()>();
v = interfaceinvoke v.<java.security.Principal: java.lang.String getName()>();
v = staticinvoke <org.apache.wiki.util.HttpUtil: boolean isIPV4Address(java.lang.String)>(v);
if v == 0 goto label;
label:
v = 1;
goto label;
label:
v = 0;
label:
return v;
}
public java.security.Principal getLoginPrincipal()
{
org.apache.wiki.WikiSession v;
java.security.Principal v;
v := @this: org.apache.wiki.WikiSession;
v = v.<org.apache.wiki.WikiSession: java.security.Principal m_loginPrincipal>;
return v;
}
public java.security.Principal getUserPrincipal()
{
org.apache.wiki.WikiSession v;
java.security.Principal v;
v := @this: org.apache.wiki.WikiSession;
v = v.<org.apache.wiki.WikiSession: java.security.Principal m_userPrincipal>;
return v;
}
public java.lang.String antiCsrfToken()
{
org.apache.wiki.WikiSession v;
java.lang.String v;
v := @this: org.apache.wiki.WikiSession;
v = v.<org.apache.wiki.WikiSession: java.lang.String antiCsrfToken>;
return v;
}
public java.util.Locale getLocale()
{
org.apache.wiki.WikiSession v;
java.util.Locale v;
v := @this: org.apache.wiki.WikiSession;
v = v.<org.apache.wiki.WikiSession: java.util.Locale m_cachedLocale>;
return v;
}
public void addMessage(java.lang.String)
{
org.apache.wiki.WikiSession v;
java.lang.String v;
v := @this: org.apache.wiki.WikiSession;
v := @parameter: java.lang.String;
virtualinvoke v.<org.apache.wiki.WikiSession: void addMessage(java.lang.String,java.lang.String)>("*", v);
return;
}
public void addMessage(java.lang.String, java.lang.String)
{
java.lang.IllegalArgumentException v;
java.util.function.Function v;
java.util.Map v;
org.apache.wiki.WikiSession v;
java.lang.Object v;
java.lang.String v, v, v;
v := @this: org.apache.wiki.WikiSession;
v := @parameter: java.lang.String;
v := @parameter: java.lang.String;
if v != null goto label;
v = new java.lang.IllegalArgumentException;
specialinvoke v.<java.lang.IllegalArgumentException: void <init>(java.lang.String)>("addMessage: topic cannot be null.");
throw v;
label:
v = v.<org.apache.wiki.WikiSession: java.util.Map m_messages>;
v = staticinvoke <org.apache.wiki.WikiSession$lambda_addMessage_1__6: java.util.function.Function bootstrap$()>();
v = interfaceinvoke v.<java.util.Map: java.lang.Object computeIfAbsent(java.lang.Object,java.util.function.Function)>(v, v);
v = staticinvoke <org.apache.commons.lang.StringUtils: java.lang.String defaultString(java.lang.String)>(v);
interfaceinvoke v.<java.util.Set: boolean add(java.lang.Object)>(v);
return;
}
public void clearMessages()
{
org.apache.wiki.WikiSession v;
java.util.Map v;
v := @this: org.apache.wiki.WikiSession;
v = v.<org.apache.wiki.WikiSession: java.util.Map m_messages>;
interfaceinvoke v.<java.util.Map: void clear()>();
return;
}
public void clearMessages(java.lang.String)
{
java.util.Map v, v;
org.apache.wiki.WikiSession v;
java.lang.Object v;
java.lang.String v;
v := @this: org.apache.wiki.WikiSession;
v := @parameter: java.lang.String;
v = v.<org.apache.wiki.WikiSession: java.util.Map m_messages>;
v = interfaceinvoke v.<java.util.Map: java.lang.Object get(java.lang.Object)>(v);
if v == null goto label;
v = v.<org.apache.wiki.WikiSession: java.util.Map m_messages>;
interfaceinvoke v.<java.util.Map: void clear()>();
label:
return;
}
public java.lang.String[] getMessages()
{
org.apache.wiki.WikiSession v;
java.lang.String[] v;
v := @this: org.apache.wiki.WikiSession;
v = virtualinvoke v.<org.apache.wiki.WikiSession: java.lang.String[] getMessages(java.lang.String)>("*");
return v;
}
public java.lang.String[] getMessages(java.lang.String)
{
java.lang.Object[] v;
java.lang.String[] v, v;
java.util.Map v;
int v;
org.apache.wiki.WikiSession v;
java.lang.Object v;
java.lang.String v;
v := @this: org.apache.wiki.WikiSession;
v := @parameter: java.lang.String;
v = v.<org.apache.wiki.WikiSession: java.util.Map m_messages>;
v = interfaceinvoke v.<java.util.Map: java.lang.Object get(java.lang.Object)>(v);
if v == null goto label;
v = interfaceinvoke v.<java.util.Set: int size()>();
if v != 0 goto label;
label:
v = newarray (java.lang.String)[0];
return v;
label:
v = newarray (java.lang.String)[0];
v = interfaceinvoke v.<java.util.Set: java.lang.Object[] toArray(java.lang.Object[])>(v);
return v;
}
public java.security.Principal[] getPrincipals()
{
java.lang.Object[] v;
java.util.function.Predicate v;
java.util.Set v;
javax.security.auth.Subject v;
java.util.stream.Stream v, v;
org.apache.wiki.WikiSession v;
java.util.function.IntFunction v;
v := @this: org.apache.wiki.WikiSession;
v = v.<org.apache.wiki.WikiSession: javax.security.auth.Subject m_subject>;
v = virtualinvoke v.<javax.security.auth.Subject: java.util.Set getPrincipals()>();
v = interfaceinvoke v.<java.util.Set: java.util.stream.Stream stream()>();
v = staticinvoke <org.apache.wiki.WikiSession$isUserPrincipal__7: java.util.function.Predicate bootstrap$()>();
v = interfaceinvoke v.<java.util.stream.Stream: java.util.stream.Stream filter(java.util.function.Predicate)>(v);
v = staticinvoke <org.apache.wiki.WikiSession$lambda_getPrincipals_2__8: java.util.function.IntFunction bootstrap$()>();
v = interfaceinvoke v.<java.util.stream.Stream: java.lang.Object[] toArray(java.util.function.IntFunction)>(v);
return v;
}
public java.security.Principal[] getRoles()
{
java.security.Principal[] v;
java.lang.Object[] v;
java.util.Set v, v;
javax.security.auth.Subject v, v;
java.util.HashSet v;
org.apache.wiki.WikiSession v;
java.util.Comparator v;
v := @this: org.apache.wiki.WikiSession;
v = new java.util.HashSet;
specialinvoke v.<java.util.HashSet: void <init>()>();
v = v.<org.apache.wiki.WikiSession: javax.security.auth.Subject m_subject>;
v = virtualinvoke v.<javax.security.auth.Subject: java.util.Set getPrincipals(java.lang.Class)>(class "Lorg/apache/wiki/auth/authorize/Role;");
interfaceinvoke v.<java.util.Set: boolean addAll(java.util.Collection)>(v);
v = v.<org.apache.wiki.WikiSession: javax.security.auth.Subject m_subject>;
v = virtualinvoke v.<javax.security.auth.Subject: java.util.Set getPrincipals(java.lang.Class)>(class "Lorg/apache/wiki/auth/GroupPrincipal;");
interfaceinvoke v.<java.util.Set: boolean addAll(java.util.Collection)>(v);
v = newarray (java.security.Principal)[0];
v = interfaceinvoke v.<java.util.Set: java.lang.Object[] toArray(java.lang.Object[])>(v);
v = <org.apache.wiki.auth.WikiPrincipal: java.util.Comparator COMPARATOR>;
staticinvoke <java.util.Arrays: void sort(java.lang.Object[],java.util.Comparator)>(v, v);
return v;
}
public boolean hasPrincipal(java.security.Principal)
{
java.security.Principal v;
java.util.Set v;
org.apache.wiki.WikiSession v;
javax.security.auth.Subject v;
boolean v;
v := @this: org.apache.wiki.WikiSession;
v := @parameter: java.security.Principal;
v = v.<org.apache.wiki.WikiSession: javax.security.auth.Subject m_subject>;
v = virtualinvoke v.<javax.security.auth.Subject: java.util.Set getPrincipals()>();
v = interfaceinvoke v.<java.util.Set: boolean contains(java.lang.Object)>(v);
return v;
}
public void actionPerformed(org.apache.wiki.event.WikiEvent)
{
org.apache.wiki.auth.WikiPrincipal v;
java.util.Set v, v, v, v, v, v, v, v, v;
java.lang.String v, v, v, v;
java.lang.IllegalStateException v;
org.apache.wiki.auth.user.UserProfile v;
boolean v, v, v, v, v, v, v, v, v, v;
java.security.Principal v, v, v, v, v, v, v, v, v;
org.apache.wiki.WikiSession v;
int v;
org.apache.wiki.auth.authorize.Role v, v, v, v, v, v, v, v;
org.apache.wiki.event.WikiEvent v;
javax.security.auth.Subject v, v, v, v, v, v, v, v, v;
java.lang.Object v, v, v, v, v, v, v, v, v, v, v, v, v, v;
v := @this: org.apache.wiki.WikiSession;
v := @parameter: org.apache.wiki.event.WikiEvent;
v = v instanceof org.apache.wiki.event.WikiSecurityEvent;
if v == 0 goto label;
v = virtualinvoke v.<org.apache.wiki.event.WikiSecurityEvent: java.lang.Object getTarget()>();
if v == null goto label;
v = virtualinvoke v.<org.apache.wiki.event.WikiSecurityEvent: int getType()>();
tableswitch(v)
{
case 30: goto label;
case 31: goto label;
case 32: goto label;
case 33: goto label;
case 34: goto label;
case 35: goto label;
case 36: goto label;
case 37: goto label;
case 38: goto label;
case 39: goto label;
case 40: goto label;
case 41: goto label;
case 42: goto label;
case 43: goto label;
case 44: goto label;
case 45: goto label;
case 46: goto label;
case 47: goto label;
case 48: goto label;
case 49: goto label;
case 50: goto label;
case 51: goto label;
case 52: goto label;
case 53: goto label;
case 54: goto label;
default: goto label;
};
label:
v = virtualinvoke v.<org.apache.wiki.event.WikiSecurityEvent: java.lang.Object getTarget()>();
v = virtualinvoke v.<org.apache.wiki.WikiSession: boolean isInGroup(org.apache.wiki.auth.authorize.Group)>(v);
if v == 0 goto label;
v = v.<org.apache.wiki.WikiSession: javax.security.auth.Subject m_subject>;
v = virtualinvoke v.<javax.security.auth.Subject: java.util.Set getPrincipals()>();
v = virtualinvoke v.<org.apache.wiki.auth.authorize.Group: java.security.Principal getPrincipal()>();
interfaceinvoke v.<java.util.Set: boolean add(java.lang.Object)>(v);
goto label;
label:
v = virtualinvoke v.<org.apache.wiki.event.WikiSecurityEvent: java.lang.Object getTarget()>();
v = v.<org.apache.wiki.WikiSession: javax.security.auth.Subject m_subject>;
v = virtualinvoke v.<javax.security.auth.Subject: java.util.Set getPrincipals()>();
v = virtualinvoke v.<org.apache.wiki.auth.authorize.Group: java.security.Principal getPrincipal()>();
interfaceinvoke v.<java.util.Set: boolean remove(java.lang.Object)>(v);
goto label;
label:
v = v.<org.apache.wiki.WikiSession: javax.security.auth.Subject m_subject>;
v = virtualinvoke v.<javax.security.auth.Subject: java.util.Set getPrincipals()>();
v = v.<org.apache.wiki.WikiSession: javax.security.auth.Subject m_subject>;
v = virtualinvoke v.<javax.security.auth.Subject: java.util.Set getPrincipals(java.lang.Class)>(class "Lorg/apache/wiki/auth/GroupPrincipal;");
interfaceinvoke v.<java.util.Set: boolean removeAll(java.util.Collection)>(v);
goto label;
label:
v = virtualinvoke v.<org.apache.wiki.event.WikiSecurityEvent: java.lang.Object getTarget()>();
v = virtualinvoke v.<java.lang.Object: boolean equals(java.lang.Object)>(v);
if v == 0 goto label;
v = v.<org.apache.wiki.WikiSession: java.lang.String m_status>;
v = virtualinvoke v.<java.lang.String: boolean equals(java.lang.Object)>("authenticated");
if v == 0 goto label;
v = v.<org.apache.wiki.WikiSession: javax.security.auth.Subject m_subject>;
v = virtualinvoke v.<javax.security.auth.Subject: java.util.Set getPrincipals()>();
v = virtualinvoke v.<org.apache.wiki.event.WikiSecurityEvent: java.lang.Object getPrincipal()>();
interfaceinvoke v.<java.util.Set: boolean add(java.lang.Object)>(v);
goto label;
label:
v = virtualinvoke v.<org.apache.wiki.event.WikiSecurityEvent: java.lang.Object getTarget()>();
v = virtualinvoke v.<java.lang.Object: boolean equals(java.lang.Object)>(v);
if v == 0 goto label;
v.<org.apache.wiki.WikiSession: java.lang.String m_status> = "anonymous";
v = v.<org.apache.wiki.WikiSession: javax.security.auth.Subject m_subject>;
v = virtualinvoke v.<javax.security.auth.Subject: java.util.Set getPrincipals()>();
v = virtualinvoke v.<org.apache.wiki.event.WikiSecurityEvent: java.lang.Object getPrincipal()>();
v.<org.apache.wiki.WikiSession: java.security.Principal m_loginPrincipal> = v;
v = v.<org.apache.wiki.WikiSession: java.security.Principal m_loginPrincipal>;
v.<org.apache.wiki.WikiSession: java.security.Principal m_userPrincipal> = v;
interfaceinvoke v.<java.util.Set: void clear()>();
v = v.<org.apache.wiki.WikiSession: java.security.Principal m_loginPrincipal>;
interfaceinvoke v.<java.util.Set: boolean add(java.lang.Object)>(v);
v = <org.apache.wiki.auth.authorize.Role: org.apache.wiki.auth.authorize.Role ALL>;
interfaceinvoke v.<java.util.Set: boolean add(java.lang.Object)>(v);
v = <org.apache.wiki.auth.authorize.Role: org.apache.wiki.auth.authorize.Role ANONYMOUS>;
interfaceinvoke v.<java.util.Set: boolean add(java.lang.Object)>(v);
goto label;
label:
v = virtualinvoke v.<org.apache.wiki.event.WikiSecurityEvent: java.lang.Object getTarget()>();
v = virtualinvoke v.<java.lang.Object: boolean equals(java.lang.Object)>(v);
if v == 0 goto label;
v.<org.apache.wiki.WikiSession: java.lang.String m_status> = "asserted";
v = v.<org.apache.wiki.WikiSession: javax.security.auth.Subject m_subject>;
v = virtualinvoke v.<javax.security.auth.Subject: java.util.Set getPrincipals()>();
v = virtualinvoke v.<org.apache.wiki.event.WikiSecurityEvent: java.lang.Object getPrincipal()>();
v.<org.apache.wiki.WikiSession: java.security.Principal m_loginPrincipal> = v;
v = v.<org.apache.wiki.WikiSession: java.security.Principal m_loginPrincipal>;
v.<org.apache.wiki.WikiSession: java.security.Principal m_userPrincipal> = v;
interfaceinvoke v.<java.util.Set: void clear()>();
v = v.<org.apache.wiki.WikiSession: java.security.Principal m_loginPrincipal>;
interfaceinvoke v.<java.util.Set: boolean add(java.lang.Object)>(v);
v = <org.apache.wiki.auth.authorize.Role: org.apache.wiki.auth.authorize.Role ALL>;
interfaceinvoke v.<java.util.Set: boolean add(java.lang.Object)>(v);
v = <org.apache.wiki.auth.authorize.Role: org.apache.wiki.auth.authorize.Role ASSERTED>;
interfaceinvoke v.<java.util.Set: boolean add(java.lang.Object)>(v);
goto label;
label:
v = virtualinvoke v.<org.apache.wiki.event.WikiSecurityEvent: java.lang.Object getTarget()>();
v = virtualinvoke v.<java.lang.Object: boolean equals(java.lang.Object)>(v);
if v == 0 goto label;
v.<org.apache.wiki.WikiSession: java.lang.String m_status> = "authenticated";
v = v.<org.apache.wiki.WikiSession: javax.security.auth.Subject m_subject>;
v = virtualinvoke v.<javax.security.auth.Subject: java.util.Set getPrincipals()>();
v = virtualinvoke v.<org.apache.wiki.event.WikiSecurityEvent: java.lang.Object getPrincipal()>();
v.<org.apache.wiki.WikiSession: java.security.Principal m_loginPrincipal> = v;
v = v.<org.apache.wiki.WikiSession: java.security.Principal m_loginPrincipal>;
v.<org.apache.wiki.WikiSession: java.security.Principal m_userPrincipal> = v;
interfaceinvoke v.<java.util.Set: void clear()>();
v = v.<org.apache.wiki.WikiSession: java.security.Principal m_loginPrincipal>;
interfaceinvoke v.<java.util.Set: boolean add(java.lang.Object)>(v);
v = <org.apache.wiki.auth.authorize.Role: org.apache.wiki.auth.authorize.Role ALL>;
interfaceinvoke v.<java.util.Set: boolean add(java.lang.Object)>(v);
v = <org.apache.wiki.auth.authorize.Role: org.apache.wiki.auth.authorize.Role AUTHENTICATED>;
interfaceinvoke v.<java.util.Set: boolean add(java.lang.Object)>(v);
virtualinvoke v.<org.apache.wiki.WikiSession: void injectUserProfilePrincipals()>();
virtualinvoke v.<org.apache.wiki.WikiSession: void injectGroupPrincipals()>();
goto label;
label:
v = virtualinvoke v.<org.apache.wiki.event.WikiSecurityEvent: java.lang.Object getSrc()>();
v = virtualinvoke v.<java.lang.Object: boolean equals(java.lang.Object)>(v);
if v == 0 goto label;
virtualinvoke v.<org.apache.wiki.WikiSession: void injectUserProfilePrincipals()>();
virtualinvoke v.<org.apache.wiki.WikiSession: void injectGroupPrincipals()>();
goto label;
label:
v = virtualinvoke v.<org.apache.wiki.event.WikiSecurityEvent: java.lang.Object getSrc()>();
v = virtualinvoke v.<java.lang.Object: boolean equals(java.lang.Object)>(v);
if v == 0 goto label;
v = v.<org.apache.wiki.WikiSession: java.lang.String m_status>;
v = virtualinvoke v.<java.lang.String: boolean equals(java.lang.Object)>("authenticated");
if v == 0 goto label;
v = virtualinvoke v.<org.apache.wiki.event.WikiSecurityEvent: java.lang.Object getTarget()>();
v = v[1];
v = interfaceinvoke v.<org.apache.wiki.auth.user.UserProfile: java.lang.String getFullname()>();
if v != null goto label;
v = new java.lang.IllegalStateException;
specialinvoke v.<java.lang.IllegalStateException: void <init>(java.lang.String)>("User profile FullName cannot be null.");
throw v;
label:
v = v.<org.apache.wiki.WikiSession: javax.security.auth.Subject m_subject>;
v = virtualinvoke v.<javax.security.auth.Subject: java.util.Set getPrincipals()>();
v = new org.apache.wiki.auth.WikiPrincipal;
v = interfaceinvoke v.<org.apache.wiki.auth.user.UserProfile: java.lang.String getLoginName()>();
specialinvoke v.<org.apache.wiki.auth.WikiPrincipal: void <init>(java.lang.String)>(v);
v.<org.apache.wiki.WikiSession: java.security.Principal m_loginPrincipal> = v;
interfaceinvoke v.<java.util.Set: void clear()>();
v = v.<org.apache.wiki.WikiSession: java.security.Principal m_loginPrincipal>;
interfaceinvoke v.<java.util.Set: boolean add(java.lang.Object)>(v);
v = <org.apache.wiki.auth.authorize.Role: org.apache.wiki.auth.authorize.Role ALL>;
interfaceinvoke v.<java.util.Set: boolean add(java.lang.Object)>(v);
v = <org.apache.wiki.auth.authorize.Role: org.apache.wiki.auth.authorize.Role AUTHENTICATED>;
interfaceinvoke v.<java.util.Set: boolean add(java.lang.Object)>(v);
virtualinvoke v.<org.apache.wiki.WikiSession: void injectUserProfilePrincipals()>();
virtualinvoke v.<org.apache.wiki.WikiSession: void injectGroupPrincipals()>();
label:
return;
}
public void invalidate()
{
org.apache.wiki.auth.authorize.Role v, v;
java.util.Set v, v, v, v;
javax.security.auth.Subject v, v, v, v;
java.security.Principal v, v, v;
org.apache.wiki.WikiSession v;
v := @this: org.apache.wiki.WikiSession;
v = v.<org.apache.wiki.WikiSession: javax.security.auth.Subject m_subject>;
v = virtualinvoke v.<javax.security.auth.Subject: java.util.Set getPrincipals()>();
interfaceinvoke v.<java.util.Set: void clear()>();
v = v.<org.apache.wiki.WikiSession: javax.security.auth.Subject m_subject>;
v = virtualinvoke v.<javax.security.auth.Subject: java.util.Set getPrincipals()>();
v = <org.apache.wiki.auth.WikiPrincipal: java.security.Principal GUEST>;
interfaceinvoke v.<java.util.Set: boolean add(java.lang.Object)>(v);
v = v.<org.apache.wiki.WikiSession: javax.security.auth.Subject m_subject>;
v = virtualinvoke v.<javax.security.auth.Subject: java.util.Set getPrincipals()>();
v = <org.apache.wiki.auth.authorize.Role: org.apache.wiki.auth.authorize.Role ANONYMOUS>;
interfaceinvoke v.<java.util.Set: boolean add(java.lang.Object)>(v);
v = v.<org.apache.wiki.WikiSession: javax.security.auth.Subject m_subject>;
v = virtualinvoke v.<javax.security.auth.Subject: java.util.Set getPrincipals()>();
v = <org.apache.wiki.auth.authorize.Role: org.apache.wiki.auth.authorize.Role ALL>;
interfaceinvoke v.<java.util.Set: boolean add(java.lang.Object)>(v);
v = <org.apache.wiki.auth.WikiPrincipal: java.security.Principal GUEST>;
v.<org.apache.wiki.WikiSession: java.security.Principal m_userPrincipal> = v;
v = <org.apache.wiki.auth.WikiPrincipal: java.security.Principal GUEST>;
v.<org.apache.wiki.WikiSession: java.security.Principal m_loginPrincipal> = v;
return;
}
protected void injectGroupPrincipals()
{
java.security.Principal[] v;
java.util.Set v, v, v;
javax.security.auth.Subject v, v, v;
java.security.Principal v;
org.apache.wiki.api.core.Engine v;
int v, v;
org.apache.wiki.WikiSession v;
java.lang.Object v;
boolean v;
v := @this: org.apache.wiki.WikiSession;
v = v.<org.apache.wiki.WikiSession: javax.security.auth.Subject m_subject>;
v = virtualinvoke v.<javax.security.auth.Subject: java.util.Set getPrincipals()>();
v = v.<org.apache.wiki.WikiSession: javax.security.auth.Subject m_subject>;
v = virtualinvoke v.<javax.security.auth.Subject: java.util.Set getPrincipals(java.lang.Class)>(class "Lorg/apache/wiki/auth/GroupPrincipal;");
interfaceinvoke v.<java.util.Set: boolean removeAll(java.util.Collection)>(v);
v = v.<org.apache.wiki.WikiSession: org.apache.wiki.api.core.Engine m_engine>;
v = interfaceinvoke v.<org.apache.wiki.api.core.Engine: java.lang.Object getManager(java.lang.Class)>(class "Lorg/apache/wiki/auth/authorize/GroupManager;");
v = interfaceinvoke v.<org.apache.wiki.auth.authorize.GroupManager: java.security.Principal[] getRoles()>();
v = lengthof v;
v = 0;
label:
if v >= v goto label;
v = v[v];
v = interfaceinvoke v.<org.apache.wiki.auth.authorize.GroupManager: boolean isUserInRole(org.apache.wiki.api.core.Session,java.security.Principal)>(v, v);
if v == 0 goto label;
v = v.<org.apache.wiki.WikiSession: javax.security.auth.Subject m_subject>;
v = virtualinvoke v.<javax.security.auth.Subject: java.util.Set getPrincipals()>();
interfaceinvoke v.<java.util.Set: boolean add(java.lang.Object)>(v);
label:
v = v + 1;
goto label;
label:
return;
}
protected void injectUserProfilePrincipals()
{
java.lang.IllegalStateException v;
org.apache.wiki.auth.user.UserProfile v;
int v, v;
java.lang.String v, v, v;
boolean v, v, v, v;
java.security.Principal[] v;
java.util.Set v;
org.apache.wiki.auth.user.UserDatabase v;
javax.security.auth.Subject v;
java.security.Principal v, v, v;
org.apache.logging.log4j.Logger v;
org.apache.wiki.api.core.Engine v;
org.apache.wiki.WikiSession v;
java.lang.Object v;
v := @this: org.apache.wiki.WikiSession;
v = v.<org.apache.wiki.WikiSession: java.security.Principal m_loginPrincipal>;
v = interfaceinvoke v.<java.security.Principal: java.lang.String getName()>();
if v != null goto label;
v = <org.apache.wiki.WikiSession: org.apache.logging.log4j.Logger LOG>;
interfaceinvoke v.<org.apache.logging.log4j.Logger: void info(java.lang.String)>("Refresh principals failed because WikiSession had no user Principal; maybe not logged in?");
return;
label:
v = v.<org.apache.wiki.WikiSession: org.apache.wiki.api.core.Engine m_engine>;
v = interfaceinvoke v.<org.apache.wiki.api.core.Engine: java.lang.Object getManager(java.lang.Class)>(class "Lorg/apache/wiki/auth/UserManager;");
v = interfaceinvoke v.<org.apache.wiki.auth.UserManager: org.apache.wiki.auth.user.UserDatabase getUserDatabase()>();
if v != null goto label;
v = new java.lang.IllegalStateException;
specialinvoke v.<java.lang.IllegalStateException: void <init>(java.lang.String)>("User database cannot be null.");
throw v;
label:
v = interfaceinvoke v.<org.apache.wiki.auth.user.UserDatabase: org.apache.wiki.auth.user.UserProfile find(java.lang.String)>(v);
v = interfaceinvoke v.<org.apache.wiki.auth.user.UserProfile: java.lang.String getLoginName()>();
v = interfaceinvoke v.<org.apache.wiki.auth.user.UserDatabase: java.security.Principal[] getPrincipals(java.lang.String)>(v);
v = lengthof v;
v = 0;
label:
if v >= v goto label;
v = v[v];
v = v.<org.apache.wiki.WikiSession: javax.security.auth.Subject m_subject>;
v = virtualinvoke v.<javax.security.auth.Subject: java.util.Set getPrincipals()>();
interfaceinvoke v.<java.util.Set: boolean add(java.lang.Object)>(v);
v = v instanceof org.apache.wiki.auth.WikiPrincipal;
if v == 0 goto label;
v = virtualinvoke v.<org.apache.wiki.auth.WikiPrincipal: java.lang.String getType()>();
v = virtualinvoke v.<java.lang.String: boolean equals(java.lang.Object)>("fullName");
if v == 0 goto label;
v = 1;
goto label;
label:
v = 0;
label:
if v == 0 goto label;
v.<org.apache.wiki.WikiSession: java.security.Principal m_userPrincipal> = v;
goto label;
label:
v = v.<org.apache.wiki.WikiSession: java.security.Principal m_userPrincipal>;
v = v instanceof org.apache.wiki.auth.WikiPrincipal;
if v != 0 goto label;
v.<org.apache.wiki.WikiSession: java.security.Principal m_userPrincipal> = v;
label:
v = v + 1;
goto label;
label:
return;
}
public java.lang.String getStatus()
{
org.apache.wiki.WikiSession v;
java.lang.String v;
v := @this: org.apache.wiki.WikiSession;
v = v.<org.apache.wiki.WikiSession: java.lang.String m_status>;
return v;
}
public javax.security.auth.Subject getSubject()
{
org.apache.wiki.WikiSession v;
javax.security.auth.Subject v;
v := @this: org.apache.wiki.WikiSession;
v = v.<org.apache.wiki.WikiSession: javax.security.auth.Subject m_subject>;
return v;
}
public static void removeWikiSession(org.apache.wiki.api.core.Engine, javax.servlet.http.HttpServletRequest)
{
javax.servlet.http.HttpSession v;
java.lang.ThreadLocal v;
javax.servlet.http.HttpServletRequest v;
org.apache.wiki.auth.SessionMonitor v;
org.apache.wiki.api.core.Engine v;
java.lang.IllegalArgumentException v;
v := @parameter: org.apache.wiki.api.core.Engine;
v := @parameter: javax.servlet.http.HttpServletRequest;
if v == null goto label;
if v != null goto label;
label:
v = new java.lang.IllegalArgumentException;
specialinvoke v.<java.lang.IllegalArgumentException: void <init>(java.lang.String)>("Request or engine cannot be null.");
throw v;
label:
v = staticinvoke <org.apache.wiki.auth.SessionMonitor: org.apache.wiki.auth.SessionMonitor getInstance(org.apache.wiki.api.core.Engine)>(v);
v = interfaceinvoke v.<javax.servlet.http.HttpServletRequest: javax.servlet.http.HttpSession getSession()>();
virtualinvoke v.<org.apache.wiki.auth.SessionMonitor: void remove(javax.servlet.http.HttpSession)>(v);
v = <org.apache.wiki.WikiSession: java.lang.ThreadLocal c_guestSession>;
virtualinvoke v.<java.lang.ThreadLocal: void remove()>();
return;
}
public static org.apache.wiki.api.core.Session getWikiSession(org.apache.wiki.api.core.Engine, javax.servlet.http.HttpServletRequest)
{
javax.servlet.http.HttpSession v;
javax.servlet.http.HttpServletRequest v;
org.apache.logging.log4j.Logger v;
org.apache.wiki.auth.SessionMonitor v;
org.apache.wiki.api.core.Engine v;
java.util.Locale v;
org.apache.wiki.api.core.Session v, v;
v := @parameter: org.apache.wiki.api.core.Engine;
v := @parameter: javax.servlet.http.HttpServletRequest;
if v != null goto label;
v = <org.apache.wiki.WikiSession: org.apache.logging.log4j.Logger LOG>;
interfaceinvoke v.<org.apache.logging.log4j.Logger: void debug(java.lang.String)>("Looking up WikiSession for NULL HttpRequest: returning guestSession()");
v = staticinvoke <org.apache.wiki.WikiSession: org.apache.wiki.api.core.Session staticGuestSession(org.apache.wiki.api.core.Engine)>(v);
return v;
label:
v = interfaceinvoke v.<javax.servlet.http.HttpServletRequest: javax.servlet.http.HttpSession getSession()>();
v = staticinvoke <org.apache.wiki.auth.SessionMonitor: org.apache.wiki.auth.SessionMonitor getInstance(org.apache.wiki.api.core.Engine)>(v);
v = virtualinvoke v.<org.apache.wiki.auth.SessionMonitor: org.apache.wiki.api.core.Session find(javax.servlet.http.HttpSession)>(v);
v.<org.apache.wiki.WikiSession: org.apache.wiki.api.core.Engine m_engine> = v;
v = interfaceinvoke v.<javax.servlet.http.HttpServletRequest: java.util.Locale getLocale()>();
v.<org.apache.wiki.WikiSession: java.util.Locale m_cachedLocale> = v;
return v;
}
public static org.apache.wiki.api.core.Session guestSession(org.apache.wiki.api.core.Engine)
{
org.apache.wiki.api.core.Engine v;
org.apache.wiki.WikiSession v;
java.lang.Object v, v, v;
java.lang.String v;
java.util.UUID v;
v := @parameter: org.apache.wiki.api.core.Engine;
v = new org.apache.wiki.WikiSession;
specialinvoke v.<org.apache.wiki.WikiSession: void <init>()>();
v.<org.apache.wiki.WikiSession: org.apache.wiki.api.core.Engine m_engine> = v;
virtualinvoke v.<org.apache.wiki.WikiSession: void invalidate()>();
v = staticinvoke <java.util.UUID: java.util.UUID randomUUID()>();
v = virtualinvoke v.<java.util.UUID: java.lang.String toString()>();
v.<org.apache.wiki.WikiSession: java.lang.String antiCsrfToken> = v;
v = interfaceinvoke v.<org.apache.wiki.api.core.Engine: java.lang.Object getManager(java.lang.Class)>(class "Lorg/apache/wiki/auth/authorize/GroupManager;");
v = interfaceinvoke v.<org.apache.wiki.api.core.Engine: java.lang.Object getManager(java.lang.Class)>(class "Lorg/apache/wiki/auth/AuthenticationManager;");
v = interfaceinvoke v.<org.apache.wiki.api.core.Engine: java.lang.Object getManager(java.lang.Class)>(class "Lorg/apache/wiki/auth/UserManager;");
interfaceinvoke v.<org.apache.wiki.auth.authorize.GroupManager: void addWikiEventListener(org.apache.wiki.event.WikiEventListener)>(v);
interfaceinvoke v.<org.apache.wiki.auth.AuthenticationManager: void addWikiEventListener(org.apache.wiki.event.WikiEventListener)>(v);
interfaceinvoke v.<org.apache.wiki.auth.UserManager: void addWikiEventListener(org.apache.wiki.event.WikiEventListener)>(v);
return v;
}
private static org.apache.wiki.api.core.Session staticGuestSession(org.apache.wiki.api.core.Engine)
{
java.lang.ThreadLocal v, v;
org.apache.wiki.api.core.Engine v;
java.lang.Object v;
v := @parameter: org.apache.wiki.api.core.Engine;
v = <org.apache.wiki.WikiSession: java.lang.ThreadLocal c_guestSession>;
v = virtualinvoke v.<java.lang.ThreadLocal: java.lang.Object get()>();
if v != null goto label;
v = staticinvoke <org.apache.wiki.WikiSession: org.apache.wiki.api.core.Session guestSession(org.apache.wiki.api.core.Engine)>(v);
v = <org.apache.wiki.WikiSession: java.lang.ThreadLocal c_guestSession>;
virtualinvoke v.<java.lang.ThreadLocal: void set(java.lang.Object)>(v);
label:
return v;
}
public static int sessions(org.apache.wiki.api.core.Engine)
{
int v;
org.apache.wiki.auth.SessionMonitor v;
org.apache.wiki.api.core.Engine v;
v := @parameter: org.apache.wiki.api.core.Engine;
v = staticinvoke <org.apache.wiki.auth.SessionMonitor: org.apache.wiki.auth.SessionMonitor getInstance(org.apache.wiki.api.core.Engine)>(v);
v = virtualinvoke v.<org.apache.wiki.auth.SessionMonitor: int sessions()>();
return v;
}
public static java.security.Principal[] userPrincipals(org.apache.wiki.api.core.Engine)
{
java.security.Principal[] v;
org.apache.wiki.auth.SessionMonitor v;
org.apache.wiki.api.core.Engine v;
v := @parameter: org.apache.wiki.api.core.Engine;
v = staticinvoke <org.apache.wiki.auth.SessionMonitor: org.apache.wiki.auth.SessionMonitor getInstance(org.apache.wiki.api.core.Engine)>(v);
v = virtualinvoke v.<org.apache.wiki.auth.SessionMonitor: java.security.Principal[] userPrincipals()>();
return v;
}
static void <clinit>()
{
java.lang.ThreadLocal v;
org.apache.logging.log4j.Logger v;
v = staticinvoke <org.apache.logging.log4j.LogManager: org.apache.logging.log4j.Logger getLogger(java.lang.Class)>(class "Lorg/apache/wiki/WikiSession;");
<org.apache.wiki.WikiSession: org.apache.logging.log4j.Logger LOG> = v;
v = new java.lang.ThreadLocal;
specialinvoke v.<java.lang.ThreadLocal: void <init>()>();
<org.apache.wiki.WikiSession: java.lang.ThreadLocal c_guestSession> = v;
return;
}
}