SpringBoot實(shí)現(xiàn)登錄攔截器的方法詳解
在項(xiàng)目目錄下建立兩個(gè)包:inter 與contsfig

在inter新建層中實(shí)現(xiàn)HandlerInterceptor的繼承類

package com.example.gameboxadminserver.inter;
import com.example.gameboxadminserver.entity.User;
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;
public class MyInterceptor implements HandlerInterceptor {
//在preHandle方法中進(jìn)行登錄判斷
@Override
public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception {
HttpSession session = request.getSession();
//session.setAttribute("adminName","o");
String adminName = (String)session.getAttribute("adminName");//獲取儲(chǔ)存的session
//System.out.println(adminName);
if(adminName==null){
System.out.println("請(qǐng)先登陸!");
return false;
}
return true;
}
@Override
public void postHandle(HttpServletRequest request, HttpServletResponse response, Object handler, ModelAndView modelAndView) throws Exception {
//System.out.println("執(zhí)行了TestInterceptor的postHandle方法");
}
@Override
public void afterCompletion(HttpServletRequest request, HttpServletResponse response, Object handler, Exception ex) throws Exception {
}
}
在conrsfig中新增WebMvcConfiguer的繼承類LoginConfig

實(shí)現(xiàn)addInterceptors方法
package com.example.gameboxadminserver.contsfig;
import com.example.gameboxadminserver.inter.MyInterceptor;
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;
@Configuration
public class LoginConfig implements WebMvcConfigurer {
@Override
public void addInterceptors(InterceptorRegistry registry) {
//注冊(cè)攔截器
InterceptorRegistration registration = registry.addInterceptor(new MyInterceptor());
registration.addPathPatterns("/**"); //所有路徑都被攔截
registration.excludePathPatterns(
//添加不攔截路徑
"/admin/adminLogin",
);
}
}
在serviceImpl層
實(shí)現(xiàn)登錄邏輯并保存session
Httpsession session
session.setAttribute(“name”,value);
package com.example.gameboxadminserver.service.impl;
import com.example.gameboxadminserver.entity.Admin;
import com.example.gameboxadminserver.entity.Result;
import com.example.gameboxadminserver.entity.ResultUtil;
import com.example.gameboxadminserver.mapper.AdminMapper;
import com.example.gameboxadminserver.service.AdminService;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpSession;
/**
* <p>
* 服務(wù)實(shí)現(xiàn)類
* </p>
*
* @author firstGroup
* @since 2020-10-28
*/
@Service
public class AdminServiceImpl extends ServiceImpl<AdminMapper, Admin> implements AdminService {
@Autowired
AdminMapper adminMapper;
@Override
public Result adminLogin(HttpSession session,String adminName, String adminPwd) {
Admin admin = adminMapper.adminLogin(adminName,adminPwd);
if(admin!=null){
session.setAttribute("adminName",adminName);
return ResultUtil.success("登陸成功!");
}
return ResultUtil.error(2000,"登陸失敗");
}
}
這樣就寫完啦
功能測(cè)試
登陸失敗

無(wú)法訪問(wèn)其他接口

登錄成功

成功訪問(wèn)其他接口
到此這篇關(guān)于SpringBoot實(shí)現(xiàn)登錄攔截器的方法詳解的文章就介紹到這了,更多相關(guān)SpringBoot登錄攔截器內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
JDK動(dòng)態(tài)代理與CGLib動(dòng)態(tài)代理的區(qū)別對(duì)比
今天小編就為大家分享一篇關(guān)于JDK動(dòng)態(tài)代理與CGLib動(dòng)態(tài)代理的區(qū)別對(duì)比,小編覺(jué)得內(nèi)容挺不錯(cuò)的,現(xiàn)在分享給大家,具有很好的參考價(jià)值,需要的朋友一起跟隨小編來(lái)看看吧2019-02-02
SpringMVC請(qǐng)求參數(shù)的使用總結(jié)
在日常使用SpringMVC進(jìn)行開(kāi)發(fā)的時(shí)候,有可能遇到前端各種類型的請(qǐng)求參數(shù),本文主要接介紹了SpringMVC請(qǐng)求參數(shù)的使用總結(jié),感興趣的可以了解一下2021-06-06
springboot寶塔簡(jiǎn)單部署的實(shí)現(xiàn)示例
通過(guò)使用Spring Boot,可以快速構(gòu)建出高效、可擴(kuò)展的應(yīng)用程序,而寶塔面板則提供了簡(jiǎn)單易用的網(wǎng)站管理和維護(hù)工具,本文將詳細(xì)介紹如何將Spring Boot應(yīng)用程序與寶塔面板進(jìn)行集成,實(shí)現(xiàn)自動(dòng)化部署、配置管理等操作2023-11-11
Java四種訪問(wèn)控制修飾符知識(shí)點(diǎn)總結(jié)
本篇文章給大家詳細(xì)分析了Java四種訪問(wèn)控制修飾符的相關(guān)知識(shí)點(diǎn),有興趣的朋友可以參考學(xué)習(xí)下。2018-03-03
基于SqlSessionFactory的openSession方法使用
這篇文章主要介紹了SqlSessionFactory的openSession方法使用,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2021-12-12

