文档章节

spring boot 中使用spring mvc interceptor(拦截器)判断操作权限

whitelover
 whitelover
发布于 2016/02/16 17:53
字数 287
阅读 5.5K
收藏 3

#程序员薪资揭榜#你做程序员几年了?月薪多少?发量还在么?>>>

1.第一步:添加拦截器

import org.springframework.context.annotation.Configuration;
import org.springframework.web.servlet.config.annotation.InterceptorRegistry;
import org.springframework.web.servlet.config.annotation.WebMvcConfigurerAdapter;

@Configuration
public class TestInterceptor extends WebMvcConfigurerAdapter {

    /**
     * 添加拦截器
     */
    @Override
    public void addInterceptors(InterceptorRegistry registry) {
        registry.addInterceptor(new TestHandlerInterceptor())
                //添加需要验证登录用户操作权限的请求
                .addPathPatterns("/testContrl/create*", "/testContrl/update*", "/testContrl/delete*")
                //排除不需要验证登录用户操作权限的请求
                .excludePathPatterns("/userCtrl/*");
    }
}

2.第二步: 拦截器实现

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.springframework.http.HttpStatus;
import org.springframework.web.servlet.ModelAndView;
import org.springframework.web.servlet.handler.HandlerInterceptorAdapter;

/**
 * 拦截器实现
 */
public class TestHandlerInterceptor extends HandlerInterceptorAdapter {

    @Override
    public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception {

        int type = (Integer) request.getSession().getAttribute("userType");
        if (type == 1) {
            return true;
        } else {
            String result = ResultUtils.getErrorResult("当前登录用户无操作权限!");
            response.getOutputStream().write(result.getBytes());
            response.setStatus(HttpStatus.OK.value());
            return false;
        }
    }

    @Override
    public void postHandle(HttpServletRequest request, HttpServletResponse response, Object handler, ModelAndView modelAndView)
            throws Exception {
        // TODO Auto-generated method stub
    }

    @Override
    public void afterCompletion(HttpServletRequest request, HttpServletResponse response, Object handler, Exception ex)
            throws Exception {
        // TODO Auto-generated method stub
    }

}

3.第三步:测试控制器

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.http.ResponseEntity;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;

@Controller
@RequestMapping(value = "/testContrl")
public class CommonController {

    @Autowired
    private TestService testService;
    /**
     * @return
     */
    @RequestMapping(value = "/createObj")
    @ResponseBody
    public String createObj() {
        // do something .......
        return "success";
    }
}


© 著作权归作者所有

上一篇: flume 参考网站
下一篇: Maven 初体验
whitelover
粉丝 13
博文 27
码字总数 10944
作品 0
私信 提问
加载中

评论(0)

Spring Boot2(七):拦截器和过滤器

本文在个人技术博客【鸟不拉屎】同步发布,详情可猛戳 亦可扫描文章末尾二维码关注个人公众号【鸟不拉屎】 一、前言 过滤器和拦截器两者都具有AOP的切面思想,关于aop切面,可以看上一篇文章...

osc_3xmkn220
2019/07/06
12
0
Spring MVC 拦截器的使用

Spring MVC 拦截器的使用 拦截器简介 Spring MVC 中的拦截器(Interceptor)类似于 Servler 中的过滤器(Filter)。用于对处理器进行预处理和后处理。常用于日志记录、权限管理、性能监控、通用行...

osc_ai011l20
04/16
8
0
Java Spring Boot VS .NetCore (十) Java Interceptor vs .NetCore Interceptor

Java Spring Boot VS .NetCore (一)来一个简单的 Hello World Java Spring Boot VS .NetCore (二)实现一个过滤器Filter Java Spring Boot VS .NetCore (三)Ioc容器处理 Java Spring Bo......

osc_85868zg3
2018/08/21
2
0
【java web】拦截器inteceptor

一、简介 java里的拦截器提供的是非系统级别的拦截,也就是说,就覆盖面来说,拦截器不如过滤器强大,但是更有针对性。 Java中的拦截器是基于Java反射机制实现的,更准确的划分,应该是基于J...

osc_hwpd2zko
01/04
4
0
springboot中使用拦截器

5.1 回顾SpringMVC使用拦截器步骤 自定义拦截器类,实现HandlerInterceptor接口 注册拦截器类 5.2 Spring Boot使用拦截器步骤 5.2.1 按照Spring MVC的方式编写一个拦截器类,实现HandlerInte...

osc_kbvhylv9
2019/06/17
12
0

没有更多内容

加载失败,请刷新页面

加载更多

时间片轮询法

时间片轮询法 时间片轮询法是一种比较简单易用的系统架构之一,它对于系统中的任务调度算法是分时处理。核心思路是把 CPU 的时间分时给各个任务使用。我们常用的定时方法是定时器,把调度器放...

osc_j7rfhwi0
13分钟前
9
0
二项堆(三)之 Java的实现

概要 前面分别通过C和C++实现了二项堆,本章给出二项堆的Java版本。还是那句老话,三种实现的原理一样,择其一了解即可。 目录 1. 二项树的介绍 2. 二项堆的介绍 3. 二项堆的基本操作 4. 二项...

osc_ct8a6sdg
14分钟前
6
0
Windows 10 安装 Hadoop 2.10

  1. 配置JAVA_HOME环境和Hadoop环境:      2. 配置bin   3. 进入Hadoop中/etc/hadoop下     配置hdfs-site.xml增加:    <property> <!-- 单节点,所以配置成1 -->...

osc_jmtenr3d
14分钟前
18
0
如何让你在众多二手车中挑中满意的?python帮你实现(附源码)

前言 老司机带你去看车,网上的几千条的二手车数据,只需几十行代码,就可以统统获取,保存数据到我们本地电脑上 知识点: 1.python基础知识 2.函数 3.requests库 4.xpath适合零基础的同学 ...

osc_rmqoxylv
15分钟前
12
0
Selenium IDE使用指南三(控制流)

Selenium IDE附带的命令使您可以添加条件逻辑和循环到测试中。 这使您仅在满足应用程序中的某些条件时才执行命令(或一组命令),或根据预定义的标准重复执行命令。 JavaScript表达式 通过使...

分布式编程
15分钟前
17
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部