如何将SpringMVC Shiro的JavaConfig配置改写成长尾?
- 内容介绍
- 文章标签
- 相关推荐
本文共计1026个文字,预计阅读时间需要5分钟。
javapackage com.amiu.spring.config;
import java.util.EnumSet;import javax.servlet.DispatcherType;import javax.servlet.FilterRegistration.Dynamic;import javax.servlet.ServletContext;import javax.servlet.ServletException;
package com.amiu.spring.config; import java.util.EnumSet; import javax.servlet.DispatcherType; import javax.servlet.FilterRegistration.Dynamic; import javax.servlet.ServletContext; import javax.servlet.ServletException; import org.springframework.web.filter.DelegatingFilterProxy; import org.springframework.web.servlet.support.AbstractAnnotationConfigDispatcherServletInitializer; import org.springframework.web.util.Log4jConfigListener; public class WebInitializer extends AbstractAnnotationConfigDispatcherServletInitializer{ @Override protected Class [] getRootConfigClasses() { return new Class[]{MvcConfig.class,ShiroConfig.class}; } @Override protected Class [] getServletConfigClasses() { return null; } @Override protected String[] getServletMappings() { return new String[]{"/"}; } /** * 这个方法tomcat启动就会调用,可以代替web.xml注册filter,listener,servlet等 */ @Override public void onStartup(ServletContext container) throws ServletException { //config log4j listentr container.setInitParameter("log4jConfigLocation", "classpath:log4j.properties"); container.addListener(Log4jConfigListener.class); //config shiro filter Dynamic filterRegistration = container.addFilter("shiroFilter", DelegatingFilterProxy.class); filterRegistration.setInitParameter("targetFilterLifecycle", "true"); filterRegistration.addMappingForUrlPatterns( EnumSet.of(DispatcherType.REQUEST,DispatcherType.FORWARD), false, "/*");//配置mapping super.onStartup(container); } } 2、WebInitializer对应的web.xml
log4jConfigLocation
classpath:log4j.properties
contextConfigLocation
classpath:springmvc-config.xml
package com.amiu.spring.config;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.ComponentScan;
import org.springframework.context.annotation.Configuration;
import org.springframework.context.annotation.PropertySource;
import org.springframework.context.support.PropertySourcesPlaceholderConfigurer;
import org.springframework.www.springframework.org/schema/beans" xmlns:xsi="www.w3.org/2001/XMLSchema-instance" xmlns:mvc="www.springframework.org/schema/mvc" xmlns:context="www.springframework.org/schema/context" xmlns:cache="www.springframework.org/schema/cache" xmlns:p="www.springframework.org/schema/p" xsi:schemalocation="
www.springframework.org/schema/beans
www.springframework.org/schema/beans/spring-beans-4.2.xsd
www.springframework.org/schema/context
www.springframework.org/schema/context/spring-context-4.2.xsd
www.springframework.org/schema/mvc
www.springframework.org/schema/mvc/spring-mvc-4.2.xsd">
package com.amiu.spring.config;
import java.util.LinkedHashMap;
import java.util.Map;
import org.apache.shiro.cache.ehcache.EhCacheManager;
import org.apache.shiro.spring.web.ShiroFilterFactoryBean;
import org.apache.shiro.web.mgt.DefaultWebSecurityManager;
import org.apache.shiro.web.session.mgt.DefaultWebSessionManager;
import org.apache.shiro.web.session.mgt.ServletContainerSessionManager;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import com.amiu.shiro.MyRealm;
import com.amiu.shiro.RetryLimitHashedCredentials;
@Configuration
public class ShiroConfig {
@Bean(name="shiroFilter")
public ShiroFilterFactoryBean shiroFilter(){
ShiroFilterFactoryBean shiroFilter = new ShiroFilterFactoryBean();
// 安全管理器
shiroFilter.setSecurityManager(securityManager());
//默认的登陆访问url
shiroFilter.setLoginUrl("/login");
//登陆成功后跳转的url
shiroFilter.setSuccessUrl("/index");
//没有权限跳转的url
shiroFilter.setUnauthorizedUrl("/unauth");
//自定义Filter
// Map
本文共计1026个文字,预计阅读时间需要5分钟。
javapackage com.amiu.spring.config;
import java.util.EnumSet;import javax.servlet.DispatcherType;import javax.servlet.FilterRegistration.Dynamic;import javax.servlet.ServletContext;import javax.servlet.ServletException;
package com.amiu.spring.config; import java.util.EnumSet; import javax.servlet.DispatcherType; import javax.servlet.FilterRegistration.Dynamic; import javax.servlet.ServletContext; import javax.servlet.ServletException; import org.springframework.web.filter.DelegatingFilterProxy; import org.springframework.web.servlet.support.AbstractAnnotationConfigDispatcherServletInitializer; import org.springframework.web.util.Log4jConfigListener; public class WebInitializer extends AbstractAnnotationConfigDispatcherServletInitializer{ @Override protected Class [] getRootConfigClasses() { return new Class[]{MvcConfig.class,ShiroConfig.class}; } @Override protected Class [] getServletConfigClasses() { return null; } @Override protected String[] getServletMappings() { return new String[]{"/"}; } /** * 这个方法tomcat启动就会调用,可以代替web.xml注册filter,listener,servlet等 */ @Override public void onStartup(ServletContext container) throws ServletException { //config log4j listentr container.setInitParameter("log4jConfigLocation", "classpath:log4j.properties"); container.addListener(Log4jConfigListener.class); //config shiro filter Dynamic filterRegistration = container.addFilter("shiroFilter", DelegatingFilterProxy.class); filterRegistration.setInitParameter("targetFilterLifecycle", "true"); filterRegistration.addMappingForUrlPatterns( EnumSet.of(DispatcherType.REQUEST,DispatcherType.FORWARD), false, "/*");//配置mapping super.onStartup(container); } } 2、WebInitializer对应的web.xml
log4jConfigLocation
classpath:log4j.properties
contextConfigLocation
classpath:springmvc-config.xml
package com.amiu.spring.config;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.ComponentScan;
import org.springframework.context.annotation.Configuration;
import org.springframework.context.annotation.PropertySource;
import org.springframework.context.support.PropertySourcesPlaceholderConfigurer;
import org.springframework.www.springframework.org/schema/beans" xmlns:xsi="www.w3.org/2001/XMLSchema-instance" xmlns:mvc="www.springframework.org/schema/mvc" xmlns:context="www.springframework.org/schema/context" xmlns:cache="www.springframework.org/schema/cache" xmlns:p="www.springframework.org/schema/p" xsi:schemalocation="
www.springframework.org/schema/beans
www.springframework.org/schema/beans/spring-beans-4.2.xsd
www.springframework.org/schema/context
www.springframework.org/schema/context/spring-context-4.2.xsd
www.springframework.org/schema/mvc
www.springframework.org/schema/mvc/spring-mvc-4.2.xsd">
package com.amiu.spring.config;
import java.util.LinkedHashMap;
import java.util.Map;
import org.apache.shiro.cache.ehcache.EhCacheManager;
import org.apache.shiro.spring.web.ShiroFilterFactoryBean;
import org.apache.shiro.web.mgt.DefaultWebSecurityManager;
import org.apache.shiro.web.session.mgt.DefaultWebSessionManager;
import org.apache.shiro.web.session.mgt.ServletContainerSessionManager;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import com.amiu.shiro.MyRealm;
import com.amiu.shiro.RetryLimitHashedCredentials;
@Configuration
public class ShiroConfig {
@Bean(name="shiroFilter")
public ShiroFilterFactoryBean shiroFilter(){
ShiroFilterFactoryBean shiroFilter = new ShiroFilterFactoryBean();
// 安全管理器
shiroFilter.setSecurityManager(securityManager());
//默认的登陆访问url
shiroFilter.setLoginUrl("/login");
//登陆成功后跳转的url
shiroFilter.setSuccessUrl("/index");
//没有权限跳转的url
shiroFilter.setUnauthorizedUrl("/unauth");
//自定义Filter
// Map

