基于session?Redis實(shí)現(xiàn)登錄
Redis實(shí)現(xiàn)登錄(基于session)
攔截器:實(shí)現(xiàn)多模塊用戶登錄的校驗(yàn)
代碼:
創(chuàng)建攔截器
public class LoginInterceptor implements HandlerInterceptor { @Override public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception { //1.獲取session HttpSession session = request.getSession(); //2.獲取session中的用戶 Object user = session.getAttribute("user"); //3.判讀用戶是否存在 if (user == null) { //不存在,攔截,返回401狀態(tài)碼 response.setStatus(401); return false; } //5.存在,保存用戶信息到 ThreadLocal ThreadLocal 線程隔離 UserHolder.saveUser((UserDTO) user); return true; } @Override public void afterCompletion(HttpServletRequest request, HttpServletResponse response, Object handler, Exception ex) throws Exception { UserHolder.removeUser(); } }
WebMvcConfigurer配置接口是Spring內(nèi)部的一種配置方式,采用JavaBean的形式來代替?zhèn)鹘y(tǒng)的xml配置文件形式進(jìn)行針對(duì)框架個(gè)性化定制。接口提供了很多方法讓我們來定制SpringMVC的配置??梢杂脕碜远x處理器、攔截器、視圖解析器、轉(zhuǎn)換器、設(shè)置跨域等。
- SpringBoot1.5版本前都是靠重寫WebMvcConfigurerAdapter的方法來添加自定義攔截器,消息轉(zhuǎn)換器等。
- SpringBoot2.0版本后,WebMvcConfigurerAdapter類被標(biāo)記為@Deprecated。推薦下面兩種方式:
- 實(shí)現(xiàn)WebMvcConfigurer接口(推薦);
- 繼承WebMvcConfigurationSupport類。
@Configuration public class MvcConfig implements WebMvcConfigurer { @Override public void addInterceptors(InterceptorRegistry registry) { registry.addInterceptor(new LoginInterceptor()) //需要放行的路徑 .excludePathPatterns( "/shop/**", "/voucher/**", "/shop-type/**", "/upload/**", "/blog/hot", "/user/code", "/user/login" ); } }
集群的session共享問題
session共享問題:多臺(tái)Tomcat并不共享session存儲(chǔ)空間,當(dāng)請(qǐng)求切換到不同tomcat服務(wù)時(shí)導(dǎo)致數(shù)據(jù)丟失的問題。
session的替代方案應(yīng)該滿足:
●數(shù)據(jù)共享
●內(nèi)存存儲(chǔ)
●key、value結(jié)構(gòu)
基于Redis實(shí)現(xiàn)session共享
到此這篇關(guān)于基于session Redis實(shí)現(xiàn)登錄的文章就介紹到這了,更多相關(guān)Redis實(shí)現(xiàn)登錄內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
- 詳解Redis開啟遠(yuǎn)程登錄連接
- redis-cli 使用密碼登錄的實(shí)例
- 實(shí)例詳解Spring Boot實(shí)戰(zhàn)之Redis緩存登錄驗(yàn)證碼
- 詳解Redis使用認(rèn)證密碼登錄
- 基于springboot和redis實(shí)現(xiàn)單點(diǎn)登錄
- SpringBoot+Vue+Redis實(shí)現(xiàn)單點(diǎn)登錄(一處登錄另一處退出登錄)
- 使用redis管理用戶登錄會(huì)話的方法
- 基于Redis實(shí)現(xiàn)每日登錄失敗次數(shù)限制
- php+redis實(shí)現(xiàn)注冊、刪除、編輯、分頁、登錄、關(guān)注等功能示例
- springcloud微服務(wù)基于redis集群的單點(diǎn)登錄實(shí)現(xiàn)解析
相關(guān)文章
redis3.2配置文件redis.conf詳細(xì)說明
redis3.2配置詳解,Redis啟動(dòng)的時(shí)候,可以指定配置文件,詳細(xì)說明請(qǐng)看本文說明2018-03-03Redis+Hbase+RocketMQ?實(shí)際使用問題案例講解
這篇文章主要介紹了Redis+Hbase+RocketMQ?實(shí)際使用問題案例分享,本文結(jié)合示例代碼給大家講解的非常詳細(xì),需要的朋友可以參考下2023-01-01redis集群實(shí)現(xiàn)清理前綴相同的key
這篇文章主要介紹了redis集群實(shí)現(xiàn)清理前綴相同的key,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2021-10-10關(guān)于在Redis中使用Pipelining加速查詢的問題
這篇文章主要介紹了在Redis中使用Pipelining加速查詢,Redis是一個(gè)client-server模式的TCP服務(wù),也被稱為Request/Response協(xié)議的實(shí)現(xiàn),本文通過一個(gè)例子給大家詳細(xì)介紹,感興趣的朋友一起看看吧2022-05-05