Package org.apache.shiro.guice.web
Class ShiroWebModule
- java.lang.Object
-
- com.google.inject.PrivateModule
-
- org.apache.shiro.guice.ShiroModule
-
- org.apache.shiro.guice.web.ShiroWebModule
-
- All Implemented Interfaces:
com.google.inject.Module
,Destroyable
public abstract class ShiroWebModule extends ShiroModule
Sets up Shiro lifecycles within Guice, enables the injecting of Shiro objects, and binds a defaultWebSecurityManager
,SecurityManager
andSessionManager
. At least one realm must be added by usingbindRealm
. Also provides for the configuring of filter chains and binds aFilterChainResolver
with that information.
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description static class
ShiroWebModule.FilterConfig<T extends Filter>
Filter configuration which pairs a Filter class with its configuration used on a path.
-
Field Summary
Fields Modifier and Type Field Description static com.google.inject.Key<AnonymousFilter>
ANON
static com.google.inject.Key<FormAuthenticationFilter>
AUTHC
static com.google.inject.Key<BasicHttpAuthenticationFilter>
AUTHC_BASIC
static com.google.inject.Key<BearerHttpAuthenticationFilter>
AUTHC_BEARER
static com.google.inject.Key<InvalidRequestFilter>
INVALID_REQUEST
static com.google.inject.Key<LogoutFilter>
LOGOUT
static com.google.inject.Key<NoSessionCreationFilter>
NO_SESSION_CREATION
static com.google.inject.Key<PermissionsAuthorizationFilter>
PERMS
static com.google.inject.Key<PortFilter>
PORT
static com.google.inject.Key<HttpMethodPermissionFilter>
REST
static com.google.inject.Key<RolesAuthorizationFilter>
ROLES
static com.google.inject.Key<SslFilter>
SSL
static com.google.inject.Key<UserFilter>
USER
-
Constructor Summary
Constructors Constructor Description ShiroWebModule(ServletContext servletContext)
-
Method Summary
All Methods Static Methods Instance Methods Abstract Methods Concrete Methods Deprecated Methods Modifier and Type Method Description protected void
addFilterChain(String pattern, com.google.inject.Key<? extends Filter> key)
protected void
addFilterChain(String pattern, com.google.inject.Key<? extends Filter>... keys)
Deprecated.protected void
addFilterChain(String pattern, ShiroWebModule.FilterConfig<? extends Filter>... filterConfigs)
Maps 'n' number offilterConfig
s to a specific path pattern.
For example, a path of '/my_private_resource/**' to 'filterConfig(AUTHC)' would require any resource under the path '/my_private_resource' would be processed through theFormAuthenticationFilter
.protected void
bindEnvironment(com.google.inject.binder.AnnotatedBindingBuilder<Environment> bind)
Binds the environment.static void
bindGuiceFilter(com.google.inject.Binder binder)
static void
bindGuiceFilter(String pattern, com.google.inject.Binder binder)
protected void
bindSecurityManager(com.google.inject.binder.AnnotatedBindingBuilder<? super SecurityManager> bind)
Binds the security manager.protected void
bindSessionManager(com.google.inject.binder.AnnotatedBindingBuilder<SessionManager> bind)
Binds the session manager.protected void
bindWebEnvironment(com.google.inject.binder.AnnotatedBindingBuilder<? super WebEnvironment> bind)
protected void
bindWebSecurityManager(com.google.inject.binder.AnnotatedBindingBuilder<? super WebSecurityManager> bind)
Binds the security manager.protected static <T extends PathMatchingFilter>
com.google.inject.Key<T>config(com.google.inject.Key<T> baseKey, String configValue)
Deprecated.protected static <T extends PathMatchingFilter>
com.google.inject.Key<T>config(com.google.inject.TypeLiteral<T> typeLiteral, String configValue)
Deprecated.protected static <T extends PathMatchingFilter>
com.google.inject.Key<T>config(Class<T> type, String configValue)
Deprecated.protected void
configureShiro()
Implement this method in order to configure your realms and any other Shiro customization you may need.protected abstract void
configureShiroWeb()
protected static <T extends Filter>
ShiroWebModule.FilterConfig<T>filterConfig(com.google.inject.Key<T> baseKey)
Builds a FilterConfig from a Filer and configuration Stringprotected static <T extends Filter>
ShiroWebModule.FilterConfig<T>filterConfig(com.google.inject.Key<T> baseKey, String configValue)
Builds a FilterConfig from a Filer and configuration Stringprotected static <T extends Filter>
ShiroWebModule.FilterConfig<T>filterConfig(com.google.inject.TypeLiteral<T> typeLiteral, String configValue)
Builds a FilterConfig from a Filer and configuration Stringprotected static <T extends Filter>
ShiroWebModule.FilterConfig<T>filterConfig(Class<T> type, String configValue)
Builds a FilterConfig from a Filer and configuration StringList<ShiroWebModule.FilterConfig<? extends Filter>>
globalFilters()
static com.google.inject.servlet.ServletModule
guiceFilterModule()
static com.google.inject.servlet.ServletModule
guiceFilterModule(String pattern)
-
Methods inherited from class org.apache.shiro.guice.ShiroModule
add, bindBeanType, bindEventBus, bindRealm, configure, destroy
-
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
-
-
-
-
Field Detail
-
ANON
public static final com.google.inject.Key<AnonymousFilter> ANON
-
AUTHC
public static final com.google.inject.Key<FormAuthenticationFilter> AUTHC
-
AUTHC_BASIC
public static final com.google.inject.Key<BasicHttpAuthenticationFilter> AUTHC_BASIC
-
AUTHC_BEARER
public static final com.google.inject.Key<BearerHttpAuthenticationFilter> AUTHC_BEARER
-
NO_SESSION_CREATION
public static final com.google.inject.Key<NoSessionCreationFilter> NO_SESSION_CREATION
-
LOGOUT
public static final com.google.inject.Key<LogoutFilter> LOGOUT
-
PERMS
public static final com.google.inject.Key<PermissionsAuthorizationFilter> PERMS
-
PORT
public static final com.google.inject.Key<PortFilter> PORT
-
REST
public static final com.google.inject.Key<HttpMethodPermissionFilter> REST
-
ROLES
public static final com.google.inject.Key<RolesAuthorizationFilter> ROLES
-
USER
public static final com.google.inject.Key<UserFilter> USER
-
INVALID_REQUEST
public static final com.google.inject.Key<InvalidRequestFilter> INVALID_REQUEST
-
-
Constructor Detail
-
ShiroWebModule
public ShiroWebModule(ServletContext servletContext)
-
-
Method Detail
-
bindGuiceFilter
public static void bindGuiceFilter(com.google.inject.Binder binder)
-
bindGuiceFilter
public static void bindGuiceFilter(String pattern, com.google.inject.Binder binder)
-
guiceFilterModule
public static com.google.inject.servlet.ServletModule guiceFilterModule()
-
guiceFilterModule
public static com.google.inject.servlet.ServletModule guiceFilterModule(String pattern)
-
globalFilters
public List<ShiroWebModule.FilterConfig<? extends Filter>> globalFilters()
-
configureShiro
protected final void configureShiro()
Description copied from class:ShiroModule
Implement this method in order to configure your realms and any other Shiro customization you may need.- Specified by:
configureShiro
in classShiroModule
-
configureShiroWeb
protected abstract void configureShiroWeb()
-
bindSecurityManager
protected final void bindSecurityManager(com.google.inject.binder.AnnotatedBindingBuilder<? super SecurityManager> bind)
Description copied from class:ShiroModule
Binds the security manager. Override this method in order to provide your own security manager binding. By default, aDefaultSecurityManager
is bound as an eager singleton.- Overrides:
bindSecurityManager
in classShiroModule
-
bindWebSecurityManager
protected void bindWebSecurityManager(com.google.inject.binder.AnnotatedBindingBuilder<? super WebSecurityManager> bind)
Binds the security manager. Override this method in order to provide your own security manager binding. By default, aDefaultWebSecurityManager
is bound as an eager singleton.- Parameters:
bind
-
-
bindSessionManager
protected void bindSessionManager(com.google.inject.binder.AnnotatedBindingBuilder<SessionManager> bind)
Binds the session manager. Override this method in order to provide your own session manager binding. By default, aDefaultWebSessionManager
is bound as an eager singleton.- Overrides:
bindSessionManager
in classShiroModule
- Parameters:
bind
-
-
bindEnvironment
protected final void bindEnvironment(com.google.inject.binder.AnnotatedBindingBuilder<Environment> bind)
Description copied from class:ShiroModule
Binds the environment. Override this method in order to provide your own environment binding. By default, aGuiceEnvironment
is bound as an eager singleton.- Overrides:
bindEnvironment
in classShiroModule
-
bindWebEnvironment
protected void bindWebEnvironment(com.google.inject.binder.AnnotatedBindingBuilder<? super WebEnvironment> bind)
-
addFilterChain
protected final void addFilterChain(String pattern, com.google.inject.Key<? extends Filter> key)
-
addFilterChain
protected final void addFilterChain(String pattern, ShiroWebModule.FilterConfig<? extends Filter>... filterConfigs)
Maps 'n' number offilterConfig
s to a specific path pattern.
For example, a path of '/my_private_resource/**' to 'filterConfig(AUTHC)' would require any resource under the path '/my_private_resource' would be processed through theFormAuthenticationFilter
.- Parameters:
pattern
- URL patter to be mapped to a FilterConfig, e.g. '/my_private-path/**'filterConfigs
- FilterConfiguration representing the Filter and config to be used when processing resources onpattern
.- Since:
- 1.4
-
filterConfig
protected static <T extends Filter> ShiroWebModule.FilterConfig<T> filterConfig(com.google.inject.Key<T> baseKey, String configValue)
Builds a FilterConfig from a Filer and configuration String- Type Parameters:
T
- A Servlet Filter class.- Parameters:
baseKey
- The Key of the Filter class to be used.- Returns:
- A FilterConfig used to map a String path to this configuration.
- Since:
- 1.4
-
filterConfig
protected static <T extends Filter> ShiroWebModule.FilterConfig<T> filterConfig(com.google.inject.Key<T> baseKey)
Builds a FilterConfig from a Filer and configuration String- Type Parameters:
T
- A Servlet Filter class.- Parameters:
baseKey
- The Key of the Filter class to be used.- Returns:
- A FilterConfig used to map a String path to this configuration.
- Since:
- 1.4
-
filterConfig
protected static <T extends Filter> ShiroWebModule.FilterConfig<T> filterConfig(com.google.inject.TypeLiteral<T> typeLiteral, String configValue)
Builds a FilterConfig from a Filer and configuration String- Type Parameters:
T
- A Servlet Filter class.- Parameters:
typeLiteral
- The TyleLiteral of the filter key to be used.configValue
- the configuration used.- Returns:
- A FilterConfig used to map a String path to this configuration.
- Since:
- 1.4
-
filterConfig
protected static <T extends Filter> ShiroWebModule.FilterConfig<T> filterConfig(Class<T> type, String configValue)
Builds a FilterConfig from a Filer and configuration String- Type Parameters:
T
- A Servlet Filter class.- Parameters:
type
- The filter to be used.configValue
- the configuration used.- Returns:
- A FilterConfig used to map a String path to this configuration.
- Since:
- 1.4
-
addFilterChain
@Deprecated protected final void addFilterChain(String pattern, com.google.inject.Key<? extends Filter>... keys)
Deprecated.Adds a filter chain to the shiro configuration. NOTE: If the provided key is for a subclass ofPathMatchingFilter
, it will be registered with a proper provider.- Parameters:
pattern
-keys
-
-
config
@Deprecated protected static <T extends PathMatchingFilter> com.google.inject.Key<T> config(com.google.inject.Key<T> baseKey, String configValue)
Deprecated.
-
config
@Deprecated protected static <T extends PathMatchingFilter> com.google.inject.Key<T> config(com.google.inject.TypeLiteral<T> typeLiteral, String configValue)
Deprecated.
-
config
@Deprecated protected static <T extends PathMatchingFilter> com.google.inject.Key<T> config(Class<T> type, String configValue)
Deprecated.
-
-