• 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
  • 相关阅读:
    lua "Hello, world!"[转]
    用16进制编辑器编写一个DLL文件【转自看雪】
    Lua脚本语言入门(目前魔兽使用的可以写在宏内的语言)转自中国Lua开发者
    some tips about web hacking
    DevCpp/Mingw32/GCC专栏
    .NET中的幕后英雄MSCOREE.dll [转]
    手写可执行程序[ 转自看雪]
    VC下编译lua和luabind[转]
    简论程序是如何动态修改内存或指令的【转自看雪】
    一些链接(转仅供收藏)
  • 原文地址:https://www.cnblogs.com/ggband/p/9714247.html
Copyright © 2020-2023  润新知