ssm整合shiro实现权限

前言:开发后台怎么都会遇到权限这一块儿,谁都不例外。

第一步:导入jar包

commons-beanutils-1.8.3.jar

commons-logging-1.1.1.jar

log4j-1.2.17.jar

shiro-all-1.3.2.jar

shiro-core-1.2.3.jar

shiro-spring-1.3.2.jar

slf4j-api-1.7.5.jar

slf4j-log4j12-1.7.5.jar

第二步:在web.xml中配置filter

   
       shiroFilter
       org.springframework.web.filter.DelegatingFilterProxy
       
           targetFilterLifecycle
           true
       
   

   
       shiroFilter
       /*
   

PS:我搭建的ssm项目是只有两个配置文件,而不是像网上的分了mybatis什么的好几个xml配置文件 不是maven是单纯搭建

一个是applicationContext.xml这个是spring的配置文件,配置的是扫描包,mybatis,事物,springmvc注解,json数据返回

一个是DispatchServlet-servlet.xml 这个是springmvc的配置文件,配置扫描controller,静态资源,视图解析器,文件上传,shiro

第三步:在spring中配置shiro核心


    
        
        
    
    
        
    
    
    
	
		
			
				
			
		
	
	
	
    
        
    

    
    
    
	
    
        
        
        
        
 可以把下面的property删掉然后配置  /login.jsp =anon 这种
        
    
    
    
    	
    
到这里是配置完了,可以实现登录,我没有像一些网上写的配置 /login.jsp = anon 这个是我用java类写的,若不喜欢可以自己配置

具体如下


    
        
        
        
        
        
         
            
                /login.jsp = anon
                /login_user_admin = anon
                /css/** = anon
                /assets/** = anon
                /font/** = anon
                /images/** = anon
                /js/** = anon
                /products/** = anon
                /Widget/** = anon
                /logout = logout
                /query_all_kuaike = roles[admin]
                /** = authc
            
        	
    
这样就是在配置文件当中配置,如果是用java类:

ssm整合shiro实现权限_第1张图片

然后是实现权限,我用的是注解,因为方便,快捷省事

第一步:启用注解

在springmvcxml配置文件中配置

        
	
	
		
	

第二步:因为没有权限shiro是抛出异常,需要拦截该异常,并进行处理同样是在springmvcxml中配置

我这里是配置的我自己的实体类

写一个实体类,实现HandlerExceptionResolver接口

然后重写 resolveException方法

@Override
public ModelAndView resolveException(HttpServletRequest request, HttpServletResponse response, Object handler,
 		Exception ex) {
		// 根据不同错误转向不同页面    
        if(ex instanceof UnauthorizedException) {   
        	System.out.println(">>>>>>>>>>>>>>>>>>>>>>异常");
            return new ModelAndView("error");    
        }else {    
            return new ModelAndView("error");    
        }   
}

或者可以用配置


	
		
			
				/error
				/error
				/error
				error
			
		
	

然后就可以使用了,在方法的上面加注解

ssm整合shiro实现权限_第2张图片

可以奔放了




 

你可能感兴趣的:(java)