public final class org.apache.wiki.auth.SecurityVerifier extends java.lang.Object
{
private final org.apache.wiki.api.core.Engine m_engine;
private boolean m_isSecurityPolicyConfigured;
private java.security.Principal[] m_policyPrincipals;
private final org.apache.wiki.api.core.Session m_session;
public static final java.lang.String ERROR;
public static final java.lang.String WARNING;
public static final java.lang.String INFO;
public static final java.lang.String ERROR_POLICY;
public static final java.lang.String WARNING_POLICY;
public static final java.lang.String INFO_POLICY;
public static final java.lang.String ERROR_JAAS;
public static final java.lang.String WARNING_JAAS;
public static final java.lang.String ERROR_ROLES;
public static final java.lang.String INFO_ROLES;
public static final java.lang.String ERROR_DB;
public static final java.lang.String WARNING_DB;
public static final java.lang.String INFO_DB;
public static final java.lang.String ERROR_GROUPS;
public static final java.lang.String WARNING_GROUPS;
public static final java.lang.String INFO_GROUPS;
public static final java.lang.String INFO_JAAS;
private static final java.lang.String[] CONTAINER_ACTIONS;
private static final java.lang.String[] CONTAINER_JSPS;
private static final java.lang.String BG_GREEN;
private static final java.lang.String BG_RED;
private static final org.apache.logging.log4j.Logger LOG;
public void <init>(org.apache.wiki.api.core.Engine, org.apache.wiki.api.core.Session)
{
java.lang.Throwable v;
java.security.Principal[] v;
org.apache.wiki.auth.SecurityVerifier v;
org.apache.wiki.api.core.Engine v;
org.apache.wiki.api.core.Session v, v, v;
java.lang.String v;
v := @this: org.apache.wiki.auth.SecurityVerifier;
v := @parameter: org.apache.wiki.api.core.Engine;
v := @parameter: org.apache.wiki.api.core.Session;
specialinvoke v.<java.lang.Object: void <init>()>();
v = newarray (java.security.Principal)[0];
v.<org.apache.wiki.auth.SecurityVerifier: java.security.Principal[] m_policyPrincipals> = v;
v.<org.apache.wiki.auth.SecurityVerifier: org.apache.wiki.api.core.Engine m_engine> = v;
v.<org.apache.wiki.auth.SecurityVerifier: org.apache.wiki.api.core.Session m_session> = v;
v = v.<org.apache.wiki.auth.SecurityVerifier: org.apache.wiki.api.core.Session m_session>;
interfaceinvoke v.<org.apache.wiki.api.core.Session: void clearMessages()>();
virtualinvoke v.<org.apache.wiki.auth.SecurityVerifier: void verifyJaas()>();
virtualinvoke v.<org.apache.wiki.auth.SecurityVerifier: void verifyPolicy()>();
label:
virtualinvoke v.<org.apache.wiki.auth.SecurityVerifier: void verifyPolicyAndContainerRoles()>();
label:
goto label;
label:
v := @caughtexception;
v = v.<org.apache.wiki.auth.SecurityVerifier: org.apache.wiki.api.core.Session m_session>;
v = virtualinvoke v.<org.apache.wiki.api.exceptions.WikiException: java.lang.String getMessage()>();
interfaceinvoke v.<org.apache.wiki.api.core.Session: void addMessage(java.lang.String,java.lang.String)>("Error.Roles", v);
label:
virtualinvoke v.<org.apache.wiki.auth.SecurityVerifier: void verifyGroupDatabase()>();
virtualinvoke v.<org.apache.wiki.auth.SecurityVerifier: void verifyUserDatabase()>();
return;
catch org.apache.wiki.api.exceptions.WikiException from label to label with label;
}
public java.security.Principal[] policyPrincipals()
{
java.security.Principal[] v;
org.apache.wiki.auth.SecurityVerifier v;
v := @this: org.apache.wiki.auth.SecurityVerifier;
v = v.<org.apache.wiki.auth.SecurityVerifier: java.security.Principal[] m_policyPrincipals>;
return v;
}
public java.lang.String policyRoleTable()
{
org.apache.wiki.auth.permissions.WikiPermission v;
java.lang.StringBuilder v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v;
java.lang.String v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v;
org.apache.wiki.api.core.Engine v;
org.apache.wiki.auth.permissions.GroupPermission v, v;
java.security.Principal[] v;
org.apache.wiki.auth.permissions.PagePermission v;
java.security.Principal v, v, v, v, v;
float v;
org.apache.wiki.auth.SecurityVerifier v;
java.lang.String[] v, v, v, v, v;
int v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v;
org.apache.wiki.auth.permissions.AllPermission v;
java.lang.Class v;
v := @this: org.apache.wiki.auth.SecurityVerifier;
v = v.<org.apache.wiki.auth.SecurityVerifier: java.security.Principal[] m_policyPrincipals>;
v = v.<org.apache.wiki.auth.SecurityVerifier: org.apache.wiki.api.core.Engine m_engine>;
v = interfaceinvoke v.<org.apache.wiki.api.core.Engine: java.lang.String getApplicationName()>();
v = newarray (java.lang.String)[4];
v[0] = "Main";
v[1] = "Index";
v[2] = "GroupTest";
v[3] = "GroupAdmin";
v = newarray (java.lang.String)[5];
v[0] = "view";
v[1] = "edit";
v[2] = "modify";
v[3] = "rename";
v[4] = "delete";
v = newarray (java.lang.String)[3];
v[0] = "Admin";
v[1] = "TestGroup";
v[2] = "Foo";
v = newarray (java.lang.String)[5];
v[0] = "view";
v[1] = "edit";
v[2] = null;
v[3] = null;
v[4] = "delete";
v = lengthof v;
v = lengthof v;
if v <= 0 goto label;
if v <= 0 goto label;
v = v * v;
v = 67.0F / v;
v = dynamicinvoke "makeConcatWithConstants" <java.lang.String (float)>(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[])>("\u0001%");
goto label;
label:
v = "67%";
label:
v = new java.lang.StringBuilder;
specialinvoke v.<java.lang.StringBuilder: void <init>()>();
virtualinvoke v.<java.lang.StringBuilder: java.lang.StringBuilder append(java.lang.String)>("<table class=\"wikitable\" border=\"1\">\n");
virtualinvoke v.<java.lang.StringBuilder: java.lang.StringBuilder append(java.lang.String)>("  <colgroup span=\"1\" width=\"33%\"/>\n");
v = virtualinvoke v.<java.lang.StringBuilder: java.lang.StringBuilder append(java.lang.String)>("  <colgroup span=\"");
v = v * v;
v = virtualinvoke v.<java.lang.StringBuilder: java.lang.StringBuilder append(int)>(v);
v = virtualinvoke v.<java.lang.StringBuilder: java.lang.StringBuilder append(java.lang.String)>("\" width=\"");
v = virtualinvoke v.<java.lang.StringBuilder: java.lang.StringBuilder append(java.lang.String)>(v);
virtualinvoke v.<java.lang.StringBuilder: java.lang.StringBuilder append(java.lang.String)>("\" align=\"center\"/>\n");
virtualinvoke v.<java.lang.StringBuilder: java.lang.StringBuilder append(java.lang.String)>("  <tr>\n");
virtualinvoke v.<java.lang.StringBuilder: java.lang.StringBuilder append(java.lang.String)>("    <th rowspan=\"2\" valign=\"bottom\">Permission</th>\n");
v = lengthof v;
v = 0;
label:
if v >= v goto label;
v = v[v];
v = virtualinvoke v.<java.lang.StringBuilder: java.lang.StringBuilder append(java.lang.String)>("    <th colspan=\"");
v = virtualinvoke v.<java.lang.StringBuilder: java.lang.StringBuilder append(int)>(v);
v = virtualinvoke v.<java.lang.StringBuilder: java.lang.StringBuilder append(java.lang.String)>("\" title=\"");
v = virtualinvoke v.<java.lang.Object: java.lang.Class getClass()>();
v = virtualinvoke v.<java.lang.Class: java.lang.String getName()>();
v = virtualinvoke v.<java.lang.StringBuilder: java.lang.StringBuilder append(java.lang.String)>(v);
v = virtualinvoke v.<java.lang.StringBuilder: java.lang.StringBuilder append(java.lang.String)>("\">");
v = interfaceinvoke v.<java.security.Principal: java.lang.String getName()>();
v = virtualinvoke v.<java.lang.StringBuilder: java.lang.StringBuilder append(java.lang.String)>(v);
virtualinvoke v.<java.lang.StringBuilder: java.lang.StringBuilder append(java.lang.String)>("</th>\n");
v = v + 1;
goto label;
label:
virtualinvoke v.<java.lang.StringBuilder: java.lang.StringBuilder append(java.lang.String)>("  </tr>\n");
virtualinvoke v.<java.lang.StringBuilder: java.lang.StringBuilder append(java.lang.String)>("  <tr>\n");
v = 0;
label:
if v >= v goto label;
v = lengthof v;
v = 0;
label:
if v >= v goto label;
v = v[v];
v = virtualinvoke v.<java.lang.String: java.lang.String substring(int,int)>(0, 1);
v = virtualinvoke v.<java.lang.StringBuilder: java.lang.StringBuilder append(java.lang.String)>("    <th title=\"");
v = virtualinvoke v.<java.lang.StringBuilder: java.lang.StringBuilder append(java.lang.String)>(v);
v = virtualinvoke v.<java.lang.StringBuilder: java.lang.StringBuilder append(java.lang.String)>("\">");
v = virtualinvoke v.<java.lang.StringBuilder: java.lang.StringBuilder append(java.lang.String)>(v);
virtualinvoke v.<java.lang.StringBuilder: java.lang.StringBuilder append(java.lang.String)>("</th>\n");
v = v + 1;
goto label;
label:
v = v + 1;
goto label;
label:
virtualinvoke v.<java.lang.StringBuilder: java.lang.StringBuilder append(java.lang.String)>("  </tr>\n");
v = lengthof v;
v = 0;
label:
if v >= v goto label;
v = v[v];
virtualinvoke v.<java.lang.StringBuilder: java.lang.StringBuilder append(java.lang.String)>("  <tr>\n");
v = virtualinvoke v.<java.lang.StringBuilder: java.lang.StringBuilder append(java.lang.String)>("    <td>PagePermission \"");
v = virtualinvoke v.<java.lang.StringBuilder: java.lang.StringBuilder append(java.lang.String)>(v);
v = virtualinvoke v.<java.lang.StringBuilder: java.lang.StringBuilder append(java.lang.String)>(":");
v = virtualinvoke v.<java.lang.StringBuilder: java.lang.StringBuilder append(java.lang.String)>(v);
virtualinvoke v.<java.lang.StringBuilder: java.lang.StringBuilder append(java.lang.String)>("\"</td>\n");
v = lengthof v;
v = 0;
label:
if v >= v goto label;
v = v[v];
v = lengthof v;
v = 0;
label:
if v >= v goto label;
v = v[v];
v = dynamicinvoke "makeConcatWithConstants" <java.lang.String (java.lang.String,java.lang.String)>(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[])>("\u0001:\u0001");
v = staticinvoke <org.apache.wiki.auth.permissions.PermissionFactory: org.apache.wiki.auth.permissions.PagePermission getPagePermission(java.lang.String,java.lang.String)>(v, v);
v = specialinvoke v.<org.apache.wiki.auth.SecurityVerifier: java.lang.String printPermissionTest(java.security.Permission,java.security.Principal,int)>(v, v, 1);
virtualinvoke v.<java.lang.StringBuilder: java.lang.StringBuilder append(java.lang.String)>(v);
v = v + 1;
goto label;
label:
v = v + 1;
goto label;
label:
virtualinvoke v.<java.lang.StringBuilder: java.lang.StringBuilder append(java.lang.String)>("  </tr>\n");
v = v + 1;
goto label;
label:
v = lengthof v;
v = 0;
label:
if v >= v goto label;
v = v[v];
virtualinvoke v.<java.lang.StringBuilder: java.lang.StringBuilder append(java.lang.String)>("  <tr>\n");
v = virtualinvoke v.<java.lang.StringBuilder: java.lang.StringBuilder append(java.lang.String)>("    <td>GroupPermission \"");
v = virtualinvoke v.<java.lang.StringBuilder: java.lang.StringBuilder append(java.lang.String)>(v);
v = virtualinvoke v.<java.lang.StringBuilder: java.lang.StringBuilder append(java.lang.String)>(":");
v = virtualinvoke v.<java.lang.StringBuilder: java.lang.StringBuilder append(java.lang.String)>(v);
virtualinvoke v.<java.lang.StringBuilder: java.lang.StringBuilder append(java.lang.String)>("\"</td>\n");
v = lengthof v;
v = 0;
label:
if v >= v goto label;
v = v[v];
v = lengthof v;
v = 0;
label:
if v >= v goto label;
v = v[v];
v = null;
if v == null goto label;
v = new org.apache.wiki.auth.permissions.GroupPermission;
v = dynamicinvoke "makeConcatWithConstants" <java.lang.String (java.lang.String,java.lang.String)>(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[])>("\u0001:\u0001");
specialinvoke v.<org.apache.wiki.auth.permissions.GroupPermission: void <init>(java.lang.String,java.lang.String)>(v, v);
v = v;
label:
v = specialinvoke v.<org.apache.wiki.auth.SecurityVerifier: java.lang.String printPermissionTest(java.security.Permission,java.security.Principal,int)>(v, v, 1);
virtualinvoke v.<java.lang.StringBuilder: java.lang.StringBuilder append(java.lang.String)>(v);
v = v + 1;
goto label;
label:
v = v + 1;
goto label;
label:
virtualinvoke v.<java.lang.StringBuilder: java.lang.StringBuilder append(java.lang.String)>("  </tr>\n");
v = v + 1;
goto label;
label:
v = newarray (java.lang.String)[5];
v[0] = "createGroups";
v[1] = "createPages";
v[2] = "login";
v[3] = "editPreferences";
v[4] = "editProfile";
v = lengthof v;
v = 0;
label:
if v >= v goto label;
v = v[v];
virtualinvoke v.<java.lang.StringBuilder: java.lang.StringBuilder append(java.lang.String)>("  <tr>\n");
v = virtualinvoke v.<java.lang.StringBuilder: java.lang.StringBuilder append(java.lang.String)>("    <td>WikiPermission \"");
v = virtualinvoke v.<java.lang.StringBuilder: java.lang.StringBuilder append(java.lang.String)>(v);
v = virtualinvoke v.<java.lang.StringBuilder: java.lang.StringBuilder append(java.lang.String)>("\",\"");
v = virtualinvoke v.<java.lang.StringBuilder: java.lang.StringBuilder append(java.lang.String)>(v);
virtualinvoke v.<java.lang.StringBuilder: java.lang.StringBuilder append(java.lang.String)>("\"</td>\n");
v = lengthof v;
v = 0;
label:
if v >= v goto label;
v = v[v];
v = new org.apache.wiki.auth.permissions.WikiPermission;
specialinvoke v.<org.apache.wiki.auth.permissions.WikiPermission: void <init>(java.lang.String,java.lang.String)>(v, v);
v = specialinvoke v.<org.apache.wiki.auth.SecurityVerifier: java.lang.String printPermissionTest(java.security.Permission,java.security.Principal,int)>(v, v, v);
virtualinvoke v.<java.lang.StringBuilder: java.lang.StringBuilder append(java.lang.String)>(v);
v = v + 1;
goto label;
label:
virtualinvoke v.<java.lang.StringBuilder: java.lang.StringBuilder append(java.lang.String)>("  </tr>\n");
v = v + 1;
goto label;
label:
virtualinvoke v.<java.lang.StringBuilder: java.lang.StringBuilder append(java.lang.String)>("  <tr>\n");
v = virtualinvoke v.<java.lang.StringBuilder: java.lang.StringBuilder append(java.lang.String)>("    <td>AllPermission \"");
v = virtualinvoke v.<java.lang.StringBuilder: java.lang.StringBuilder append(java.lang.String)>(v);
virtualinvoke v.<java.lang.StringBuilder: java.lang.StringBuilder append(java.lang.String)>("\"</td>\n");
v = lengthof v;
v = 0;
label:
if v >= v goto label;
v = v[v];
v = new org.apache.wiki.auth.permissions.AllPermission;
specialinvoke v.<org.apache.wiki.auth.permissions.AllPermission: void <init>(java.lang.String)>(v);
v = specialinvoke v.<org.apache.wiki.auth.SecurityVerifier: java.lang.String printPermissionTest(java.security.Permission,java.security.Principal,int)>(v, v, v);
virtualinvoke v.<java.lang.StringBuilder: java.lang.StringBuilder append(java.lang.String)>(v);
v = v + 1;
goto label;
label:
virtualinvoke v.<java.lang.StringBuilder: java.lang.StringBuilder append(java.lang.String)>("  </tr>\n");
virtualinvoke v.<java.lang.StringBuilder: java.lang.StringBuilder append(java.lang.String)>("</table>");
v = virtualinvoke v.<java.lang.StringBuilder: java.lang.String toString()>();
return v;
}
private java.lang.String printPermissionTest(java.security.Permission, java.security.Principal, int)
{
org.apache.wiki.auth.SecurityVerifier v;
int v;
java.lang.String v, v, v, v, v, v, v, v, v;
boolean v;
java.security.Principal v;
java.security.Permission v;
java.lang.Class v, v;
java.lang.StringBuilder v, v, v, v, v;
v := @this: org.apache.wiki.auth.SecurityVerifier;
v := @parameter: java.security.Permission;
v := @parameter: java.security.Principal;
v := @parameter: int;
v = new java.lang.StringBuilder;
specialinvoke v.<java.lang.StringBuilder: void <init>()>();
if v != null goto label;
v = virtualinvoke v.<java.lang.StringBuilder: java.lang.StringBuilder append(java.lang.String)>("    <td colspan=\"");
v = virtualinvoke v.<java.lang.StringBuilder: java.lang.StringBuilder append(int)>(v);
virtualinvoke v.<java.lang.StringBuilder: java.lang.StringBuilder append(java.lang.String)>("\" align=\"center\" title=\"N/A\">");
virtualinvoke v.<java.lang.StringBuilder: java.lang.StringBuilder append(java.lang.String)>("&nbsp;</td>\n");
goto label;
label:
v = virtualinvoke v.<org.apache.wiki.auth.SecurityVerifier: boolean verifyStaticPermission(java.security.Principal,java.security.Permission)>(v, v);
v = virtualinvoke v.<java.lang.StringBuilder: java.lang.StringBuilder append(java.lang.String)>("    <td colspan=\"");
v = virtualinvoke v.<java.lang.StringBuilder: java.lang.StringBuilder append(int)>(v);
virtualinvoke v.<java.lang.StringBuilder: java.lang.StringBuilder append(java.lang.String)>("\" align=\"center\" title=\"");
if v == 0 goto label;
v = "ALLOW: ";
goto label;
label:
v = "DENY: ";
label:
virtualinvoke v.<java.lang.StringBuilder: java.lang.StringBuilder append(java.lang.String)>(v);
v = virtualinvoke v.<java.lang.Object: java.lang.Class getClass()>();
v = virtualinvoke v.<java.lang.Class: java.lang.String getName()>();
virtualinvoke v.<java.lang.StringBuilder: java.lang.StringBuilder append(java.lang.String)>(v);
virtualinvoke v.<java.lang.StringBuilder: java.lang.StringBuilder append(java.lang.String)>(" &quot;");
v = virtualinvoke v.<java.security.Permission: java.lang.String getName()>();
virtualinvoke v.<java.lang.StringBuilder: java.lang.StringBuilder append(java.lang.String)>(v);
virtualinvoke v.<java.lang.StringBuilder: java.lang.StringBuilder append(java.lang.String)>("&quot;");
v = virtualinvoke v.<java.security.Permission: java.lang.String getName()>();
if v == null goto label;
virtualinvoke v.<java.lang.StringBuilder: java.lang.StringBuilder append(java.lang.String)>(",&quot;");
v = virtualinvoke v.<java.security.Permission: java.lang.String getActions()>();
virtualinvoke v.<java.lang.StringBuilder: java.lang.StringBuilder append(java.lang.String)>(v);
virtualinvoke v.<java.lang.StringBuilder: java.lang.StringBuilder append(java.lang.String)>("&quot;");
label:
virtualinvoke v.<java.lang.StringBuilder: java.lang.StringBuilder append(java.lang.String)>(" ");
v = virtualinvoke v.<java.lang.Object: java.lang.Class getClass()>();
v = virtualinvoke v.<java.lang.Class: java.lang.String getName()>();
virtualinvoke v.<java.lang.StringBuilder: java.lang.StringBuilder append(java.lang.String)>(v);
virtualinvoke v.<java.lang.StringBuilder: java.lang.StringBuilder append(java.lang.String)>(" &quot;");
v = interfaceinvoke v.<java.security.Principal: java.lang.String getName()>();
virtualinvoke v.<java.lang.StringBuilder: java.lang.StringBuilder append(java.lang.String)>(v);
virtualinvoke v.<java.lang.StringBuilder: java.lang.StringBuilder append(java.lang.String)>("&quot;");
virtualinvoke v.<java.lang.StringBuilder: java.lang.StringBuilder append(java.lang.String)>("\"");
if v == 0 goto label;
v = "bgcolor=\"#c0ffc0\">";
goto label;
label:
v = "bgcolor=\"#ffc0c0\">";
label:
virtualinvoke v.<java.lang.StringBuilder: java.lang.StringBuilder append(java.lang.String)>(v);
virtualinvoke v.<java.lang.StringBuilder: java.lang.StringBuilder append(java.lang.String)>("&nbsp;</td>\n");
label:
v = virtualinvoke v.<java.lang.StringBuilder: java.lang.String toString()>();
return v;
}
public java.lang.String containerRoleTable() throws org.apache.wiki.api.exceptions.WikiException
{
java.lang.IllegalStateException v;
boolean v, v, v, v, v, v, v;
java.security.Principal[] v;
java.security.Principal v, v;
java.lang.StringBuilder v, v, v, v, v, v, v, v, v, v;
org.apache.wiki.auth.Authorizer v;
org.apache.wiki.auth.SecurityVerifier v;
java.lang.String[] v, v, v;
int v, v, v, v, v, v, v;
java.lang.String v, v, v, v, v, v, v, v, v, v;
org.apache.wiki.auth.authorize.Role v;
org.apache.wiki.api.core.Engine v;
java.lang.Class v;
java.lang.Object v;
v := @this: org.apache.wiki.auth.SecurityVerifier;
v = v.<org.apache.wiki.auth.SecurityVerifier: 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/AuthorizationManager;");
v = interfaceinvoke v.<org.apache.wiki.auth.AuthorizationManager: org.apache.wiki.auth.Authorizer getAuthorizer()>();
v = v instanceof org.apache.wiki.auth.authorize.WebContainerAuthorizer;
if v != 0 goto label;
v = new java.lang.IllegalStateException;
specialinvoke v.<java.lang.IllegalStateException: void <init>(java.lang.String)>("Authorizer should be WebContainerAuthorizer");
throw v;
label:
v = new java.lang.StringBuilder;
specialinvoke v.<java.lang.StringBuilder: void <init>()>();
v = interfaceinvoke v.<org.apache.wiki.auth.Authorizer: java.security.Principal[] getRoles()>();
virtualinvoke v.<java.lang.StringBuilder: java.lang.StringBuilder append(java.lang.String)>("<table class=\"wikitable\" border=\"1\">\n");
virtualinvoke v.<java.lang.StringBuilder: java.lang.StringBuilder append(java.lang.String)>("<thead>\n");
virtualinvoke v.<java.lang.StringBuilder: java.lang.StringBuilder append(java.lang.String)>("  <tr>\n");
virtualinvoke v.<java.lang.StringBuilder: java.lang.StringBuilder append(java.lang.String)>("    <th rowspan=\"2\">Action</th>\n");
virtualinvoke v.<java.lang.StringBuilder: java.lang.StringBuilder append(java.lang.String)>("    <th rowspan=\"2\">Page</th>\n");
v = virtualinvoke v.<java.lang.StringBuilder: java.lang.StringBuilder append(java.lang.String)>("    <th colspan=\"");
v = lengthof v;
v = virtualinvoke v.<java.lang.StringBuilder: java.lang.StringBuilder append(int)>(v);
v = virtualinvoke v.<java.lang.StringBuilder: java.lang.StringBuilder append(int)>(1);
virtualinvoke v.<java.lang.StringBuilder: java.lang.StringBuilder append(java.lang.String)>("\">Roles</th>\n");
virtualinvoke v.<java.lang.StringBuilder: java.lang.StringBuilder append(java.lang.String)>("  </tr>\n");
virtualinvoke v.<java.lang.StringBuilder: java.lang.StringBuilder append(java.lang.String)>("  <tr>\n");
virtualinvoke v.<java.lang.StringBuilder: java.lang.StringBuilder append(java.lang.String)>("    <th>Anonymous</th>\n");
v = lengthof v;
v = 0;
label:
if v >= v goto label;
v = v[v];
v = virtualinvoke v.<java.lang.StringBuilder: java.lang.StringBuilder append(java.lang.String)>("    <th>");
v = interfaceinvoke v.<java.security.Principal: java.lang.String getName()>();
v = virtualinvoke v.<java.lang.StringBuilder: java.lang.StringBuilder append(java.lang.String)>(v);
virtualinvoke v.<java.lang.StringBuilder: java.lang.StringBuilder append(java.lang.String)>("</th>\n");
v = v + 1;
goto label;
label:
virtualinvoke v.<java.lang.StringBuilder: java.lang.StringBuilder append(java.lang.String)>("</tr>\n");
virtualinvoke v.<java.lang.StringBuilder: java.lang.StringBuilder append(java.lang.String)>("</thead>\n");
virtualinvoke v.<java.lang.StringBuilder: java.lang.StringBuilder append(java.lang.String)>("<tbody>\n");
v = 0;
label:
v = <org.apache.wiki.auth.SecurityVerifier: java.lang.String[] CONTAINER_ACTIONS>;
v = lengthof v;
if v >= v goto label;
v = <org.apache.wiki.auth.SecurityVerifier: java.lang.String[] CONTAINER_ACTIONS>;
v = v[v];
v = <org.apache.wiki.auth.SecurityVerifier: java.lang.String[] CONTAINER_JSPS>;
v = v[v];
v = <org.apache.wiki.auth.authorize.Role: org.apache.wiki.auth.authorize.Role ALL>;
v = virtualinvoke v.<org.apache.wiki.auth.authorize.WebContainerAuthorizer: boolean isConstrained(java.lang.String,org.apache.wiki.auth.authorize.Role)>(v, v);
if v != 0 goto label;
v = 1;
goto label;
label:
v = 0;
label:
v = v;
virtualinvoke v.<java.lang.StringBuilder: java.lang.StringBuilder append(java.lang.String)>("  <tr>\n");
v = virtualinvoke v.<java.lang.StringBuilder: java.lang.StringBuilder append(java.lang.String)>("    <td>");
v = virtualinvoke v.<java.lang.StringBuilder: java.lang.StringBuilder append(java.lang.String)>(v);
virtualinvoke v.<java.lang.StringBuilder: java.lang.StringBuilder append(java.lang.String)>("</td>\n");
v = virtualinvoke v.<java.lang.StringBuilder: java.lang.StringBuilder append(java.lang.String)>("    <td>");
v = virtualinvoke v.<java.lang.StringBuilder: java.lang.StringBuilder append(java.lang.String)>(v);
virtualinvoke v.<java.lang.StringBuilder: java.lang.StringBuilder append(java.lang.String)>("</td>\n");
virtualinvoke v.<java.lang.StringBuilder: java.lang.StringBuilder append(java.lang.String)>("    <td title=\"");
if v == 0 goto label;
v = "ALLOW: ";
goto label;
label:
v = "DENY: ";
label:
virtualinvoke v.<java.lang.StringBuilder: java.lang.StringBuilder append(java.lang.String)>(v);
virtualinvoke v.<java.lang.StringBuilder: java.lang.StringBuilder append(java.lang.String)>(v);
virtualinvoke v.<java.lang.StringBuilder: java.lang.StringBuilder append(java.lang.String)>(" Anonymous");
virtualinvoke v.<java.lang.StringBuilder: java.lang.StringBuilder append(java.lang.String)>("\"");
if v == 0 goto label;
v = "bgcolor=\"#c0ffc0\">";
goto label;
label:
v = "bgcolor=\"#ffc0c0\">";
label:
virtualinvoke v.<java.lang.StringBuilder: java.lang.StringBuilder append(java.lang.String)>(v);
virtualinvoke v.<java.lang.StringBuilder: java.lang.StringBuilder append(java.lang.String)>("&nbsp;</td>\n");
v = lengthof v;
v = 0;
label:
if v >= v goto label;
v = v[v];
if v != 0 goto label;
v = virtualinvoke v.<org.apache.wiki.auth.authorize.WebContainerAuthorizer: boolean isConstrained(java.lang.String,org.apache.wiki.auth.authorize.Role)>(v, v);
if v == 0 goto label;
label:
v = 1;
goto label;
label:
v = 0;
label:
v = v;
virtualinvoke v.<java.lang.StringBuilder: java.lang.StringBuilder append(java.lang.String)>("    <td title=\"");
if v == 0 goto label;
v = "ALLOW: ";
goto label;
label:
v = "DENY: ";
label:
virtualinvoke v.<java.lang.StringBuilder: java.lang.StringBuilder append(java.lang.String)>(v);
virtualinvoke v.<java.lang.StringBuilder: java.lang.StringBuilder append(java.lang.String)>(v);
virtualinvoke v.<java.lang.StringBuilder: java.lang.StringBuilder append(java.lang.String)>(" ");
v = virtualinvoke v.<java.lang.Object: java.lang.Class getClass()>();
v = virtualinvoke v.<java.lang.Class: java.lang.String getName()>();
virtualinvoke v.<java.lang.StringBuilder: java.lang.StringBuilder append(java.lang.String)>(v);
virtualinvoke v.<java.lang.StringBuilder: java.lang.StringBuilder append(java.lang.String)>(" &quot;");
v = interfaceinvoke v.<java.security.Principal: java.lang.String getName()>();
virtualinvoke v.<java.lang.StringBuilder: java.lang.StringBuilder append(java.lang.String)>(v);
virtualinvoke v.<java.lang.StringBuilder: java.lang.StringBuilder append(java.lang.String)>("&quot;");
virtualinvoke v.<java.lang.StringBuilder: java.lang.StringBuilder append(java.lang.String)>("\"");
if v == 0 goto label;
v = "bgcolor=\"#c0ffc0\">";
goto label;
label:
v = "bgcolor=\"#ffc0c0\">";
label:
virtualinvoke v.<java.lang.StringBuilder: java.lang.StringBuilder append(java.lang.String)>(v);
virtualinvoke v.<java.lang.StringBuilder: java.lang.StringBuilder append(java.lang.String)>("&nbsp;</td>\n");
v = v + 1;
goto label;
label:
virtualinvoke v.<java.lang.StringBuilder: java.lang.StringBuilder append(java.lang.String)>("  </tr>\n");
v = v + 1;
goto label;
label:
virtualinvoke v.<java.lang.StringBuilder: java.lang.StringBuilder append(java.lang.String)>("</tbody>\n");
virtualinvoke v.<java.lang.StringBuilder: java.lang.StringBuilder append(java.lang.String)>("</table>\n");
v = virtualinvoke v.<java.lang.StringBuilder: java.lang.String toString()>();
return v;
}
public boolean isSecurityPolicyConfigured()
{
boolean v;
org.apache.wiki.auth.SecurityVerifier v;
v := @this: org.apache.wiki.auth.SecurityVerifier;
v = v.<org.apache.wiki.auth.SecurityVerifier: boolean m_isSecurityPolicyConfigured>;
return v;
}
public java.security.Principal[] webContainerRoles() throws org.apache.wiki.api.exceptions.WikiException
{
java.security.Principal[] v, v;
org.apache.wiki.api.core.Engine v;
org.apache.wiki.auth.SecurityVerifier v;
java.lang.Object v;
org.apache.wiki.auth.Authorizer v;
boolean v;
v := @this: org.apache.wiki.auth.SecurityVerifier;
v = v.<org.apache.wiki.auth.SecurityVerifier: 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/AuthorizationManager;");
v = interfaceinvoke v.<org.apache.wiki.auth.AuthorizationManager: org.apache.wiki.auth.Authorizer getAuthorizer()>();
v = v instanceof org.apache.wiki.auth.authorize.WebContainerAuthorizer;
if v == 0 goto label;
v = interfaceinvoke v.<org.apache.wiki.auth.Authorizer: java.security.Principal[] getRoles()>();
return v;
label:
v = newarray (java.security.Principal)[0];
return v;
}
void verifyPolicyAndContainerRoles() throws org.apache.wiki.api.exceptions.WikiException
{
org.apache.wiki.auth.SecurityVerifier v;
int v, v;
org.apache.wiki.api.core.Session v, v;
java.lang.String v, v;
boolean v, v, v, v;
java.security.Principal[] v, v;
java.security.Principal v;
org.apache.wiki.api.core.Engine v;
java.lang.Object v;
org.apache.wiki.auth.Authorizer v;
v := @this: org.apache.wiki.auth.SecurityVerifier;
v = v.<org.apache.wiki.auth.SecurityVerifier: 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/AuthorizationManager;");
v = interfaceinvoke v.<org.apache.wiki.auth.AuthorizationManager: org.apache.wiki.auth.Authorizer getAuthorizer()>();
v = interfaceinvoke v.<org.apache.wiki.auth.Authorizer: java.security.Principal[] getRoles()>();
v = 0;
v = v.<org.apache.wiki.auth.SecurityVerifier: java.security.Principal[] m_policyPrincipals>;
v = lengthof v;
v = 0;
label:
if v >= v goto label;
v = v[v];
v = v instanceof org.apache.wiki.auth.authorize.Role;
if v == 0 goto label;
v = staticinvoke <org.apache.commons.lang.ArrayUtils: boolean contains(java.lang.Object[],java.lang.Object)>(v, v);
v = staticinvoke <org.apache.wiki.auth.authorize.Role: boolean isBuiltInRole(org.apache.wiki.auth.authorize.Role)>(v);
if v != 0 goto label;
if v != 0 goto label;
v = v.<org.apache.wiki.auth.SecurityVerifier: org.apache.wiki.api.core.Session m_session>;
v = virtualinvoke v.<org.apache.wiki.auth.authorize.Role: 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[])>("Role \'\u0001\' is defined in security policy but not in web.xml.");
interfaceinvoke v.<org.apache.wiki.api.core.Session: void addMessage(java.lang.String,java.lang.String)>("Error.Roles", v);
v = 1;
label:
v = v + 1;
goto label;
label:
if v != 0 goto label;
v = v.<org.apache.wiki.auth.SecurityVerifier: org.apache.wiki.api.core.Session m_session>;
interfaceinvoke v.<org.apache.wiki.api.core.Session: void addMessage(java.lang.String,java.lang.String)>("Info.Roles", "Every non-standard role defined in the security policy was also found in web.xml.");
label:
return;
}
void verifyGroupDatabase()
{
org.apache.wiki.auth.SecurityVerifier v;
org.apache.wiki.auth.authorize.Group[] v, v, v;
long v;
int v, v, v;
org.apache.wiki.api.core.Session v, v, v, v, v, v, v, v, v;
java.lang.String v, v, v, v;
org.apache.wiki.auth.WikiPrincipal v, v;
org.apache.wiki.auth.authorize.GroupDatabase v;
org.apache.wiki.api.core.Engine v, v;
java.lang.Class v;
java.lang.Object v, v;
org.apache.wiki.auth.authorize.Group v;
v := @this: org.apache.wiki.auth.SecurityVerifier;
v = v.<org.apache.wiki.auth.SecurityVerifier: 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 = v.<org.apache.wiki.auth.SecurityVerifier: 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: org.apache.wiki.auth.authorize.GroupDatabase getGroupDatabase()>();
if v == null goto label;
if v != null goto label;
label:
if v != null goto label;
v = v.<org.apache.wiki.auth.SecurityVerifier: org.apache.wiki.api.core.Session m_session>;
interfaceinvoke v.<org.apache.wiki.api.core.Session: void addMessage(java.lang.String,java.lang.String)>("Error.GroupDatabase", "GroupManager is null; JSPWiki could not initialize it. Check the error logs.");
label:
if v != null goto label;
v = v.<org.apache.wiki.auth.SecurityVerifier: org.apache.wiki.api.core.Session m_session>;
interfaceinvoke v.<org.apache.wiki.api.core.Session: void addMessage(java.lang.String,java.lang.String)>("Error.GroupDatabase", "GroupDatabase is null; JSPWiki could not initialize it. Check the error logs.");
label:
return;
label:
v = v.<org.apache.wiki.auth.SecurityVerifier: org.apache.wiki.api.core.Session m_session>;
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[])>("GroupDatabase is of type \'\u0001\'. It appears to be initialized properly.");
interfaceinvoke v.<org.apache.wiki.api.core.Session: void addMessage(java.lang.String,java.lang.String)>("Info.GroupDatabase", v);
v = interfaceinvoke v.<org.apache.wiki.auth.authorize.GroupDatabase: org.apache.wiki.auth.authorize.Group[] groups()>();
v = lengthof v;
v = v.<org.apache.wiki.auth.SecurityVerifier: org.apache.wiki.api.core.Session m_session>;
v = dynamicinvoke "makeConcatWithConstants" <java.lang.String (int)>(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 group database contains \u groups.");
interfaceinvoke v.<org.apache.wiki.api.core.Session: void addMessage(java.lang.String,java.lang.String)>("Info.GroupDatabase", v);
v = staticinvoke <java.lang.System: long currentTimeMillis()>();
v = dynamicinvoke "makeConcatWithConstants" <java.lang.String (long)>(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[])>("TestGroup\u0001");
v = interfaceinvoke v.<org.apache.wiki.auth.authorize.GroupManager: org.apache.wiki.auth.authorize.Group parseGroup(java.lang.String,java.lang.String,boolean)>(v, "", 1);
v = new org.apache.wiki.auth.WikiPrincipal;
specialinvoke v.<org.apache.wiki.auth.WikiPrincipal: void <init>(java.lang.String)>("TestUser");
virtualinvoke v.<org.apache.wiki.auth.authorize.Group: boolean add(java.security.Principal)>(v);
v = new org.apache.wiki.auth.WikiPrincipal;
specialinvoke v.<org.apache.wiki.auth.WikiPrincipal: void <init>(java.lang.String)>("SecurityVerifier");
interfaceinvoke v.<org.apache.wiki.auth.authorize.GroupDatabase: void save(org.apache.wiki.auth.authorize.Group,java.security.Principal)>(v, v);
v = interfaceinvoke v.<org.apache.wiki.auth.authorize.GroupDatabase: org.apache.wiki.auth.authorize.Group[] groups()>();
v = lengthof v;
if v != v goto label;
v = v.<org.apache.wiki.auth.SecurityVerifier: org.apache.wiki.api.core.Session m_session>;
interfaceinvoke v.<org.apache.wiki.api.core.Session: void addMessage(java.lang.String,java.lang.String)>("Error.GroupDatabase", "Could not add a test group to the database.");
return;
label:
v = v.<org.apache.wiki.auth.SecurityVerifier: org.apache.wiki.api.core.Session m_session>;
interfaceinvoke v.<org.apache.wiki.api.core.Session: void addMessage(java.lang.String,java.lang.String)>("Info.GroupDatabase", "The group database allows new groups to be created, as it should.");
interfaceinvoke v.<org.apache.wiki.auth.authorize.GroupDatabase: void delete(org.apache.wiki.auth.authorize.Group)>(v);
v = interfaceinvoke v.<org.apache.wiki.auth.authorize.GroupDatabase: org.apache.wiki.auth.authorize.Group[] groups()>();
v = lengthof v;
if v == v goto label;
v = v.<org.apache.wiki.auth.SecurityVerifier: org.apache.wiki.api.core.Session m_session>;
interfaceinvoke v.<org.apache.wiki.api.core.Session: void addMessage(java.lang.String,java.lang.String)>("Error.GroupDatabase", "Could not delete a test group from the database.");
return;
label:
v = v.<org.apache.wiki.auth.SecurityVerifier: org.apache.wiki.api.core.Session m_session>;
interfaceinvoke v.<org.apache.wiki.api.core.Session: void addMessage(java.lang.String,java.lang.String)>("Info.GroupDatabase", "The group database allows groups to be deleted, as it should.");
v = v.<org.apache.wiki.auth.SecurityVerifier: org.apache.wiki.api.core.Session m_session>;
interfaceinvoke v.<org.apache.wiki.api.core.Session: void addMessage(java.lang.String,java.lang.String)>("Info.GroupDatabase", "The group database configuration looks fine.");
return;
}
void verifyJaas()
{
org.apache.wiki.auth.SecurityVerifier v;
org.apache.wiki.api.core.Session v, v, v, v, v;
java.lang.String v, v, v, v, v;
boolean v, v;
java.util.Properties v;
org.apache.wiki.api.core.Engine v;
java.lang.Class v, v;
java.lang.ClassNotFoundException v;
v := @this: org.apache.wiki.auth.SecurityVerifier;
v = v.<org.apache.wiki.auth.SecurityVerifier: org.apache.wiki.api.core.Engine m_engine>;
v = interfaceinvoke v.<org.apache.wiki.api.core.Engine: java.util.Properties getWikiProperties()>();
v = virtualinvoke v.<java.util.Properties: java.lang.String getProperty(java.lang.String)>("jspwiki.loginModule.class");
if v == null goto label;
v = virtualinvoke v.<java.lang.String: boolean isEmpty()>();
if v == 0 goto label;
label:
v = v.<org.apache.wiki.auth.SecurityVerifier: org.apache.wiki.api.core.Session m_session>;
interfaceinvoke v.<org.apache.wiki.api.core.Session: void addMessage(java.lang.String,java.lang.String)>("Error.Jaas", "The value of the \'jspwiki.loginModule.class\' property was null or blank. This is a fatal error. This value should be set to a valid LoginModule implementation on the classpath.");
return;
label:
v = null;
label:
v = v.<org.apache.wiki.auth.SecurityVerifier: org.apache.wiki.api.core.Session m_session>;
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 property \'jspwiki.loginModule.class\' specified the class \'\u.\'");
interfaceinvoke v.<org.apache.wiki.api.core.Session: void addMessage(java.lang.String,java.lang.String)>("Info.Jaas", v);
v = staticinvoke <java.lang.Class: java.lang.Class forName(java.lang.String)>(v);
label:
goto label;
label:
v := @caughtexception;
v = v.<org.apache.wiki.auth.SecurityVerifier: org.apache.wiki.api.core.Session m_session>;
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[])>("We could not find the the class \'\u0001\' on the classpath. This is fatal error.");
interfaceinvoke v.<org.apache.wiki.api.core.Session: void addMessage(java.lang.String,java.lang.String)>("Error.Jaas", v);
label:
v = class "Ljavax/security/auth/spi/LoginModule;";
v = virtualinvoke v.<java.lang.Class: boolean isAssignableFrom(java.lang.Class)>(v);
if v == 0 goto label;
v = v.<org.apache.wiki.auth.SecurityVerifier: org.apache.wiki.api.core.Session m_session>;
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[])>("We found the the class \'\u0001\' on the classpath, and it is a LoginModule implementation. Good!");
interfaceinvoke v.<org.apache.wiki.api.core.Session: void addMessage(java.lang.String,java.lang.String)>("Info.Jaas", v);
goto label;
label:
v = v.<org.apache.wiki.auth.SecurityVerifier: org.apache.wiki.api.core.Session m_session>;
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[])>("We found the the class \'\u0001\' on the classpath, but it does not seem to be LoginModule implementation! This is fatal error.");
interfaceinvoke v.<org.apache.wiki.api.core.Session: void addMessage(java.lang.String,java.lang.String)>("Error.Jaas", v);
label:
return;
catch java.lang.ClassNotFoundException from label to label with label;
}
java.io.File getFileFromProperty(java.lang.String)
{
java.net.URL v;
org.apache.wiki.auth.SecurityVerifier v;
java.lang.SecurityException v;
org.apache.wiki.api.core.Session v, v, v, v, v;
java.lang.String v, v, v, v, v, v, v, v, v, v, v, v, v;
boolean v, v, v;
java.net.MalformedURLException v;
java.io.File v;
v := @this: org.apache.wiki.auth.SecurityVerifier;
v := @parameter: java.lang.String;
label:
v = staticinvoke <java.lang.System: java.lang.String getProperty(java.lang.String)>(v);
if v != null goto label;
v = v.<org.apache.wiki.auth.SecurityVerifier: org.apache.wiki.api.core.Session m_session>;
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[])>("Error.\u0001");
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 system property \'\u0001\' is null.");
interfaceinvoke v.<org.apache.wiki.api.core.Session: void addMessage(java.lang.String,java.lang.String)>(v, v);
label:
return null;
label:
v = virtualinvoke v.<java.lang.String: boolean startsWith(java.lang.String)>("=");
if v == 0 goto label;
v = virtualinvoke v.<java.lang.String: java.lang.String substring(int)>(1);
label:
v = v.<org.apache.wiki.auth.SecurityVerifier: org.apache.wiki.api.core.Session m_session>;
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[])>("Info.\u0001");
v = dynamicinvoke "makeConcatWithConstants" <java.lang.String (java.lang.String,java.lang.String)>(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[])>("The system property \'\u0001\' is set to: \u.");
interfaceinvoke v.<org.apache.wiki.api.core.Session: void addMessage(java.lang.String,java.lang.String)>(v, v);
v = virtualinvoke v.<java.lang.String: boolean startsWith(java.lang.String)>("file:");
if v != 0 goto label;
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[])>("file:\u0001");
label:
v = new java.net.URL;
specialinvoke v.<java.net.URL: void <init>(java.lang.String)>(v);
v = new java.io.File;
v = virtualinvoke v.<java.net.URL: java.lang.String getPath()>();
specialinvoke v.<java.io.File: void <init>(java.lang.String)>(v);
v = virtualinvoke v.<java.io.File: boolean exists()>();
if v == 0 goto label;
v = v.<org.apache.wiki.auth.SecurityVerifier: org.apache.wiki.api.core.Session m_session>;
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[])>("Info.\u0001");
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[])>("File \'\u0001\' exists in the filesystem.");
interfaceinvoke v.<org.apache.wiki.api.core.Session: void addMessage(java.lang.String,java.lang.String)>(v, v);
label:
return v;
label:
v := @caughtexception;
label:
v = v.<org.apache.wiki.auth.SecurityVerifier: org.apache.wiki.api.core.Session m_session>;
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[])>("Error.\u0001");
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[])>("File \'\u0001\' doesn\'t seem to exist. This might be a problem.");
interfaceinvoke v.<org.apache.wiki.api.core.Session: void addMessage(java.lang.String,java.lang.String)>(v, v);
label:
return null;
label:
v := @caughtexception;
v = v.<org.apache.wiki.auth.SecurityVerifier: org.apache.wiki.api.core.Session m_session>;
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[])>("Error.\u0001");
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[])>("We could not read system property \'\u0001\'. This is probably because you are running with a security manager.");
interfaceinvoke v.<org.apache.wiki.api.core.Session: void addMessage(java.lang.String,java.lang.String)>(v, v);
return null;
catch java.net.MalformedURLException from label to label with label;
catch java.lang.SecurityException from label to label with label;
catch java.lang.SecurityException from label to label with label;
catch java.lang.SecurityException from label to label with label;
}
void verifyPolicy()
{
java.net.URL v;
org.apache.wiki.api.core.Session v, v, v, v, v, v;
boolean v, v;
java.security.Principal[] v, v;
java.security.KeyStore v;
java.util.List v, v;
java.lang.Object[] v;
org.apache.wiki.auth.SecurityVerifier v;
int v, v, v;
java.lang.String v, v, v, v;
java.util.LinkedHashSet v;
org.apache.wiki.auth.authorize.Role v, v, v, v;
java.util.Iterator v;
org.freshcookies.security.policy.PolicyReader v;
java.io.IOException v;
java.io.File v, v;
org.apache.wiki.api.core.Engine v;
java.security.ProtectionDomain[] v;
java.security.ProtectionDomain v;
java.lang.Object v;
v := @this: org.apache.wiki.auth.SecurityVerifier;
v = v.<org.apache.wiki.auth.SecurityVerifier: org.apache.wiki.api.core.Engine m_engine>;
v = interfaceinvoke v.<org.apache.wiki.api.core.Engine: java.net.URL findConfigFile(java.lang.String)>("jspwiki.policy");
v = virtualinvoke v.<java.net.URL: java.lang.String getPath()>();
v = virtualinvoke v.<java.lang.String: boolean startsWith(java.lang.String)>("file:");
if v == 0 goto label;
v = virtualinvoke v.<java.lang.String: java.lang.String substring(int)>(5);
label:
v = new java.io.File;
specialinvoke v.<java.io.File: void <init>(java.lang.String)>(v);
label:
v = new org.freshcookies.security.policy.PolicyReader;
specialinvoke v.<org.freshcookies.security.policy.PolicyReader: void <init>(java.io.File)>(v);
v = v.<org.apache.wiki.auth.SecurityVerifier: org.apache.wiki.api.core.Session m_session>;
v = virtualinvoke v.<org.freshcookies.security.policy.PolicyReader: java.io.File getFile()>();
v = dynamicinvoke "makeConcatWithConstants" <java.lang.String (java.io.File)>(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 security policy \'\u0001\' exists.");
interfaceinvoke v.<org.apache.wiki.api.core.Session: void addMessage(java.lang.String,java.lang.String)>("Info.Policy", v);
v = virtualinvoke v.<org.freshcookies.security.policy.PolicyReader: java.security.KeyStore getKeyStore()>();
if v != null goto label;
v = v.<org.apache.wiki.auth.SecurityVerifier: org.apache.wiki.api.core.Session m_session>;
interfaceinvoke v.<org.apache.wiki.api.core.Session: void addMessage(java.lang.String,java.lang.String)>("Warning.Policy", "Policy file does not have a keystore... at least not one that we can locate. If your policy file does not contain any \'signedBy\' blocks, this is probably ok.");
goto label;
label:
v = v.<org.apache.wiki.auth.SecurityVerifier: org.apache.wiki.api.core.Session m_session>;
interfaceinvoke v.<org.apache.wiki.api.core.Session: void addMessage(java.lang.String,java.lang.String)>("Info.Policy", "The security policy specifies a keystore, and we were able to locate it in the filesystem.");
label:
virtualinvoke v.<org.freshcookies.security.policy.PolicyReader: void read()>();
v = virtualinvoke v.<org.freshcookies.security.policy.PolicyReader: java.util.List getMessages()>();
v = interfaceinvoke v.<java.util.List: int size()>();
if v <= 0 goto label;
v = interfaceinvoke v.<java.util.List: java.util.Iterator iterator()>();
label:
v = interfaceinvoke v.<java.util.Iterator: boolean hasNext()>();
if v == 0 goto label;
v = interfaceinvoke v.<java.util.Iterator: java.lang.Object next()>();
v = v.<org.apache.wiki.auth.SecurityVerifier: org.apache.wiki.api.core.Session m_session>;
v = virtualinvoke v.<java.lang.Exception: java.lang.String getMessage()>();
interfaceinvoke v.<org.apache.wiki.api.core.Session: void addMessage(java.lang.String,java.lang.String)>("Error.Policy", v);
goto label;
label:
v = v.<org.apache.wiki.auth.SecurityVerifier: org.apache.wiki.api.core.Session m_session>;
interfaceinvoke v.<org.apache.wiki.api.core.Session: void addMessage(java.lang.String,java.lang.String)>("Info.Policy", "The security policy looks fine.");
v.<org.apache.wiki.auth.SecurityVerifier: boolean m_isSecurityPolicyConfigured> = 1;
label:
v = new java.util.LinkedHashSet;
specialinvoke v.<java.util.LinkedHashSet: void <init>()>();
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);
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);
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);
v = virtualinvoke v.<org.freshcookies.security.policy.PolicyReader: java.security.ProtectionDomain[] getProtectionDomains()>();
v = lengthof v;
v = 0;
label:
if v >= v goto label;
v = v[v];
v = virtualinvoke v.<java.security.ProtectionDomain: java.security.Principal[] getPrincipals()>();
v = staticinvoke <java.util.Arrays: java.util.List asList(java.lang.Object[])>(v);
interfaceinvoke v.<java.util.Set: boolean addAll(java.util.Collection)>(v);
v = v + 1;
goto label;
label:
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.SecurityVerifier: java.security.Principal[] m_policyPrincipals> = v;
label:
goto label;
label:
v := @caughtexception;
v = v.<org.apache.wiki.auth.SecurityVerifier: org.apache.wiki.api.core.Session m_session>;
v = virtualinvoke v.<java.io.IOException: java.lang.String getMessage()>();
interfaceinvoke v.<org.apache.wiki.api.core.Session: void addMessage(java.lang.String,java.lang.String)>("Error.Policy", v);
label:
return;
catch java.io.IOException from label to label with label;
}
boolean verifyStaticPermission(java.security.Principal, java.security.Permission)
{
java.security.Principal[] v;
org.apache.wiki.auth.SecurityVerifier v;
java.util.Set v;
java.security.PrivilegedAction v;
javax.security.auth.Subject v;
java.security.Principal v;
org.apache.wiki.api.core.Engine v;
java.security.Permission v;
java.lang.Object v, v;
boolean v, v;
v := @this: org.apache.wiki.auth.SecurityVerifier;
v := @parameter: java.security.Principal;
v := @parameter: java.security.Permission;
v = new javax.security.auth.Subject;
specialinvoke v.<javax.security.auth.Subject: void <init>()>();
v = virtualinvoke v.<javax.security.auth.Subject: java.util.Set getPrincipals()>();
interfaceinvoke v.<java.util.Set: boolean add(java.lang.Object)>(v);
v = staticinvoke <org.apache.wiki.auth.SecurityVerifier$lambda_verifyStaticPermission_0__14: java.security.PrivilegedAction bootstrap$(java.security.Permission)>(v);
v = staticinvoke <javax.security.auth.Subject: java.lang.Object doAsPrivileged(javax.security.auth.Subject,java.security.PrivilegedAction,java.security.AccessControlContext)>(v, v, null);
v = virtualinvoke v.<java.lang.Boolean: boolean booleanValue()>();
if v == 0 goto label;
return 1;
label:
v = newarray (java.security.Principal)[1];
v[0] = v;
v = v.<org.apache.wiki.auth.SecurityVerifier: 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/AuthorizationManager;");
v = interfaceinvoke v.<org.apache.wiki.auth.AuthorizationManager: boolean allowedByLocalPolicy(java.security.Principal[],java.security.Permission)>(v, v);
return v;
}
void verifyUserDatabase()
{
org.apache.wiki.auth.SecurityVerifier v;
long v;
org.apache.wiki.auth.user.UserProfile v;
int v, v, v;
org.apache.wiki.api.core.Session v, v, v, v, v, v, v, v, v;
java.lang.String v, v, v, v, v;
boolean v;
java.security.Principal[] v, v, v;
org.apache.wiki.auth.user.UserDatabase v;
org.apache.wiki.api.core.Engine v;
java.lang.Class v;
java.lang.Object v;
v := @this: org.apache.wiki.auth.SecurityVerifier;
v = v.<org.apache.wiki.auth.SecurityVerifier: 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 = v.<org.apache.wiki.auth.SecurityVerifier: org.apache.wiki.api.core.Session m_session>;
interfaceinvoke v.<org.apache.wiki.api.core.Session: void addMessage(java.lang.String,java.lang.String)>("Error.UserDatabase", "UserDatabase is null; JSPWiki could not initialize it. Check the error logs.");
return;
label:
v = v instanceof org.apache.wiki.auth.user.DummyUserDatabase;
if v == 0 goto label;
v = v.<org.apache.wiki.auth.SecurityVerifier: org.apache.wiki.api.core.Session m_session>;
interfaceinvoke v.<org.apache.wiki.api.core.Session: void addMessage(java.lang.String,java.lang.String)>("Error.UserDatabase", "UserDatabase is DummyUserDatabase; JSPWiki may not have been able to initialize the database you supplied in jspwiki.properties, or you left the \'jspwiki.userdatabase\' property blank. Check the error logs.");
label:
v = v.<org.apache.wiki.auth.SecurityVerifier: org.apache.wiki.api.core.Session m_session>;
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[])>("UserDatabase is of type \'\u0001\'. It appears to be initialized properly.");
interfaceinvoke v.<org.apache.wiki.api.core.Session: void addMessage(java.lang.String,java.lang.String)>("Info.UserDatabase", v);
v = interfaceinvoke v.<org.apache.wiki.auth.user.UserDatabase: java.security.Principal[] getWikiNames()>();
v = lengthof v;
v = v.<org.apache.wiki.auth.SecurityVerifier: org.apache.wiki.api.core.Session m_session>;
v = dynamicinvoke "makeConcatWithConstants" <java.lang.String (int)>(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 user database contains \u users.");
interfaceinvoke v.<org.apache.wiki.api.core.Session: void addMessage(java.lang.String,java.lang.String)>("Info.UserDatabase", v);
v = staticinvoke <java.lang.System: long currentTimeMillis()>();
v = dynamicinvoke "makeConcatWithConstants" <java.lang.String (long)>(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[])>("TestUser\u0001");
v = interfaceinvoke v.<org.apache.wiki.auth.user.UserDatabase: org.apache.wiki.auth.user.UserProfile newProfile()>();
interfaceinvoke v.<org.apache.wiki.auth.user.UserProfile: void setEmail(java.lang.String)>("jspwiki.tests@mailinator.com");
interfaceinvoke v.<org.apache.wiki.auth.user.UserProfile: void setLoginName(java.lang.String)>(v);
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[])>("FullName\u0001");
interfaceinvoke v.<org.apache.wiki.auth.user.UserProfile: void setFullname(java.lang.String)>(v);
interfaceinvoke v.<org.apache.wiki.auth.user.UserProfile: void setPassword(java.lang.String)>("password");
interfaceinvoke v.<org.apache.wiki.auth.user.UserDatabase: void save(org.apache.wiki.auth.user.UserProfile)>(v);
v = interfaceinvoke v.<org.apache.wiki.auth.user.UserDatabase: java.security.Principal[] getWikiNames()>();
v = lengthof v;
if v != v goto label;
v = v.<org.apache.wiki.auth.SecurityVerifier: org.apache.wiki.api.core.Session m_session>;
interfaceinvoke v.<org.apache.wiki.api.core.Session: void addMessage(java.lang.String,java.lang.String)>("Error.UserDatabase", "Could not add a test user to the database.");
return;
label:
v = v.<org.apache.wiki.auth.SecurityVerifier: org.apache.wiki.api.core.Session m_session>;
interfaceinvoke v.<org.apache.wiki.api.core.Session: void addMessage(java.lang.String,java.lang.String)>("Info.UserDatabase", "The user database allows new users to be created, as it should.");
interfaceinvoke v.<org.apache.wiki.auth.user.UserDatabase: void deleteByLoginName(java.lang.String)>(v);
v = interfaceinvoke v.<org.apache.wiki.auth.user.UserDatabase: java.security.Principal[] getWikiNames()>();
v = lengthof v;
if v == v goto label;
v = v.<org.apache.wiki.auth.SecurityVerifier: org.apache.wiki.api.core.Session m_session>;
interfaceinvoke v.<org.apache.wiki.api.core.Session: void addMessage(java.lang.String,java.lang.String)>("Error.UserDatabase", "Could not delete a test user from the database.");
return;
label:
v = v.<org.apache.wiki.auth.SecurityVerifier: org.apache.wiki.api.core.Session m_session>;
interfaceinvoke v.<org.apache.wiki.api.core.Session: void addMessage(java.lang.String,java.lang.String)>("Info.UserDatabase", "The user database allows users to be deleted, as it should.");
v = v.<org.apache.wiki.auth.SecurityVerifier: org.apache.wiki.api.core.Session m_session>;
interfaceinvoke v.<org.apache.wiki.api.core.Session: void addMessage(java.lang.String,java.lang.String)>("Info.UserDatabase", "The user database configuration looks fine.");
return;
}
static void <clinit>()
{
org.apache.logging.log4j.Logger v;
java.lang.Class v;
java.lang.String[] v, v;
java.lang.String v;
v = newarray (java.lang.String)[7];
v[0] = "View pages";
v[1] = "Comment on existing pages";
v[2] = "Edit pages";
v[3] = "Upload attachments";
v[4] = "Create a new group";
v[5] = "Rename an existing page";
v[6] = "Delete pages";
<org.apache.wiki.auth.SecurityVerifier: java.lang.String[] CONTAINER_ACTIONS> = v;
v = newarray (java.lang.String)[7];
v[0] = "/Wiki.jsp";
v[1] = "/Comment.jsp";
v[2] = "/Edit.jsp";
v[3] = "/Upload.jsp";
v[4] = "/NewGroup.jsp";
v[5] = "/Rename.jsp";
v[6] = "/Delete.jsp";
<org.apache.wiki.auth.SecurityVerifier: java.lang.String[] CONTAINER_JSPS> = v;
v = class "Lorg/apache/wiki/auth/SecurityVerifier;";
v = virtualinvoke v.<java.lang.Class: java.lang.String getName()>();
v = staticinvoke <org.apache.logging.log4j.LogManager: org.apache.logging.log4j.Logger getLogger(java.lang.String)>(v);
<org.apache.wiki.auth.SecurityVerifier: org.apache.logging.log4j.Logger LOG> = v;
return;
}
}