av一区二区在线观看_亚洲男人的天堂网站_日韩亚洲视频_在线成人免费_欧美日韩精品免费观看视频_久草视

您的位置:首頁(yè)技術(shù)文章
文章詳情頁(yè)

SpringBoot登錄用戶權(quán)限攔截器

瀏覽:106日期:2023-03-20 09:53:16

1. 創(chuàng)建自定義攔截器類并實(shí)現(xiàn) HandlerInterceptor 接口

package com.xgf.online_mall.interceptor;import com.xgf.online_mall.system.domain.User;import lombok.extern.slf4j.Slf4j;import org.springframework.stereotype.Component;import org.springframework.web.servlet.HandlerInterceptor;import org.springframework.web.servlet.ModelAndView;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletResponse;import java.io.BufferedWriter;import java.io.FileWriter;import java.nio.file.Files;import java.nio.file.Path;import java.nio.file.Paths;import java.text.SimpleDateFormat;import java.util.Date;import java.util.logging.SimpleFormatter;@Slf4j@Componentpublic class UserLoginAuthInterceptor implements HandlerInterceptor { @Override public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception { log.info(' ======== UserAuthInterceptor preHandle 登錄權(quán)限攔截器攔截'); User user = (User) request.getSession().getAttribute('loginUser'); //未登錄才判斷,登錄了直接放行 if(user == null){ //獲取訪問(wèn)路徑 String address = request.getRequestURI(); log.info('======== 攔截,訪問(wèn)路徑 address : {}', address); response.sendRedirect(request.getContextPath() + '/login.html'); return false; /*String address = request.getRequestURI(); log.info('======== 攔截,訪問(wèn)路徑 address : {}', address); //不是登錄或者注冊(cè)頁(yè)面,就直接跳轉(zhuǎn)登錄界面 if(!address.contains('login') && !address.contains('register')){//強(qiáng)制到登錄頁(yè)面response.sendRedirect(request.getContextPath() + '/login.html');//設(shè)置為false,不訪問(wèn)controllerreturn false; }*/ } //其它模塊或者已經(jīng)登錄,就直接放行// log.info('======== 已登錄 user = {}', user); return true; } @Override public void postHandle(HttpServletRequest request, HttpServletResponse response, Object handler, ModelAndView modelAndView) throws Exception { log.info(' ===== UserAuthInterceptor postHandle'); } @Override public void afterCompletion(HttpServletRequest request, HttpServletResponse response, Object handler, Exception ex) throws Exception { log.info('==== UserAuthInterceptor afterCompletion'); //記錄日志 向文件里面寫日志 //獲取服務(wù)器記錄日志log文件所存放的目錄位置 -- tomcat下的真實(shí)路徑+log目錄 String logdir = request.getServletContext().getRealPath('log'); //路徑不存在就創(chuàng)建 Path logdirPath = Paths.get(logdir); if(Files.notExists(logdirPath)){ Files.createDirectories(logdirPath); } //目錄存在就將數(shù)據(jù)[字符]寫入 //存放日志的路徑+文件名 Path logfile = Paths.get(logdir,'userlog.log'); //logfile.toFile() paths轉(zhuǎn)換為File類型 true以追加的方式寫入 BufferedWriter writer = new BufferedWriter(new FileWriter(logfile.toFile(),true)); //獲取登錄用戶信息 User user = (User)request.getSession().getAttribute('loginUser'); //記錄user信息,存入日志 writer.write(new SimpleDateFormat('yyyy-MM-dd HH:mm:ss').format(new Date()) + ' >> ' + user +'rn'); writer.flush(); writer.close(); }}

2. 創(chuàng)建WebMvcConfigurer接口實(shí)現(xiàn)類,注冊(cè)并生效自定義的攔截器

import com.xgf.online_mall.constant.PathConstantParam;import com.xgf.online_mall.interceptor.UserLoginAuthInterceptor;import lombok.extern.slf4j.Slf4j;import org.springframework.beans.factory.annotation.Autowired;import org.springframework.context.annotation.Configuration;import org.springframework.web.servlet.config.annotation.InterceptorRegistry;import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;import java.util.ArrayList;import java.util.List;@Configuration@Slf4jpublic class LoginConfig implements WebMvcConfigurer { @Autowired private UserLoginAuthInterceptor userLoginAuthInterceptor; /** * addInterceptors方法設(shè)置攔截路徑 * addPathPatterns:需要攔截的訪問(wèn)路徑 * excludePathPatterns:不需要攔截的路徑, * String數(shù)組類型可以寫多個(gè)用','分割 * @param registry */ @Override public void addInterceptors(InterceptorRegistry registry){ log.info(' ======== LoginConfig.addInterceptors'); //添加對(duì)用戶未登錄的攔截器,并添加排除項(xiàng) //error路徑,excludePathPatterns排除訪問(wèn)的路徑在項(xiàng)目中不存在的時(shí)候, //springboot會(huì)將路徑變成 /error, 導(dǎo)致無(wú)法進(jìn)行排除。 registry.addInterceptor(userLoginAuthInterceptor).addPathPatterns('/**').excludePathPatterns('/js/**', '/css/**', '/img/**', '/plugins/**').excludePathPatterns('/login.html', '/register.html', '/system/user/login', '/system/user/login', '/index').excludePathPatterns('/error'); } }

到此這篇關(guān)于SpringBoot登錄用戶權(quán)限攔截器的文章就介紹到這了,更多相關(guān)SpringBoot 用戶權(quán)限攔截器內(nèi)容請(qǐng)搜索好吧啦網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持好吧啦網(wǎng)!

標(biāo)簽: Spring
相關(guān)文章:
主站蜘蛛池模板: 久久国产综合 | 91影视 | 日韩综合在线视频 | 日韩一区二区三区精品 | 久久9999久久| 国产精品久久久久久亚洲调教 | 欧美日韩综合精品 | 免费毛片网 | 亚洲视频一区在线观看 | 欧美激情在线精品一区二区三区 | 91视频导航 | 福利视频一区二区三区 | 亚洲码欧美码一区二区三区 | 欧美激情国产精品 | 国产一区二区高清在线 | 免费在线观看一区二区三区 | 成人av观看| 精品国产第一区二区三区 | 国产一二区在线 | 免费午夜视频 | 国产亚洲精品成人av久久ww | 毛片电影 | 天堂一区在线 | 成人精品在线视频 | 国内在线视频 | 精品日韩一区二区 | 美女张开腿露出尿口 | 成人免费视频网站在线看 | 黄色一级电影在线观看 | 亚洲性视频 | 婷婷毛片 | 成人午夜免费福利视频 | 久操伊人 | 国产精品国产精品国产专区不片 | 亚洲免费在线 | 亚洲在线一区二区三区 | av中文字幕在线播放 | 九九视频网 | 五月婷婷在线视频 | 一二三区av | 国产成人av在线播放 |