zoukankan      html  css  js  c++  java
  • springboot之拦截器

    拦截器:

      

    package com.example.demo;
    
    import org.springframework.context.annotation.Bean;
    import org.springframework.context.annotation.Configuration;
    import org.springframework.web.servlet.config.annotation.InterceptorRegistration;
    import org.springframework.web.servlet.config.annotation.InterceptorRegistry;
    import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;
    import org.springframework.web.servlet.handler.HandlerInterceptorAdapter;
    
    import javax.servlet.http.HttpServletRequest;
    import javax.servlet.http.HttpServletResponse;
    import javax.servlet.http.HttpSession;
    import java.io.IOException;
    
    @Configuration
    public class WebConfiguration implements WebMvcConfigurer {
    
    
        @Bean
        public SecurityInterceptor getSecurityInterceptor() {
            return new SecurityInterceptor();
        }
    
        @Override
        public void addInterceptors(InterceptorRegistry registry) {
            InterceptorRegistration addInterceptor = registry.addInterceptor(getSecurityInterceptor());
            //排除配置
            addInterceptor.excludePathPatterns("/login/**");//排除登录
            // 拦截配置
            addInterceptor.addPathPatterns("/**/**");
        }
    
        private class SecurityInterceptor extends HandlerInterceptorAdapter {
            @Override
            public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws IOException {
                HttpSession session = request.getSession();
                //判断是否已有该用户登录的session
                if (session.getAttribute("account") != null) {
                    return true;
                }
                response.getWriter().print("not login");
                return false;
            }
        }
    }
    

      控制器:

    package com.example.demo;
    
    import com.example.demo.bean.User;
    import org.springframework.web.bind.annotation.GetMapping;
    import org.springframework.web.bind.annotation.RestController;
    
    import javax.servlet.http.HttpSession;
    
    
    @RestController
    public class MailController {
    
    
        @GetMapping("/user")
        public User send() {
    
            User user = new User();
            user.setName("Li Hua");
            user.setAge(25);
            user.setSex(1);
            return user;
    
        }
    
        @GetMapping("/login")
        public String login(HttpSession session) {
           session.setAttribute("account", "ggband");
            return "登录成功";
    
        }
    }
    

      

    ggband
  • 相关阅读:
    【MySQL】JavaWeb项目中配置数据库的连接池
    【Java】Struts2配置默认Action和配置Action的默认处理类
    【Java】Struts2中使用ServletAPI
    【JavaScript】JS对象-属性的遍历,删除对象属性
    nginx 的三种虚拟主机配置方法
    nginx官方源安装-主配置文件详解
    http协议工作原理及工作流程
    ssh安全优化免密登陆
    sersync 实时同步网站数据
    nfs 共享存储
  • 原文地址:https://www.cnblogs.com/ggband/p/9714247.html
Copyright © 2011-2022 走看看