Integration with other modules
AcrossWebModule
Admin web creates its own PrefixingRequestMappingHandlerMapping
that picks up all @AdminWebController
and will prefix all request mappings with the root path of the admin web module.
Provide an AdminWebConfigurerAdapter
if you want to register interceptors that should only be applied to the admin web controllers.
SpringSecurityModule
By default AdminWebModule
adds a SpringWebSecurityConfigurerAdapter
with default rules for all requests under the admin web root.
If you wish to modify the default security rules, you must provide your own SpringWebSecurityConfigurerAdapter
that is positioned before the default AdminWebSecurityConfiguration
instance.
If you create a new SpringWebSecurityConfigurerAdapater
you will need to scope it correctly to the admin web root path and provide all rules including things like login/logout and remember me.
If you are interested more in extending the default configuration, you can extend AdminWebSecurityConfiguration
and override the customizeAdminWebSecurity
adapter method.
/**
* Create a custom security configurer that extends from the
* default AdminWebSecurityConfiguration but disables all
* security headers.
*
* The @OrderInModule annotation will ensure that this
* configurer will be positioned before the default configuration
* once we add it to the AdminWebModule context.
*/
@Configuration
@OrderInModule(Ordered.HIGHEST_PRECEDENCE)
public class DisableAdminWebSecurityHeaders extends AdminWebSecurityConfiguration
{
@Override
protected void customizeAdminWebSecurity( HttpSecurity http ) throws Exception {
http.headers().disable();
}
}
...
// Add the custom security configuration to the AdminWebModule
AdminWebModule adminWebModule = new AdminWebModule();
adminWebModule.addApplicationContextConfigurer( DisableAdminWebSecurityHeaders.class );
ApplicationInfoModule
If the ApplicationInfoModule
is present in the context, the configured application information will be used
to set the default remember-me cookie name (based on the ApplicationInfo.getApplicationId()
) and application title for
the administration interface (based on the ApplicationInfo.getApplicationName()
property).use DebugWebConfigurerAdapter to add interceptors only to debug web