public abstract class org.apache.shiro.guice.ShiroModule extends com.google.inject.PrivateModule implements org.apache.shiro.util.Destroyable
{
private final org.slf4j.Logger log;
private java.util.Set destroyables;
public void <init>()
{
org.slf4j.Logger v;
org.apache.shiro.guice.ShiroModule v;
java.util.Set v;
java.util.WeakHashMap v;
v := @this: org.apache.shiro.guice.ShiroModule;
specialinvoke v.<com.google.inject.PrivateModule: void <init>()>();
v = staticinvoke <org.slf4j.LoggerFactory: org.slf4j.Logger getLogger(java.lang.Class)>(class "Lorg/apache/shiro/guice/ShiroModule;");
v.<org.apache.shiro.guice.ShiroModule: org.slf4j.Logger log> = v;
v = new java.util.WeakHashMap;
specialinvoke v.<java.util.WeakHashMap: void <init>()>();
v = staticinvoke <java.util.Collections: java.util.Set newSetFromMap(java.util.Map)>(v);
v.<org.apache.shiro.guice.ShiroModule: java.util.Set destroyables> = v;
return;
}
public void configure()
{
com.google.inject.Key v, v;
com.google.inject.binder.AnnotatedBindingBuilder v, v, v, v, v;
org.apache.shiro.guice.ShiroModule$1 v;
com.google.inject.PrivateBinder v;
org.apache.shiro.guice.ShiroModule v;
org.apache.shiro.guice.ShiroModule$EventBusAwareTypeListener v;
org.apache.shiro.guice.BeanTypeListener v;
org.apache.shiro.guice.LifecycleTypeListener v;
com.google.inject.binder.LinkedBindingBuilder v;
com.google.inject.matcher.Matcher v, v, v, v;
org.apache.shiro.guice.ShiroModule$SubscribedEventTypeListener v;
v := @this: org.apache.shiro.guice.ShiroModule;
v = virtualinvoke v.<org.apache.shiro.guice.ShiroModule: com.google.inject.binder.AnnotatedBindingBuilder bind(java.lang.Class)>(class "Lorg/apache/shiro/mgt/SecurityManager;");
virtualinvoke v.<org.apache.shiro.guice.ShiroModule: void bindSecurityManager(com.google.inject.binder.AnnotatedBindingBuilder)>(v);
v = virtualinvoke v.<org.apache.shiro.guice.ShiroModule: com.google.inject.binder.AnnotatedBindingBuilder bind(java.lang.Class)>(class "Lorg/apache/shiro/session/mgt/SessionManager;");
virtualinvoke v.<org.apache.shiro.guice.ShiroModule: void bindSessionManager(com.google.inject.binder.AnnotatedBindingBuilder)>(v);
v = virtualinvoke v.<org.apache.shiro.guice.ShiroModule: com.google.inject.binder.AnnotatedBindingBuilder bind(java.lang.Class)>(class "Lorg/apache/shiro/env/Environment;");
virtualinvoke v.<org.apache.shiro.guice.ShiroModule: void bindEnvironment(com.google.inject.binder.AnnotatedBindingBuilder)>(v);
v = <org.apache.shiro.guice.BeanTypeListener: com.google.inject.matcher.Matcher MATCHER>;
v = new org.apache.shiro.guice.BeanTypeListener;
specialinvoke v.<org.apache.shiro.guice.BeanTypeListener: void <init>()>();
virtualinvoke v.<org.apache.shiro.guice.ShiroModule: void bindListener(com.google.inject.matcher.Matcher,com.google.inject.spi.TypeListener)>(v, v);
v = virtualinvoke v.<org.apache.shiro.guice.ShiroModule: com.google.inject.binder.AnnotatedBindingBuilder bind(java.lang.Class)>(class "Lorg/apache/shiro/event/EventBus;");
virtualinvoke v.<org.apache.shiro.guice.ShiroModule: void bindEventBus(com.google.inject.binder.AnnotatedBindingBuilder)>(v);
v = staticinvoke <com.google.inject.matcher.Matchers: com.google.inject.matcher.Matcher any()>();
v = new org.apache.shiro.guice.ShiroModule$SubscribedEventTypeListener;
specialinvoke v.<org.apache.shiro.guice.ShiroModule$SubscribedEventTypeListener: void <init>(org.apache.shiro.guice.ShiroModule)>(v);
virtualinvoke v.<org.apache.shiro.guice.ShiroModule: void bindListener(com.google.inject.matcher.Matcher,com.google.inject.spi.TypeListener)>(v, v);
v = staticinvoke <com.google.inject.matcher.Matchers: com.google.inject.matcher.Matcher any()>();
v = new org.apache.shiro.guice.ShiroModule$EventBusAwareTypeListener;
specialinvoke v.<org.apache.shiro.guice.ShiroModule$EventBusAwareTypeListener: void <init>(org.apache.shiro.guice.ShiroModule)>(v);
virtualinvoke v.<org.apache.shiro.guice.ShiroModule: void bindListener(com.google.inject.matcher.Matcher,com.google.inject.spi.TypeListener)>(v, v);
v = new org.apache.shiro.guice.ShiroModule$1;
specialinvoke v.<org.apache.shiro.guice.ShiroModule$1: void <init>(org.apache.shiro.guice.ShiroModule)>(v);
v = <org.apache.shiro.guice.LifecycleTypeListener: com.google.inject.matcher.Matcher MATCHER>;
v = new org.apache.shiro.guice.LifecycleTypeListener;
specialinvoke v.<org.apache.shiro.guice.LifecycleTypeListener: void <init>(org.apache.shiro.guice.DestroyableInjectionListener$DestroyableRegistry)>(v);
virtualinvoke v.<org.apache.shiro.guice.ShiroModule: void bindListener(com.google.inject.matcher.Matcher,com.google.inject.spi.TypeListener)>(v, v);
virtualinvoke v.<org.apache.shiro.guice.ShiroModule: com.google.inject.binder.AnnotatedElementBuilder expose(java.lang.Class)>(class "Lorg/apache/shiro/mgt/SecurityManager;");
virtualinvoke v.<org.apache.shiro.guice.ShiroModule: com.google.inject.binder.AnnotatedElementBuilder expose(java.lang.Class)>(class "Lorg/apache/shiro/event/EventBus;");
virtualinvoke v.<org.apache.shiro.guice.ShiroModule: void configureShiro()>();
v = specialinvoke v.<org.apache.shiro.guice.ShiroModule: com.google.inject.Key realmCollectionKey()>();
v = virtualinvoke v.<org.apache.shiro.guice.ShiroModule: com.google.inject.binder.LinkedBindingBuilder bind(com.google.inject.Key)>(v);
v = specialinvoke v.<org.apache.shiro.guice.ShiroModule: com.google.inject.Key realmSetKey()>();
interfaceinvoke v.<com.google.inject.binder.LinkedBindingBuilder: com.google.inject.binder.ScopedBindingBuilder 'to'(com.google.inject.Key)>(v);
v = virtualinvoke v.<org.apache.shiro.guice.ShiroModule: com.google.inject.binder.AnnotatedBindingBuilder bind(java.lang.Class)>(class "Lorg/apache/shiro/guice/DestroyableInjectionListener$DestroyableRegistry;");
interfaceinvoke v.<com.google.inject.binder.AnnotatedBindingBuilder: void toInstance(java.lang.Object)>(v);
v = virtualinvoke v.<org.apache.shiro.guice.ShiroModule: com.google.inject.PrivateBinder binder()>();
staticinvoke <org.apache.shiro.guice.BeanTypeListener: void ensureBeanTypeMapExists(com.google.inject.Binder)>(v);
return;
}
private com.google.inject.Key realmSetKey()
{
java.lang.reflect.ParameterizedType v;
org.apache.shiro.guice.ShiroModule v;
com.google.inject.Key v;
com.google.inject.TypeLiteral v;
v := @this: org.apache.shiro.guice.ShiroModule;
v = staticinvoke <com.google.inject.util.Types: java.lang.reflect.ParameterizedType setOf(java.lang.reflect.Type)>(class "Lorg/apache/shiro/realm/Realm;");
v = staticinvoke <com.google.inject.TypeLiteral: com.google.inject.TypeLiteral get(java.lang.reflect.Type)>(v);
v = staticinvoke <com.google.inject.Key: com.google.inject.Key get(com.google.inject.TypeLiteral)>(v);
return v;
}
private com.google.inject.Key realmCollectionKey()
{
java.lang.reflect.ParameterizedType v;
org.apache.shiro.guice.ShiroModule v;
com.google.inject.Key v;
java.lang.reflect.Type[] v;
v := @this: org.apache.shiro.guice.ShiroModule;
v = newarray (java.lang.reflect.Type)[1];
v[0] = class "Lorg/apache/shiro/realm/Realm;";
v = staticinvoke <com.google.inject.util.Types: java.lang.reflect.ParameterizedType newParameterizedType(java.lang.reflect.Type,java.lang.reflect.Type[])>(class "Ljava/util/Collection;", v);
v = staticinvoke <com.google.inject.Key: com.google.inject.Key get(java.lang.reflect.Type)>(v);
return v;
}
protected abstract void configureShiro();
protected final com.google.inject.binder.LinkedBindingBuilder bindRealm()
{
com.google.inject.PrivateBinder v;
com.google.inject.binder.LinkedBindingBuilder v;
org.apache.shiro.guice.ShiroModule v;
com.google.inject.multibindings.Multibinder v;
v := @this: org.apache.shiro.guice.ShiroModule;
v = virtualinvoke v.<org.apache.shiro.guice.ShiroModule: com.google.inject.PrivateBinder binder()>();
v = staticinvoke <com.google.inject.multibindings.Multibinder: com.google.inject.multibindings.Multibinder newSetBinder(com.google.inject.Binder,java.lang.Class)>(v, class "Lorg/apache/shiro/realm/Realm;");
v = virtualinvoke v.<com.google.inject.multibindings.Multibinder: com.google.inject.binder.LinkedBindingBuilder addBinding()>();
return v;
}
protected void bindSecurityManager(com.google.inject.binder.AnnotatedBindingBuilder)
{
java.lang.NoSuchMethodException v;
org.apache.shiro.guice.ShiroModule v;
java.lang.Class[] v;
java.lang.reflect.Constructor v;
com.google.inject.binder.ScopedBindingBuilder v;
com.google.inject.binder.AnnotatedBindingBuilder v;
org.apache.shiro.config.ConfigurationException v;
java.lang.Class v, v;
java.lang.String v, v;
v := @this: org.apache.shiro.guice.ShiroModule;
v := @parameter: com.google.inject.binder.AnnotatedBindingBuilder;
label:
v = class "Lorg/apache/shiro/mgt/DefaultSecurityManager;";
v = newarray (java.lang.Class)[1];
v[0] = class "Ljava/util/Collection;";
v = virtualinvoke v.<java.lang.Class: java.lang.reflect.Constructor getConstructor(java.lang.Class[])>(v);
v = interfaceinvoke v.<com.google.inject.binder.AnnotatedBindingBuilder: com.google.inject.binder.ScopedBindingBuilder toConstructor(java.lang.reflect.Constructor)>(v);
interfaceinvoke v.<com.google.inject.binder.ScopedBindingBuilder: void asEagerSingleton()>();
label:
goto label;
label:
v := @caughtexception;
v = new org.apache.shiro.config.ConfigurationException;
v = class "Lorg/apache/shiro/guice/ShiroModule;";
v = virtualinvoke v.<java.lang.Class: java.lang.String getSimpleName()>();
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[])>("This really shouldn\'t happen.  Either something has changed in Shiro, or there\'s a bug in \u0001");
specialinvoke v.<org.apache.shiro.config.ConfigurationException: void <init>(java.lang.String,java.lang.Throwable)>(v, v);
throw v;
label:
return;
catch java.lang.NoSuchMethodException from label to label with label;
}
protected void bindSessionManager(com.google.inject.binder.AnnotatedBindingBuilder)
{
com.google.inject.binder.AnnotatedBindingBuilder v;
org.apache.shiro.guice.ShiroModule v;
com.google.inject.binder.ScopedBindingBuilder v;
v := @this: org.apache.shiro.guice.ShiroModule;
v := @parameter: com.google.inject.binder.AnnotatedBindingBuilder;
v = interfaceinvoke v.<com.google.inject.binder.AnnotatedBindingBuilder: com.google.inject.binder.ScopedBindingBuilder 'to'(java.lang.Class)>(class "Lorg/apache/shiro/session/mgt/DefaultSessionManager;");
interfaceinvoke v.<com.google.inject.binder.ScopedBindingBuilder: void asEagerSingleton()>();
return;
}
protected void bindEnvironment(com.google.inject.binder.AnnotatedBindingBuilder)
{
com.google.inject.binder.AnnotatedBindingBuilder v;
org.apache.shiro.guice.ShiroModule v;
com.google.inject.binder.ScopedBindingBuilder v;
v := @this: org.apache.shiro.guice.ShiroModule;
v := @parameter: com.google.inject.binder.AnnotatedBindingBuilder;
v = interfaceinvoke v.<com.google.inject.binder.AnnotatedBindingBuilder: com.google.inject.binder.ScopedBindingBuilder 'to'(java.lang.Class)>(class "Lorg/apache/shiro/guice/GuiceEnvironment;");
interfaceinvoke v.<com.google.inject.binder.ScopedBindingBuilder: void asEagerSingleton()>();
return;
}
protected final void bindBeanType(com.google.inject.TypeLiteral, com.google.inject.Key)
{
com.google.inject.PrivateBinder v;
org.apache.shiro.guice.ShiroModule v;
com.google.inject.Key v;
com.google.inject.TypeLiteral v;
v := @this: org.apache.shiro.guice.ShiroModule;
v := @parameter: com.google.inject.TypeLiteral;
v := @parameter: com.google.inject.Key;
v = virtualinvoke v.<org.apache.shiro.guice.ShiroModule: com.google.inject.PrivateBinder binder()>();
staticinvoke <org.apache.shiro.guice.BeanTypeListener: void bindBeanType(com.google.inject.Binder,com.google.inject.TypeLiteral,com.google.inject.Key)>(v, v, v);
return;
}
protected void bindEventBus(com.google.inject.binder.AnnotatedBindingBuilder)
{
com.google.inject.binder.AnnotatedBindingBuilder v;
org.apache.shiro.guice.ShiroModule v;
com.google.inject.binder.ScopedBindingBuilder v;
v := @this: org.apache.shiro.guice.ShiroModule;
v := @parameter: com.google.inject.binder.AnnotatedBindingBuilder;
v = interfaceinvoke v.<com.google.inject.binder.AnnotatedBindingBuilder: com.google.inject.binder.ScopedBindingBuilder 'to'(java.lang.Class)>(class "Lorg/apache/shiro/event/support/DefaultEventBus;");
interfaceinvoke v.<com.google.inject.binder.ScopedBindingBuilder: void asEagerSingleton()>();
return;
}
public final void destroy()
{
org.slf4j.Logger v;
java.util.Iterator v;
org.apache.shiro.guice.ShiroModule v;
java.util.Set v;
java.lang.Exception v;
java.lang.Class v;
java.lang.Object v;
java.lang.String v;
boolean v;
v := @this: org.apache.shiro.guice.ShiroModule;
v = v.<org.apache.shiro.guice.ShiroModule: java.util.Set destroyables>;
v = interfaceinvoke v.<java.util.Set: 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()>();
label:
interfaceinvoke v.<org.apache.shiro.util.Destroyable: void destroy()>();
label:
goto label;
label:
v := @caughtexception;
v = v.<org.apache.shiro.guice.ShiroModule: org.slf4j.Logger log>;
v = virtualinvoke v.<java.lang.Object: java.lang.Class getClass()>();
v = dynamicinvoke "makeConcatWithConstants" <java.lang.String (java.lang.Class)>(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 destroying component class: \u0001");
interfaceinvoke v.<org.slf4j.Logger: void warn(java.lang.String,java.lang.Throwable)>(v, v);
goto label;
label:
return;
catch java.lang.Exception from label to label with label;
}
public void add(org.apache.shiro.util.Destroyable)
{
java.util.Set v;
org.apache.shiro.guice.ShiroModule v;
org.apache.shiro.util.Destroyable v;
v := @this: org.apache.shiro.guice.ShiroModule;
v := @parameter: org.apache.shiro.util.Destroyable;
v = v.<org.apache.shiro.guice.ShiroModule: java.util.Set destroyables>;
interfaceinvoke v.<java.util.Set: boolean add(java.lang.Object)>(v);
return;
}
}