Class ShiroModule

java.lang.Object
com.google.inject.PrivateModule
org.apache.shiro.guice.ShiroModule
All Implemented Interfaces:
com.google.inject.Module, org.apache.shiro.lang.util.Destroyable
Direct Known Subclasses:
ShiroWebModule

public abstract class ShiroModule extends com.google.inject.PrivateModule implements org.apache.shiro.lang.util.Destroyable
Sets up Shiro lifecycles within Guice, enables the injecting of Shiro objects, and binds a default SecurityManager and SessionManager. At least one realm must be added by using bindRealm.
  • Constructor Summary

    Constructors
    Constructor
    Description
     
  • Method Summary

    Modifier and Type
    Method
    Description
    void
    add(org.apache.shiro.lang.util.Destroyable destroyable)
     
    protected final <T> void
    bindBeanType(com.google.inject.TypeLiteral<T> typeLiteral, com.google.inject.Key<? extends T> key)
    Binds a key to use for injecting setters in shiro classes.
    protected void
    bindEnvironment(com.google.inject.binder.AnnotatedBindingBuilder<org.apache.shiro.env.Environment> bind)
    Binds the environment.
    protected void
    bindEventBus(com.google.inject.binder.AnnotatedBindingBuilder<org.apache.shiro.event.EventBus> bind)
    Binds the EventBus.
    protected final com.google.inject.binder.LinkedBindingBuilder<org.apache.shiro.realm.Realm>
    This is the preferred manner to bind a realm.
    protected void
    bindSecurityManager(com.google.inject.binder.AnnotatedBindingBuilder<? super org.apache.shiro.mgt.SecurityManager> bind)
    Binds the security manager.
    protected void
    bindSessionManager(com.google.inject.binder.AnnotatedBindingBuilder<org.apache.shiro.session.mgt.SessionManager> bind)
    Binds the session manager.
    void
     
    protected abstract void
    Implement this method in order to configure your realms and any other Shiro customization you may need.
    final void
    Destroys all beans created within this module that implement Destroyable.

    Methods inherited from class com.google.inject.PrivateModule

    addError, addError, addError, bind, bind, bind, bindConstant, binder, bindInterceptor, bindListener, bindListener, bindScope, configure, convertToTypes, currentStage, expose, expose, expose, getMembersInjector, getMembersInjector, getProvider, getProvider, install, requestInjection, requestStaticInjection, requireBinding, requireBinding

    Methods inherited from class java.lang.Object

    clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
  • Constructor Details

  • Method Details

    • configure

      public void configure()
      Specified by:
      configure in class com.google.inject.PrivateModule
    • configureShiro

      protected abstract void configureShiro()
      Implement this method in order to configure your realms and any other Shiro customization you may need.
    • bindRealm

      protected final com.google.inject.binder.LinkedBindingBuilder<org.apache.shiro.realm.Realm> bindRealm()
      This is the preferred manner to bind a realm. The SecurityManager will be injected with any Realm bound with this method.
      Returns:
      a binding builder for a realm
    • bindSecurityManager

      protected void bindSecurityManager(com.google.inject.binder.AnnotatedBindingBuilder<? super org.apache.shiro.mgt.SecurityManager> bind)
      Binds the security manager. Override this method in order to provide your own security manager binding.

      By default, a DefaultSecurityManager is bound as an eager singleton.

      Parameters:
      bind -
    • bindSessionManager

      protected void bindSessionManager(com.google.inject.binder.AnnotatedBindingBuilder<org.apache.shiro.session.mgt.SessionManager> bind)
      Binds the session manager. Override this method in order to provide your own session manager binding.

      By default, a DefaultSessionManager is bound as an eager singleton.

      Parameters:
      bind -
    • bindEnvironment

      protected void bindEnvironment(com.google.inject.binder.AnnotatedBindingBuilder<org.apache.shiro.env.Environment> bind)
      Binds the environment. Override this method in order to provide your own environment binding.

      By default, a GuiceEnvironment is bound as an eager singleton.

      Parameters:
      bind -
    • bindBeanType

      protected final <T> void bindBeanType(com.google.inject.TypeLiteral<T> typeLiteral, com.google.inject.Key<? extends T> key)
      Binds a key to use for injecting setters in shiro classes.
      Type Parameters:
      T -
      Parameters:
      typeLiteral - the bean property type
      key - the key to use to satisfy the bean property dependency
    • bindEventBus

      protected void bindEventBus(com.google.inject.binder.AnnotatedBindingBuilder<org.apache.shiro.event.EventBus> bind)
      Binds the EventBus. Override this method in order to provide your own EventBus binding.
      Parameters:
      bind -
      Since:
      1.4
    • destroy

      public final void destroy()
      Destroys all beans created within this module that implement Destroyable. Should be called when this module will no longer be used.
      Specified by:
      destroy in interface org.apache.shiro.lang.util.Destroyable
      Throws:
      Exception
    • add

      public void add(org.apache.shiro.lang.util.Destroyable destroyable)