博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
spring boot 中使用spring mvc interceptor(拦截器)判断操作权限
阅读量:7009 次
发布时间:2019-06-28

本文共 2630 字,大约阅读时间需要 8 分钟。

  hot3.png

1.第一步:添加拦截器

import org.springframework.context.annotation.Configuration;import org.springframework.web.servlet.config.annotation.InterceptorRegistry;import org.springframework.web.servlet.config.annotation.WebMvcConfigurerAdapter;@Configurationpublic 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";    }}

转载于:https://my.oschina.net/gmd/blog/615849

你可能感兴趣的文章
基层公务员自述:每天擦桌子证明自己还活着(全文)
查看>>
电话营销六种经典开场白
查看>>
wxPython图像相关处理
查看>>
jdbc链接oracle数据库
查看>>
重新配置Synology磁盘模式到RAID5
查看>>
ORA-00845: MEMORY_TARGET not supported on this system
查看>>
完美解决failed to open stream: HTTP request failed!(file_get_contents引起的)
查看>>
安装包大全
查看>>
Mysql 通过全量备份和binlog恢复整体数据
查看>>
使用paramiko模块在远程服务器执行命令
查看>>
Cannot change version of project facet Dynamic web
查看>>
Nginx中文手册
查看>>
jqgrid saveRow 保存行 编辑数据向后台保存的使用
查看>>
离职后的选择
查看>>
Java编写QQ邮件发送程序
查看>>
JavaWeb
查看>>
我的友情链接
查看>>
Struts2输入<无提示解决方法
查看>>
字符串资源多语言的出错问题
查看>>
集合框架
查看>>