iis服务器助手广告广告
返回顶部
首页 > 资讯 > 后端开发 > Python >springboot使用拦截器判断是否登录
  • 322
分享到

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

2024-04-02 19:04:59 322人浏览 八月长安

Python 官方文档:入门教程 => 点击学习

摘要

目录SpringBoot拦截器判断是否登录实现拦截器的两个步骤1、自定义拦截器2、自定义配置类继承WEBmvcConfigurerAdapterspringboot 增加拦截器判断是

springboot拦截器判断是否登录

实现拦截器的两个步骤

  • 自定义拦截器实现HandlerInterceptor接口
  • 创建一个配置类继承WebMvcConfigurerAdapter类并重写addInterceptors方法

代码:

1、自定义拦截器


@Component
public 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


@SpringBootConfiguration
public class AdminLoginAdapter extends WebMvcConfigurerAdapter { 
    @Autowired
    AdminLoginInterceptor adminLoginInterceptor;
 
    @Override
    public void addInterceptors(InterceptorReGIStry registry) {
        registry.addInterceptor(adminLoginInterceptor).addPathPatterns("/admin
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;

@Configuration
public class LoginConfig implements WebMvcConfigurer {
    
    @Override
    public void addInterceptors(InterceptorRegistry registry) {
        // addPathPatterns 添加路径
        // excludePathPatterns 排除路径
        registry.addInterceptor(new LoginInterceptor())
                .addPathPatterns("/sys
package com.example.demo.controller;
import com.example.demo.dao.UserDAO;
import com.example.demo.pojo.User;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.ResponseBody;
import javax.servlet.http.HttpServletRequest;

@Controller
public class LoginController {
    // 日志
    private Logger logger = LoggerFactory.getLogger(LoginController.class);
    @Autowired
    private UserDAO userDAO;
    // 启动服务自动跳转登录
//    @RequestMapping(value = {"/", "/login"})
    @RequestMapping(value = "/")
    public String login() {
        return "login";
    }
    // 登录
    @RequestMapping(value = "/loginCheck", method = RequestMethod.POST)
    @ResponseBody
    public String loginCheck(HttpServletRequest request) {
        // 获取登录信息
        String userName = request.getParameter("userName");
        String passWord = request.getParameter("password");
        // 封装成对象
        User user = new User();
        user.setUserName(userName);
        user.setPassword(password);
        // 校验用户信息
        User info = userDAO.checkUser(user);
        if (info != null) {
            request.getSession().setAttribute("userInfo", userName + "-" + password);
            logger.info("登录成功,用户名:" + userName + "密码:" + password);
            return "success";
        } else {
            logger.info("登录失败,用户名:" + userName + "密码:" + password);
            return "fail";
        }
    }
}

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

以上为个人经验,希望能给大家一个参考,也希望大家多多支持编程网。

--结束END--

本文标题: springboot使用拦截器判断是否登录

本文链接: https://www.lsjlt.com/news/156880.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • springboot使用拦截器判断是否登录
    目录springboot拦截器判断是否登录实现拦截器的两个步骤1、自定义拦截器2、自定义配置类继承WebMvcConfigurerAdapterspringboot 增加拦截器判断是...
    99+
    2022-11-12
  • springboot如何使用拦截器判断是否登录
    这期内容当中小编将会给大家带来有关springboot如何使用拦截器判断是否登录,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。springboot拦截器判断是否登录实现拦截器的两个步骤自定义拦截器实现Ha...
    99+
    2023-06-25
  • 如何使用SpringBoot拦截器实现登录拦截
    小编给大家分享一下如何使用SpringBoot拦截器实现登录拦截,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!可以对URL路径进行拦截,可以用于权限验证、解决乱码...
    99+
    2023-06-29
  • SpringBoot登录用户权限拦截器
    1. 创建自定义拦截器类并实现 HandlerInterceptor 接口 package com.xgf.online_mall.interceptor; import c...
    99+
    2022-11-11
  • php怎么判断用户是否登录
    在PHP中,可以通过以下几种方式来判断用户是否登录:1. 使用会话(Session):在用户登录成功后,将用户的登录状态保存在会话中...
    99+
    2023-08-25
    php
  • SpringBoot登录用户权限拦截器的实现方法
    这篇文章主要介绍了SpringBoot登录用户权限拦截器的实现方法,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。 创建自定义拦截器类并实现 HandlerIntercepto...
    99+
    2023-06-14
  • SpringMVC如何使用拦截器控制登录
    SpringMVC如何使用拦截器控制登录?针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。SpringMVC读取Cookie判断用户是否登录,对每一个action都要进行判断。...
    99+
    2023-05-31
    springmvc 拦截器
  • java 使用过滤器实现登录拦截处理
    目录滤器实现登录拦截处理一、什么是过滤器二、工作原理及生命周期三、过滤器使用filter简易实现登录功能拦截LoginFlitercontroller结果图滤器实现登录拦截处理 一、...
    99+
    2022-11-12
  • 怎么使用shell判断目录是否为空
    使用shell脚本判断某个目录是否为空,可以通过查看目录中的文件数量来实现。具体的方法如下:```shell#!/bin/bash#...
    99+
    2023-09-16
    shell
  • SSM项目使用拦截器实现登录验证功能
    目录登录接口实现拦截器类代码实现配置文件实现登录接口实现 public User queryUser(String UserName, String Password,HttpSe...
    99+
    2022-11-13
  • 怎么使用Spring MVC拦截器实现一个登录功能
    怎么使用Spring MVC拦截器实现一个登录功能?相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。HandlerInterceptor接口Spring MVC中的Intercep...
    99+
    2023-05-31
    springmvc
  • 使用Struts2拦截器如何实现一个登录验证功能
    使用Struts2拦截器如何实现一个登录验证功能?针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。Struts2拦截器Struts2拦截器的概念和Spring Mvc拦截器一样...
    99+
    2023-05-31
    struts 登录验证 拦截器
  • Go WEB框架使用拦截器验证用户登录状态实现
    目录wego拦截器main函数登录逻辑登录拦截器的实现index页面的实现wego拦截器 wego拦截器是一个action(处理器函数)之前或之后被调用的函数,通常用于处理一些公共逻...
    99+
    2022-11-13
  • SSM项目中如何使用拦截器实现登录验证功能
    小编给大家分享一下SSM项目中如何使用拦截器实现登录验证功能,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!登录接口实现public User ...
    99+
    2023-06-28
  • 使用sql语句insert之前判断是否已存在记录
    目录sql语句insert之前判断是否已存在记录关于sql 插入时做判断 简单收集sql语句insert之前判断是否已存在记录 INSERT INTO test(A,B) sel...
    99+
    2022-11-12
  • 如何自动判断域名是否被微信拦截 被微信屏蔽的域名网址如何正常打开使用
    网站域名被微信封杀拦截怎么解决?如何防止微信封域名?点击域名在微信上提示 三种常见情况:1、已停止访问该页面。据用户投诉及腾讯手机管家云网址检测,该网页可能包含恶意欺诈内容。2、已停止访问该网页。网页包含诱导分享、诱导关注内容,被多人投诉,...
    99+
    2023-06-04
  • Android 使用SharePerference判断是否为第一次登陆的实现代码
    很多app中在第一次安装登陆时会有引导欢迎界面,第二次打开时就不再显示引导页面。 这个功能可以通过使用SharePreferences将用户的登陆信息保存起来,当app启动时判...
    99+
    2022-06-06
    登陆 Android
  • 怎么使用sql语句insert之前判断是否已存在记录
    今天就跟大家聊聊有关怎么使用sql语句insert之前判断是否已存在记录,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。sql语句insert之前判断是否已存在记录INSERT&nbs...
    99+
    2023-06-22
  • 微信小程序中如何实现用户授权以及判断登录是否过期
    小编给大家分享一下微信小程序中如何实现用户授权以及判断登录是否过期,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!初始界面:判断用...
    99+
    2022-10-19
  • 怎么在判断使用的浏览器是否支持css3
    怎么在判断使用的浏览器是否支持css3?很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。CSS @supports规则:语法:@supports (rul...
    99+
    2023-06-14
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作