千家信息网

springboot如何使用拦截器判断是否登录

发表于:2024-10-27 作者:千家信息网编辑
千家信息网最后更新 2024年10月27日,这期内容当中小编将会给大家带来有关springboot如何使用拦截器判断是否登录,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。springboot拦截器判断是否登录
千家信息网最后更新 2024年10月27日springboot如何使用拦截器判断是否登录

这期内容当中小编将会给大家带来有关springboot如何使用拦截器判断是否登录,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。

springboot拦截器判断是否登录

实现拦截器的两个步骤

  • 自定义拦截器实现HandlerInterceptor接口

  • 创建一个配置类继承WebMvcConfigurerAdapter类并重写addInterceptors方法

代码:

1、自定义拦截器

@Componentpublic class AdminLoginInterceptor implements HandlerInterceptor { //    在请求处理之前调用,只有返回true才会执行请求    @Override    public boolean preHandle(HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse, Object o) throws Exception {//        得到session        HttpSession session = httpServletRequest.getSession(true);//        得到对象        Object admin = session.getAttribute("admin");//        判断对象是否存在        if(admin!=null){            return true;        }else{//            不存在则跳转到登录页            httpServletResponse.sendRedirect(httpServletRequest.getContextPath()+"/login/adminLogin");            return false;        }    } //    试图渲染之后执行    @Override    public void postHandle(HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse, Object o, ModelAndView modelAndView) throws Exception {     } //    在请求处理之后,视图渲染之前执行    @Override    public void afterCompletion(HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse, Object o, Exception e) throws Exception {     }}

2、自定义配置类继承WebMvcConfigurerAdapter

@SpringBootConfigurationpublic class AdminLoginAdapter extends WebMvcConfigurerAdapter {     @Autowired    AdminLoginInterceptor adminLoginInterceptor;     @Override    public void addInterceptors(InterceptorRegistry registry) {        registry.addInterceptor(adminLoginInterceptor).addPathPatterns("/admin/**").excludePathPatterns("/login/**");        super.addInterceptors(registry);    }}

springboot 增加拦截器判断是否登录

1、创建拦截器

package com.example.demo.interceptor;import org.slf4j.Logger;import org.slf4j.LoggerFactory;import org.springframework.web.servlet.HandlerInterceptor;import org.springframework.web.servlet.ModelAndView;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletResponse;import javax.servlet.http.HttpSession;/** * 〈一句话功能简述〉
* 〈拦截器〉 * * @author 丶Zh2Guo * @create 2018/11/22 * @since 1.0.0 */public class LoginInterceptor implements HandlerInterceptor { private Logger logger = LoggerFactory.getLogger(LoginInterceptor.class); // 在请求处理之前,只有返回true才会执行请求 @Override public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception { logger.info("[拦截器]启动登录状态拦截"); // 得到session HttpSession session = request.getSession(); logger.info("[拦截器]sessionID:" + session.getId()); // 得到用户信息 Object userInfo = session.getAttribute("userInfo"); //判断用户是否登录 if (userInfo != null) { logger.info("[拦截器]用户已经登录,用户名,密码:" + session.getAttribute("userInfo")); return true; } else { //不存在跳转至登录页 response.sendRedirect(request.getContextPath() + "/"); // 跳转到首页登录 logger.info("[拦截器]用户没有登录,已跳转到:" + request.getContextPath() + "/"); return false; } } // 视图渲染后执行 @Override public void postHandle(HttpServletRequest request, HttpServletResponse response, Object handler, ModelAndView modelAndView) throws Exception { } // 请求处理后,视图渲染前 @Override public void afterCompletion(HttpServletRequest request, HttpServletResponse response, Object handler, Exception ex) throws Exception { }}

2、继承WebMvcConfigureAdapter类

覆盖其addInterceptors接口,注册自定义的拦截器

@Configuration 注解一定要有

package com.example.demo.interceptor;import org.springframework.context.annotation.Configuration;import org.springframework.web.servlet.config.annotation.InterceptorRegistry;import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;/** * 〈一句话功能简述〉
* 〈自定义配置类〉 * * @author 丶Zh2Guo * @create 2018/11/22 * @since 1.0.0 */@Configurationpublic class LoginConfig implements WebMvcConfigurer { /** * 该方法用于注册拦截器 * 可注册多个拦截器,多个拦截器组成一个拦截器链 */ @Override public void addInterceptors(InterceptorRegistry registry) { // addPathPatterns 添加路径 // excludePathPatterns 排除路径 registry.addInterceptor(new LoginInterceptor()) .addPathPatterns("/sys/*"); // 拦截sys路径下的url// .excludePathPatterns(""); }}

3、LoginController

/** * Copyright (C), 2017-2018, XXX有限公司 * FileName: LoginController * Author:   丶Zh2Guo * Date:     2018/11/22 11:10 * Description: 登录 * History: *           

4、未登录会自动跳转到登录页面

上述就是小编为大家分享的springboot如何使用拦截器判断是否登录了,如果刚好有类似的疑惑,不妨参照上述分析进行理解。如果想知道更多相关知识,欢迎关注行业资讯频道。

登录 拦截器 用户 处理 一句话 信息 功能 密码 对象 用户名 视图 路径 配置 内容 只有 多个 接口 方法 分析 成功 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 深圳天支网络技术有限公司 数据库查询当前时间精确到秒 内网数据库外网查询 mac版本更新内部服务器出错 网络安全等级保护备案是啥意思 网络安全基本组件 江苏信息网络安全委员会 网络安全咨询服务工作 什么游戏开服不占用服务器内存 网易的服务器验证是什么 网络安全的含义及特征 微信最新版本无法连接到服务器 软件开发思路 青岛软件开发企业排名 ios地图软件开发 淄川人力资源软件开发公司 新乡网通dns服务器地址是什么 口袋魔域服务器查询 北京巨量引擎网络技术电话 数据库编程技术第二章上机练习 时间同步服务器 超时 轻量应用云服务器SsH无法 网络安全工作所需要遵循 软件开发部门的绩效考核点 数据库数据 提取 大学生做网络安全教育 软件开发一般包括哪些 数据库key L 江苏信息网络安全委员会 五华区信息化软件开发咨询报价
0