Class ShiroModule

  • All Implemented Interfaces:
    com.google.inject.Module, org.apache.shiro.util.Destroyable
    Direct Known Subclasses:
    ShiroWebModule

    public abstract class ShiroModule
    extends com.google.inject.PrivateModule
    implements org.apache.shiro.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
      ShiroModule()  
    • Method Summary

      All Methods Instance Methods Abstract Methods Concrete Methods 
      Modifier and Type Method Description
      void add​(org.apache.shiro.util.Destroyable destroyable)  
      protected <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 com.google.inject.binder.LinkedBindingBuilder<org.apache.shiro.realm.Realm> bindRealm()
      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 configure()  
      protected abstract void configureShiro()
      Implement this method in order to configure your realms and any other Shiro customization you may need.
      void destroy()
      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
    • Method Detail

      • 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.util.Destroyable
        Throws:
        Exception
      • add

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