`

spring mvc中拦截器+注解做权限判断

 
阅读更多
先来个注解


@Documented
@Inherited
@Target(ElementType.METHOD)
@Retention(RetentionPolicy.RUNTIME)
public @interface AuthPassport {
    boolean validate() default true;
}


然后CONGTROLLER中
public class AuthInterceptor extends HandlerInterceptorAdapter {
    
    @Override
    public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception {
        
        if(handler.getClass().isAssignableFrom(HandlerMethod.class)){
            AuthPassport authPassport = ((HandlerMethod) handler).getMethodAnnotation(AuthPassport.class);
            
            //没有声明需要权限,或者声明不验证权限
                if(authPassport == null || authPassport.validate() == false)
                return true;
            else{                
                //在这里实现自己的权限验证逻辑
                if(false)//如果验证成功返回true(这里直接写false来模拟验证失败的处理)
                    return true;
                else//如果验证失败
                {
                    //返回到登录界面
                    response.sendRedirect("account/login");
                    return false;
                }       
            }
        }
        else
            return true;   
     }
}



springservlet-config.xml添加如下内容:

<mvc:interceptors> 
    <!-- 国际化操作拦截器 如果采用基于(请求/Session/Cookie)则必需配置 -->
    <bean class="org.springframework.web.servlet.i18n.LocaleChangeInterceptor" /> 
    <!-- 如果不定义 mvc:mapping path 将拦截所有的URL请求 -->
    <bean class="com.demo.web.auth.AuthInterceptor"></bean>
</mvc:interceptors>

使用注解:

@AuthPassport
@RequestMapping(value={"/index","/hello"})
public ModelAndView index(){
    
    ModelAndView modelAndView = new ModelAndView();  
    modelAndView.addObject("message", "Hello World!");  
    modelAndView.setViewName("index");  
    return modelAndView;
}

分享到:
评论
1 楼 Master-Gao 2017-04-19  
spring用起来好复杂啊,东西好多多多多多多多多多多多多多多多多多多多多多多多多多多多多多多多多多多多多多多多多多多多多多多多多多多多多多多多多多多多多多多多多多多多多多多多多

相关推荐

    spring mvc + spring + hibernate 全注解整合开发视频教程 04

    在实际开发中,我们还会用到Spring的其他功能,比如Spring MVC的拦截器(Interceptor)用于全局处理,`@ExceptionHandler`注解处理异常,以及Spring的单元测试支持。同时,我们还会关注性能优化,如缓存机制(如使用...

    Spring+Spring mvc+Hibernate+Bootstrap、企业级员工信息管理系统

    后台通过自定义注解结合一个访问拦截器实现整个系统的权限控制 04. 系统前台采用全采用的Html+jQuery开发 05. 系统前台与后台的交互全部使用 Ajax 异步请求 06. 自定义 SecureValid 注解实现权限的控制 07. ...

    spring mvc案例+配置+原理详解+架包

    1. **web.xml**:配置DispatcherServlet,包括初始化参数、拦截器、监听器等。 2. **spring-mvc.xml**:定义Bean、数据源、事务管理器、视图解析器、HandlerMapping和HandlerAdapter等。 四、Spring MVC 原理 1. *...

    spring mvc + spring + hibernate 全注解整合开发视频教程 13

    在本教程中,我们将深入探讨如何使用Spring MVC、Spring和Hibernate三大框架进行全注解的整合开发。这个视频教程系列的第13部分,将帮助开发者掌握如何在Java Web项目中高效利用这些技术,实现一个现代化、高效且可...

    spring mvc+ibatis+spring注解

    Spring MVC、iBatis 和 Spring 注解是Java开发中常用的技术栈,它们分别负责Web层、数据访问层和依赖注入及配置。这篇文章将详细介绍这三个组件的结合使用以及相关的知识点。 **Spring MVC** Spring MVC 是 Spring ...

    ssh+aop+log4j+日志拦截器+注解

    标题中的"ssh+aop+log4j+日志拦截器+注解"涉及到的是Java Web开发中的几个核心组件和技术,这些技术在构建大型、分布式的企业级应用时常常被使用。下面将详细介绍这些知识点: 1. SSH (Spring, Struts, Hibernate)...

    Spring MVC+ Spring+ Mybatis 框架搭建

    接着,配置Spring MVC的DispatcherServlet-servlet.xml,设置视图解析器、拦截器等。对于Mybatis,需要编写Mapper XML文件和对应的Mapper接口,实现数据访问。 在实际开发中,我们通常会使用Spring Boot来简化SSM的...

    spring mvc + spring3.2.3 + mybatis3.2.3 + oracle

    在3.2.3版本中,增加了对Oracle的物理分页支持,通过MyBatis拦截器实现,避免了在业务代码中嵌入分页逻辑。此外,该版本还优化了参数映射和结果集映射,提高了性能和易用性。 **C3P0连接池** C3P0是一个开源的JDBC...

    spring mvc 中 实现自定义注解 拦截需要的方法

    网上很多人想使用注解拦截spring mvc action中的一个方法,实现方法很多,一般是通过在拦截器中分析url路径来实现, 使用自定义注解的方式来标注要拦截的 action 中的某个方法, 没有很好的解决方法, 如果通过借助spring...

    spring+spring mvc+mybatis框架整合实现超市货物管理系统

    同时,还需要配置Spring MVC的`servlet-context.xml`,定义DispatcherServlet的拦截器、视图解析器等。对于MyBatis,我们需要创建`mybatis-config.xml`配置文件,配置数据源、事务管理器以及映射文件的位置。 ...

    Spring MVC 拦截器入门例子

    Spring MVC 拦截器是基于Java的Web开发框架Spring MVC中的一个重要组件,它允许开发者在请求被控制器处理之前或之后执行自定义逻辑。拦截器主要用于实现通用功能,如权限验证、日志记录、性能监控等,从而提高代码的...

    spring mvc+ajax

    Spring MVC 是一个基于Java的轻量级Web应用框架,它为构建模型-视图-控制器(MVC)架构的应用程序提供了强大的支持。Ajax(Asynchronous JavaScript and XML)是一种在无需重新加载整个网页的情况下,能够更新部分...

    Spring mvc + Spring + Mybatis 整合demo

    3. **配置Spring MVC**:创建Spring MVC的配置文件(如`servlet-context.xml`),配置DispatcherServlet,声明视图解析器,定义拦截器,以及处理器映射器和处理器适配器。 4. **配置Mybatis**:编写Mybatis的全局...

    Spring MVC 拦截器

    拦截器是Spring MVC中的一个重要概念,它允许开发者在请求被控制器处理之前、之后以及处理完成之后进行额外的操作,例如权限验证、日志记录、性能监控等。 Spring MVC的拦截器与Servlet的Filter有所不同,Filter是...

    spring mvc+mybatis+oracle+jquery easy ui实现增删改查,带拦截器

    综上所述,"spring mvc+mybatis+oracle+jquery easy ui实现增删改查,带拦截器"的项目结合了现代Web开发中的多个核心技术,构建了一个完整的业务处理流程,从用户界面交互到数据库操作,再到安全控制,实现了高效且...

    《Spring MVC MYBatis企业应用实战+源码》

    4. 实现Spring MVC的拦截器,进行权限控制和日志记录。 5. 集成Spring Data JPA或MyBatis的Mapper,实现更高级的数据访问功能。 6. 整合Spring Security或Shiro进行安全控制,保护敏感资源。 7. 使用Spring MVC的...

    spring mvc+jdbctemplate非注解例子

    在本示例中,我们探讨的是一个基于Spring MVC和JdbcTemplate的非注解式应用程序,该程序可能用于处理数据访问层的操作。Spring MVC是Spring框架的一部分,它专注于Web应用程序的模型-视图-控制器(MVC)架构。而...

    Spring MVC注解项目实例

    总结起来,这个"Spring MVC注解项目实例"涵盖了Spring MVC框架的核心元素,包括注解驱动的控制器、拦截器的使用,以及数据库操作。它为初学者提供了一个动手实践的机会,帮助他们快速掌握Spring MVC的开发技巧。

    Spring3.0MVC注解(附实例)

    在示例代码中,我们还看到了自定义的拦截器配置,如`SessionInterceptor`和`SuperUserInterceptor`,它们可以用来处理会话管理和超级用户权限检查等逻辑。这些拦截器通过`&lt;property name="interceptors"&gt;`配置到`...

Global site tag (gtag.js) - Google Analytics