午夜剧场伦理_日本一道高清_国产又黄又硬_91黄色网战_女同久久另类69精品国产_妹妹的朋友在线

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

Spring session實(shí)現(xiàn)共享單點(diǎn)登錄案例過(guò)程解析

瀏覽:10日期:2023-08-30 15:29:11

一、項(xiàng)目構(gòu)建

1、案例說(shuō)明

本文主要演示單點(diǎn)登錄功能,會(huì)貼出主要配置和代碼以及必要解釋?zhuān)看a請(qǐng)參考git地址。session共享一個(gè)基本原則是將session存儲(chǔ)在某個(gè)地方,所有的應(yīng)用都可以訪問(wèn),這里使用redis存儲(chǔ)session。當(dāng)應(yīng)用需要認(rèn)證時(shí),先從redis讀取用戶信息。

2、基本配置

1)pom.xml

<dependency> <groupId>org.springframework.session</groupId> <artifactId>spring-session-data-redis</artifactId></dependency><dependency> <groupId>redis.clients</groupId> <artifactId>jedis</artifactId></dependency><dependency> <groupId>org.springframework.session</groupId> <artifactId>spring-session</artifactId> <version>1.3.1.RELEASE</version></dependency>

2)application.properties

server.port=8080spring.session.store-type = redisspring.redis.host=192.168.7.151spring.redis.port=6379

本案例的兩個(gè)應(yīng)用完全一樣,一個(gè)端口是8080,一個(gè)端口是80

3、代碼變動(dòng)

1)新增SimpleImageCode.java

public class SimpleImageCode implements Serializable{ private static final long serialVersionUID = 1L; private String code; private LocalDateTime expireTime; public SimpleImageCode(String code,LocalDateTime expireTime) { this.code = code; this.expireTime = expireTime; } public String getCode() { return code; } public void setCode(String code) { this.code = code; } public LocalDateTime getExpireTime() { return expireTime; } public void setExpireTime(LocalDateTime expireTime) { this.expireTime = expireTime; } public boolean isExpried() { return LocalDateTime.now().isAfter(expireTime); }}

該類(lèi)與ImageCode.java基本一樣,區(qū)別1:實(shí)現(xiàn)了Serializable接口;區(qū)別2:沒(méi)有BufferedImage屬性。原因是圖形驗(yàn)證碼要放入session中,而session需要存放到redis中,所以必須實(shí)現(xiàn)序列化接口。一個(gè)類(lèi)實(shí)現(xiàn)序列化接口,它里面的類(lèi)屬性也要實(shí)現(xiàn)序列化接口,但是BufferedImage是jdk的類(lèi),無(wú)法實(shí)現(xiàn)序列化接口,這樣就不把它放入到redis中,在校驗(yàn)時(shí),我么只會(huì)校驗(yàn)驗(yàn)證碼和過(guò)期時(shí)間,所以不會(huì)影響。

2)修改ValidateCodeController.java

@GetMapping('/code/image')public void createCode(HttpServletRequest request,HttpServletResponse response) throws Exception { ImageCode imageCode = createImageCode(request); SimpleImageCode simpleImageCode = new SimpleImageCode(imageCode.getCode(),imageCode.getExpireTime()); //request.getSession().setAttribute('imageCodeSession', imageCode); request.getSession().setAttribute('imageCodeSession', simpleImageCode);//序列化到redis中 ImageIO.write(imageCode.getImage(), 'JPEG', response.getOutputStream()); }

將SimpleImageCode放入到session中

3)修改ValidateCodeFilter.java

private void validate(HttpServletRequest request){//ImageCode codeInSession = (ImageCode)request.getSession().getAttribute('imageCodeSession'); SimpleImageCode codeInSession = (SimpleImageCode)request.getSession().getAttribute('imageCodeSession'); String codeInRequest = request.getParameter('imageCode'); ... ...//校驗(yàn)邏輯 request.getSession().removeAttribute('imageCodeSession'); }

校驗(yàn)驗(yàn)證碼前從session中取出SimpleImageCode

  二、測(cè)試驗(yàn)證

1)啟動(dòng)redis、80端口應(yīng)用、8080端口應(yīng)用,查看redis信息為空,如下:

Spring session實(shí)現(xiàn)共享單點(diǎn)登錄案例過(guò)程解析

2)瀏覽器輸入:localhost:8080/index.html,跳轉(zhuǎn)登錄頁(yè)面,查看redis,如下:

Spring session實(shí)現(xiàn)共享單點(diǎn)登錄案例過(guò)程解析

3)登錄后,查看redis,如下:

Spring session實(shí)現(xiàn)共享單點(diǎn)登錄案例過(guò)程解析

4)同一個(gè)瀏覽器輸入:localhost/index.html,直接跳到index頁(yè)面,查看redis,如下:

Spring session實(shí)現(xiàn)共享單點(diǎn)登錄案例過(guò)程解析

5)點(diǎn)擊index.html中的退出連接,查看redis,如下:

Spring session實(shí)現(xiàn)共享單點(diǎn)登錄案例過(guò)程解析

6)再次訪問(wèn)localhost:8080/index.html,跳轉(zhuǎn)登錄頁(yè)面,查看redis,如下:

Spring session實(shí)現(xiàn)共享單點(diǎn)登錄案例過(guò)程解析

7)再次登錄8080的應(yīng)用,查看redis,如下:

Spring session實(shí)現(xiàn)共享單點(diǎn)登錄案例過(guò)程解析

通過(guò)測(cè)試發(fā)現(xiàn)實(shí)現(xiàn)了單點(diǎn)登錄。貼出截圖只是說(shuō)明session存在了redis中,并且會(huì)隨著操作變化。實(shí)際無(wú)需關(guān)心redis。

以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持好吧啦網(wǎng)。

標(biāo)簽: Spring
相關(guān)文章:
主站蜘蛛池模板: 少妇高潮露脸国语对白 | 欧美字幕 | 亚洲精品视频一区二区 | 性xxxx视频播放免费 | 国产美女精品 | 欧美综合一区二区 | 99热偷拍| 久草综合视频 | 久久精品免费看 | 国产免费一级视频 | 久久青青视频 | 特级西西人体444www高清大胆 | 一本黄色片 | 日韩在线欧美 | 国产性xxxx高清 | 五月天婷婷丁香 | 中文字幕av免费 | 国产suv精品一区二区6 | 日韩精品在线视频观看 | 自拍偷拍视频在线观看 | 成年人黄色一级片 | 亚洲一区二区三区在线免费观看 | 黄色免费高清 | 久久婷婷丁香 | 国产不卡视频在线观看 | 免费观看亚洲 | 国产精品久久久久久69 | 日韩在线观看一区二区 | 欧美日韩一级二级三级 | 夜夜操天天 | 免费看日产一区二区三区 | 亚洲精品在线观看免费 | 天堂中文资源在线观看 | 伊人久久五月 | 男女午夜爽爽爽 | 一区二区三区四区在线播放 | 国产999精品久久久久久 | 色婷婷激情网 | 亚洲天堂成人在线 | 黄特一级姓交大片 | 亚洲精品在线免费观看视频 |