public class org.apache.shiro.web.env.IniWebEnvironment extends org.apache.shiro.web.env.ResourceBasedWebEnvironment implements org.apache.shiro.util.Initializable, org.apache.shiro.util.Destroyable
{
public static final java.lang.String DEFAULT_WEB_INI_RESOURCE_PATH;
public static final java.lang.String FILTER_CHAIN_RESOLVER_NAME;
public static final java.lang.String SHIRO_FILTER_CONFIG_NAME;
private static final org.slf4j.Logger log;
private org.apache.shiro.config.Ini ini;
private org.apache.shiro.web.config.WebIniSecurityManagerFactory factory;
public void <init>()
{
org.apache.shiro.web.env.IniWebEnvironment v;
org.apache.shiro.web.config.WebIniSecurityManagerFactory v;
v := @this: org.apache.shiro.web.env.IniWebEnvironment;
specialinvoke v.<org.apache.shiro.web.env.ResourceBasedWebEnvironment: void <init>()>();
v = new org.apache.shiro.web.config.WebIniSecurityManagerFactory;
specialinvoke v.<org.apache.shiro.web.config.WebIniSecurityManagerFactory: void <init>()>();
v.<org.apache.shiro.web.env.IniWebEnvironment: org.apache.shiro.web.config.WebIniSecurityManagerFactory factory> = v;
return;
}
public void init()
{
org.apache.shiro.web.env.IniWebEnvironment v;
org.apache.shiro.config.Ini v;
v := @this: org.apache.shiro.web.env.IniWebEnvironment;
v = virtualinvoke v.<org.apache.shiro.web.env.IniWebEnvironment: org.apache.shiro.config.Ini parseConfig()>();
virtualinvoke v.<org.apache.shiro.web.env.IniWebEnvironment: void setIni(org.apache.shiro.config.Ini)>(v);
virtualinvoke v.<org.apache.shiro.web.env.IniWebEnvironment: void configure()>();
return;
}
protected org.apache.shiro.config.Ini parseConfig()
{
org.apache.shiro.web.env.IniWebEnvironment v;
java.lang.String[] v;
org.apache.shiro.config.ConfigurationException v;
org.apache.shiro.config.Ini v, v, v;
int v;
java.lang.String v;
boolean v, v, v, v, v;
org.slf4j.Logger v, v, v, v;
java.lang.Class v;
v := @this: org.apache.shiro.web.env.IniWebEnvironment;
v = virtualinvoke v.<org.apache.shiro.web.env.IniWebEnvironment: org.apache.shiro.config.Ini getIni()>();
v = virtualinvoke v.<org.apache.shiro.web.env.IniWebEnvironment: java.lang.String[] getConfigLocations()>();
v = <org.apache.shiro.web.env.IniWebEnvironment: org.slf4j.Logger log>;
v = interfaceinvoke v.<org.slf4j.Logger: boolean isWarnEnabled()>();
if v == 0 goto label;
v = staticinvoke <org.apache.shiro.util.CollectionUtils: boolean isEmpty(java.util.Map)>(v);
if v != 0 goto label;
if v == null goto label;
v = lengthof v;
if v <= 0 goto label;
v = <org.apache.shiro.web.env.IniWebEnvironment: org.slf4j.Logger log>;
v = class "Lorg/apache/shiro/web/env/IniWebEnvironment;";
v = virtualinvoke v.<java.lang.Class: java.lang.String getName()>();
interfaceinvoke v.<org.slf4j.Logger: void warn(java.lang.String,java.lang.Object)>("Explicit INI instance has been provided, but configuration locations have also been specified.  The {} implementation does not currently support multiple Ini config, but this may be supported in the future. Only the INI instance will be used for configuration.", v);
label:
v = staticinvoke <org.apache.shiro.util.CollectionUtils: boolean isEmpty(java.util.Map)>(v);
if v == 0 goto label;
v = <org.apache.shiro.web.env.IniWebEnvironment: org.slf4j.Logger log>;
interfaceinvoke v.<org.slf4j.Logger: void debug(java.lang.String)>("Checking any specified config locations.");
v = virtualinvoke v.<org.apache.shiro.web.env.IniWebEnvironment: org.apache.shiro.config.Ini getSpecifiedIni(java.lang.String[])>(v);
label:
v = staticinvoke <org.apache.shiro.util.CollectionUtils: boolean isEmpty(java.util.Map)>(v);
if v == 0 goto label;
v = <org.apache.shiro.web.env.IniWebEnvironment: org.slf4j.Logger log>;
interfaceinvoke v.<org.slf4j.Logger: void debug(java.lang.String)>("No INI instance or config locations specified.  Trying default config locations.");
v = virtualinvoke v.<org.apache.shiro.web.env.IniWebEnvironment: org.apache.shiro.config.Ini getDefaultIni()>();
label:
v = virtualinvoke v.<org.apache.shiro.web.env.IniWebEnvironment: org.apache.shiro.config.Ini getFrameworkIni()>();
v = virtualinvoke v.<org.apache.shiro.web.env.IniWebEnvironment: org.apache.shiro.config.Ini mergeIni(org.apache.shiro.config.Ini,org.apache.shiro.config.Ini)>(v, v);
v = staticinvoke <org.apache.shiro.util.CollectionUtils: boolean isEmpty(java.util.Map)>(v);
if v == 0 goto label;
v = new org.apache.shiro.config.ConfigurationException;
specialinvoke v.<org.apache.shiro.config.ConfigurationException: void <init>(java.lang.String)>("Shiro INI configuration was either not found or discovered to be empty/unconfigured.");
throw v;
label:
return v;
}
protected void configure()
{
org.apache.shiro.web.config.ShiroFilterConfiguration v;
org.apache.shiro.web.env.IniWebEnvironment v;
java.util.Map v;
org.apache.shiro.web.mgt.WebSecurityManager v;
org.apache.shiro.web.filter.mgt.FilterChainResolver v;
v := @this: org.apache.shiro.web.env.IniWebEnvironment;
v = v.<org.apache.shiro.web.env.IniWebEnvironment: java.util.Map objects>;
interfaceinvoke v.<java.util.Map: void clear()>();
v = virtualinvoke v.<org.apache.shiro.web.env.IniWebEnvironment: org.apache.shiro.web.mgt.WebSecurityManager createWebSecurityManager()>();
virtualinvoke v.<org.apache.shiro.web.env.IniWebEnvironment: void setWebSecurityManager(org.apache.shiro.web.mgt.WebSecurityManager)>(v);
v = virtualinvoke v.<org.apache.shiro.web.env.IniWebEnvironment: org.apache.shiro.web.config.ShiroFilterConfiguration createFilterConfiguration()>();
virtualinvoke v.<org.apache.shiro.web.env.IniWebEnvironment: void setShiroFilterConfiguration(org.apache.shiro.web.config.ShiroFilterConfiguration)>(v);
v = virtualinvoke v.<org.apache.shiro.web.env.IniWebEnvironment: org.apache.shiro.web.filter.mgt.FilterChainResolver createFilterChainResolver()>();
if v == null goto label;
virtualinvoke v.<org.apache.shiro.web.env.IniWebEnvironment: void setFilterChainResolver(org.apache.shiro.web.filter.mgt.FilterChainResolver)>(v);
label:
return;
}
protected org.apache.shiro.config.Ini getFrameworkIni()
{
org.apache.shiro.web.env.IniWebEnvironment v;
v := @this: org.apache.shiro.web.env.IniWebEnvironment;
return null;
}
protected org.apache.shiro.config.Ini getSpecifiedIni(java.lang.String[]) throws org.apache.shiro.config.ConfigurationException
{
org.apache.shiro.web.env.IniWebEnvironment v;
org.slf4j.Logger v;
java.lang.String[] v;
org.apache.shiro.config.Ini v;
int v, v;
java.lang.Class v;
java.lang.String v, v;
v := @this: org.apache.shiro.web.env.IniWebEnvironment;
v := @parameter: java.lang.String[];
v = null;
if v == null goto label;
v = lengthof v;
if v <= 0 goto label;
v = lengthof v;
if v <= 1 goto label;
v = <org.apache.shiro.web.env.IniWebEnvironment: org.slf4j.Logger log>;
v = class "Lorg/apache/shiro/web/env/IniWebEnvironment;";
v = virtualinvoke v.<java.lang.Class: java.lang.String getName()>();
interfaceinvoke v.<org.slf4j.Logger: void warn(java.lang.String,java.lang.Object)>("More than one Shiro .ini config location has been specified.  Only the first will be used for configuration as the {} implementation does not currently support multiple files.  This may be supported in the future however.", v);
label:
v = v[0];
v = virtualinvoke v.<org.apache.shiro.web.env.IniWebEnvironment: org.apache.shiro.config.Ini createIni(java.lang.String,boolean)>(v, 1);
label:
return v;
}
protected org.apache.shiro.config.Ini mergeIni(org.apache.shiro.config.Ini, org.apache.shiro.config.Ini)
{
org.apache.shiro.web.env.IniWebEnvironment v;
org.apache.shiro.config.Ini v, v, v;
v := @this: org.apache.shiro.web.env.IniWebEnvironment;
v := @parameter: org.apache.shiro.config.Ini;
v := @parameter: org.apache.shiro.config.Ini;
if v != null goto label;
return v;
label:
if v != null goto label;
return v;
label:
v = new org.apache.shiro.config.Ini;
specialinvoke v.<org.apache.shiro.config.Ini: void <init>(org.apache.shiro.config.Ini)>(v);
virtualinvoke v.<org.apache.shiro.config.Ini: void merge(java.util.Map)>(v);
return v;
}
protected org.apache.shiro.config.Ini getDefaultIni()
{
org.apache.shiro.web.env.IniWebEnvironment v;
org.slf4j.Logger v;
java.lang.String[] v;
org.apache.shiro.config.Ini v;
int v, v;
java.lang.String v;
boolean v;
v := @this: org.apache.shiro.web.env.IniWebEnvironment;
v = null;
v = virtualinvoke v.<org.apache.shiro.web.env.IniWebEnvironment: java.lang.String[] getDefaultConfigLocations()>();
if v == null goto label;
v = lengthof v;
v = 0;
label:
if v >= v goto label;
v = v[v];
v = virtualinvoke v.<org.apache.shiro.web.env.IniWebEnvironment: org.apache.shiro.config.Ini createIni(java.lang.String,boolean)>(v, 0);
v = staticinvoke <org.apache.shiro.util.CollectionUtils: boolean isEmpty(java.util.Map)>(v);
if v != 0 goto label;
v = <org.apache.shiro.web.env.IniWebEnvironment: org.slf4j.Logger log>;
interfaceinvoke v.<org.slf4j.Logger: void debug(java.lang.String,java.lang.Object)>("Discovered non-empty INI configuration at location \'{}\'.  Using for configuration.", v);
goto label;
label:
v = v + 1;
goto label;
label:
return v;
}
protected org.apache.shiro.config.Ini createIni(java.lang.String, boolean) throws org.apache.shiro.config.ConfigurationException
{
org.apache.shiro.web.env.IniWebEnvironment v;
org.apache.shiro.config.ConfigurationException v;
org.apache.shiro.config.Ini v;
java.lang.String v, v;
boolean v, v;
v := @this: org.apache.shiro.web.env.IniWebEnvironment;
v := @parameter: java.lang.String;
v := @parameter: boolean;
v = null;
if v == null goto label;
v = specialinvoke v.<org.apache.shiro.web.env.IniWebEnvironment: org.apache.shiro.config.Ini convertPathToIni(java.lang.String,boolean)>(v, v);
label:
if v == 0 goto label;
v = staticinvoke <org.apache.shiro.util.CollectionUtils: boolean isEmpty(java.util.Map)>(v);
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[])>("Required configuration location \'\u0001\' does not exist or did not contain any INI configuration.");
v = new org.apache.shiro.config.ConfigurationException;
specialinvoke v.<org.apache.shiro.config.ConfigurationException: void <init>(java.lang.String)>(v);
throw v;
label:
return v;
}
protected org.apache.shiro.web.config.ShiroFilterConfiguration createFilterConfiguration()
{
org.apache.shiro.web.env.IniWebEnvironment v;
java.lang.Object v;
java.util.Map v;
v := @this: org.apache.shiro.web.env.IniWebEnvironment;
v = v.<org.apache.shiro.web.env.IniWebEnvironment: java.util.Map objects>;
v = interfaceinvoke v.<java.util.Map: java.lang.Object get(java.lang.Object)>("shiroFilter");
return v;
}
protected org.apache.shiro.web.filter.mgt.FilterChainResolver createFilterChainResolver()
{
org.apache.shiro.util.Factory v;
org.apache.shiro.web.env.IniWebEnvironment v;
org.apache.shiro.config.Ini v;
java.util.Map v, v;
java.lang.Object v, v;
boolean v, v;
v := @this: org.apache.shiro.web.env.IniWebEnvironment;
v = virtualinvoke v.<org.apache.shiro.web.env.IniWebEnvironment: org.apache.shiro.config.Ini getIni()>();
v = staticinvoke <org.apache.shiro.util.CollectionUtils: boolean isEmpty(java.util.Map)>(v);
if v != 0 goto label;
v = v.<org.apache.shiro.web.env.IniWebEnvironment: java.util.Map objects>;
v = interfaceinvoke v.<java.util.Map: java.lang.Object get(java.lang.Object)>("filterChainResolver");
v = v instanceof org.apache.shiro.config.IniFactorySupport;
if v == 0 goto label;
virtualinvoke v.<org.apache.shiro.config.IniFactorySupport: void setIni(org.apache.shiro.config.Ini)>(v);
v = v.<org.apache.shiro.web.env.IniWebEnvironment: java.util.Map objects>;
virtualinvoke v.<org.apache.shiro.config.IniFactorySupport: void setDefaults(java.util.Map)>(v);
label:
v = interfaceinvoke v.<org.apache.shiro.util.Factory: java.lang.Object getInstance()>();
label:
return v;
}
protected org.apache.shiro.web.mgt.WebSecurityManager createWebSecurityManager()
{
org.apache.shiro.web.env.IniWebEnvironment v;
org.apache.shiro.web.config.WebIniSecurityManagerFactory v, v, v, v;
org.apache.shiro.config.Ini v;
java.util.Map v, v, v;
java.lang.Object v;
boolean v, v, v;
v := @this: org.apache.shiro.web.env.IniWebEnvironment;
v = virtualinvoke v.<org.apache.shiro.web.env.IniWebEnvironment: org.apache.shiro.config.Ini getIni()>();
v = staticinvoke <org.apache.shiro.util.CollectionUtils: boolean isEmpty(java.util.Map)>(v);
if v != 0 goto label;
v = v.<org.apache.shiro.web.env.IniWebEnvironment: org.apache.shiro.web.config.WebIniSecurityManagerFactory factory>;
virtualinvoke v.<org.apache.shiro.web.config.WebIniSecurityManagerFactory: void setIni(org.apache.shiro.config.Ini)>(v);
label:
v = virtualinvoke v.<org.apache.shiro.web.env.IniWebEnvironment: java.util.Map getDefaults()>();
v = staticinvoke <org.apache.shiro.util.CollectionUtils: boolean isEmpty(java.util.Map)>(v);
if v != 0 goto label;
v = v.<org.apache.shiro.web.env.IniWebEnvironment: org.apache.shiro.web.config.WebIniSecurityManagerFactory factory>;
virtualinvoke v.<org.apache.shiro.web.config.WebIniSecurityManagerFactory: void setDefaults(java.util.Map)>(v);
label:
v = v.<org.apache.shiro.web.env.IniWebEnvironment: org.apache.shiro.web.config.WebIniSecurityManagerFactory factory>;
v = virtualinvoke v.<org.apache.shiro.web.config.WebIniSecurityManagerFactory: java.lang.Object getInstance()>();
v = v.<org.apache.shiro.web.env.IniWebEnvironment: org.apache.shiro.web.config.WebIniSecurityManagerFactory factory>;
v = virtualinvoke v.<org.apache.shiro.web.config.WebIniSecurityManagerFactory: java.util.Map getBeans()>();
v = staticinvoke <org.apache.shiro.util.CollectionUtils: boolean isEmpty(java.util.Map)>(v);
if v != 0 goto label;
v = v.<org.apache.shiro.web.env.IniWebEnvironment: java.util.Map objects>;
interfaceinvoke v.<java.util.Map: void putAll(java.util.Map)>(v);
label:
return v;
}
protected java.lang.String[] getDefaultConfigLocations()
{
org.apache.shiro.web.env.IniWebEnvironment v;
java.lang.String[] v;
v := @this: org.apache.shiro.web.env.IniWebEnvironment;
v = newarray (java.lang.String)[2];
v[0] = "/WEB-INF/shiro.ini";
v[1] = "classpath:shiro.ini";
return v;
}
private org.apache.shiro.config.Ini convertPathToIni(java.lang.String, boolean)
{
org.apache.shiro.web.env.IniWebEnvironment v;
org.apache.shiro.config.ConfigurationException v, v;
org.apache.shiro.config.Ini v, v;
java.lang.String v, v, v;
boolean v, v, v, v;
org.slf4j.Logger v, v;
java.io.IOException v;
java.io.InputStream v;
v := @this: org.apache.shiro.web.env.IniWebEnvironment;
v := @parameter: java.lang.String;
v := @parameter: boolean;
v = null;
v = staticinvoke <org.apache.shiro.util.StringUtils: boolean hasText(java.lang.String)>(v);
if v == 0 goto label;
v = null;
v = staticinvoke <org.apache.shiro.io.ResourceUtils: boolean hasResourcePrefix(java.lang.String)>(v);
if v != 0 goto label;
v = specialinvoke v.<org.apache.shiro.web.env.IniWebEnvironment: java.io.InputStream getServletContextResourceStream(java.lang.String)>(v);
goto label;
label:
v = staticinvoke <org.apache.shiro.io.ResourceUtils: java.io.InputStream getInputStreamForPath(java.lang.String)>(v);
label:
goto label;
label:
v := @caughtexception;
if v == 0 goto label;
v = new org.apache.shiro.config.ConfigurationException;
specialinvoke v.<org.apache.shiro.config.ConfigurationException: void <init>(java.lang.Throwable)>(v);
throw v;
label:
v = <org.apache.shiro.web.env.IniWebEnvironment: org.slf4j.Logger log>;
v = interfaceinvoke v.<org.slf4j.Logger: boolean isDebugEnabled()>();
if v == 0 goto label;
v = <org.apache.shiro.web.env.IniWebEnvironment: org.slf4j.Logger log>;
v = dynamicinvoke "makeConcatWithConstants" <java.lang.String (java.lang.String)>(v) <java.lang.invoke.StringConcatFactory: java.lang.invoke.CallSite makeConcatWithConstants(java.lang.invoke.MethodHandles$Lookup,java.lang.String,java.lang.invoke.MethodType,java.lang.String,java.lang.Object[])>("Unable to load optional path \'\u0001\'.");
interfaceinvoke v.<org.slf4j.Logger: void debug(java.lang.String,java.lang.Throwable)>(v, v);
label:
if v == null goto label;
v = new org.apache.shiro.config.Ini;
specialinvoke v.<org.apache.shiro.config.Ini: void <init>()>();
v = v;
virtualinvoke v.<org.apache.shiro.config.Ini: void load(java.io.InputStream)>(v);
goto label;
label:
if v == 0 goto label;
v = new org.apache.shiro.config.ConfigurationException;
v = dynamicinvoke "makeConcatWithConstants" <java.lang.String (java.lang.String)>(v) <java.lang.invoke.StringConcatFactory: java.lang.invoke.CallSite makeConcatWithConstants(java.lang.invoke.MethodHandles$Lookup,java.lang.String,java.lang.invoke.MethodType,java.lang.String,java.lang.Object[])>("Unable to load resource path \'\u0001\'");
specialinvoke v.<org.apache.shiro.config.ConfigurationException: void <init>(java.lang.String)>(v);
throw v;
label:
return v;
catch java.io.IOException from label to label with label;
}
private java.io.InputStream getServletContextResourceStream(java.lang.String)
{
org.apache.shiro.web.env.IniWebEnvironment v;
javax.servlet.ServletContext v;
java.lang.String v, v;
java.io.InputStream v;
v := @this: org.apache.shiro.web.env.IniWebEnvironment;
v := @parameter: java.lang.String;
v = null;
v = staticinvoke <org.apache.shiro.web.util.WebUtils: java.lang.String normalize(java.lang.String)>(v);
v = virtualinvoke v.<org.apache.shiro.web.env.IniWebEnvironment: javax.servlet.ServletContext getServletContext()>();
if v == null goto label;
v = interfaceinvoke v.<javax.servlet.ServletContext: java.io.InputStream getResourceAsStream(java.lang.String)>(v);
label:
return v;
}
public org.apache.shiro.config.Ini getIni()
{
org.apache.shiro.web.env.IniWebEnvironment v;
org.apache.shiro.config.Ini v;
v := @this: org.apache.shiro.web.env.IniWebEnvironment;
v = v.<org.apache.shiro.web.env.IniWebEnvironment: org.apache.shiro.config.Ini ini>;
return v;
}
public void setIni(org.apache.shiro.config.Ini)
{
org.apache.shiro.web.env.IniWebEnvironment v;
org.apache.shiro.config.Ini v;
v := @this: org.apache.shiro.web.env.IniWebEnvironment;
v := @parameter: org.apache.shiro.config.Ini;
v.<org.apache.shiro.web.env.IniWebEnvironment: org.apache.shiro.config.Ini ini> = v;
return;
}
protected java.util.Map getDefaults()
{
org.apache.shiro.web.config.ShiroFilterConfiguration v;
org.apache.shiro.web.config.IniFilterChainResolverFactory v;
org.apache.shiro.web.env.IniWebEnvironment v;
java.util.HashMap v;
v := @this: org.apache.shiro.web.env.IniWebEnvironment;
v = new java.util.HashMap;
specialinvoke v.<java.util.HashMap: void <init>()>();
v = new org.apache.shiro.web.config.IniFilterChainResolverFactory;
specialinvoke v.<org.apache.shiro.web.config.IniFilterChainResolverFactory: void <init>()>();
interfaceinvoke v.<java.util.Map: java.lang.Object put(java.lang.Object,java.lang.Object)>("filterChainResolver", v);
v = new org.apache.shiro.web.config.ShiroFilterConfiguration;
specialinvoke v.<org.apache.shiro.web.config.ShiroFilterConfiguration: void <init>()>();
interfaceinvoke v.<java.util.Map: java.lang.Object put(java.lang.Object,java.lang.Object)>("shiroFilter", v);
return v;
}
protected org.apache.shiro.web.config.WebIniSecurityManagerFactory getSecurityManagerFactory()
{
org.apache.shiro.web.env.IniWebEnvironment v;
org.apache.shiro.web.config.WebIniSecurityManagerFactory v;
v := @this: org.apache.shiro.web.env.IniWebEnvironment;
v = v.<org.apache.shiro.web.env.IniWebEnvironment: org.apache.shiro.web.config.WebIniSecurityManagerFactory factory>;
return v;
}
protected void setSecurityManagerFactory(org.apache.shiro.web.config.WebIniSecurityManagerFactory)
{
org.apache.shiro.web.env.IniWebEnvironment v;
org.apache.shiro.web.config.WebIniSecurityManagerFactory v;
v := @this: org.apache.shiro.web.env.IniWebEnvironment;
v := @parameter: org.apache.shiro.web.config.WebIniSecurityManagerFactory;
v.<org.apache.shiro.web.env.IniWebEnvironment: org.apache.shiro.web.config.WebIniSecurityManagerFactory factory> = v;
return;
}
static void <clinit>()
{
org.slf4j.Logger v;
v = staticinvoke <org.slf4j.LoggerFactory: org.slf4j.Logger getLogger(java.lang.Class)>(class "Lorg/apache/shiro/web/env/IniWebEnvironment;");
<org.apache.shiro.web.env.IniWebEnvironment: org.slf4j.Logger log> = v;
return;
}
}