C#session共享+redis_SpringBoot+Shiro+Redis共享Session实例

本文介绍如何在SpringBoot项目中使用Shiro实现跨服务的会话共享功能,采用crazycake的开源插件简化RedisManager及SessionDAO的实现。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

点击蓝色“java版web项目”关注我哟

加个“星标”,优质文章,第一时间送达

bd2d0c3245a05d8077e3ad512143d63c.png

作者:小LUA

来源:http://suo.im/4wM0sx(点击阅读全文前往)

在单机版的Springboot+Shiro的基础上,这次实现共享Session。

这里没有自己写RedisManager、SessionDAO。用的 crazycake 写的开源插件

pom.xml

xml version="1.0" encoding="UTF-8"?>
 redis配置文件
package com.example.demo.conf;

Shiro配置文件

package com.example.demo.conf;

UserService

package com.example.demo.service;
impl
package com.example.demo.service.impl;

controller

package com.example.demo.controller;

 redis.properties

t:6379

applicatin.properties

#

index.html

<html lang="en" xmlns:th="http://www.thymeleaf.org"><head><meta charset="UTF-8"><title>Indextitle><link th:href="@{css/index.css}" rel="stylesheet" type="text/css">head><body><div class="container"><div class="header"><h2>初级SpringBoot+Shiro小栗子 Node-Oneh2>div><div class="main"><div class="left"><div class="form-group"><input type="text" name="username" placeholder="请输入用户名">div><div class="form-group"><input type="password" name="password" placeholder="请输入密码">div><div class="form-group"><a href="javascript:;" id="login">登录a>div><div class="form-group"><a href="/home">点我!不登录进不去a>div>div><div class="right"><div class="form-group"><input type="text" name="username" placeholder="请输入用户名">div><div class="form-group"><input type="password" name="password" placeholder="请输入密码">div><div class="form-group"><input type="text" name="show" placeholder="自我介绍">div><div class="form-group"><a href="javascript:;" id="register">注册a>div>div>div>div><script th:src="@{js/jquery-3.3.1.min.js}">script><script th:src="@{js/index.js}">script>body>html>

home.html

<html lang="en" xmlns:th="http://www.thymeleaf.org"><head><meta charset="UTF-8"><title>Hometitle><link th:href="@{css/index.css}" rel="stylesheet" type="text/css">head><body><div class="container"><div class="header"><h2>初级SpringBoot+Shiro小栗子 Node-Oneh2><a href="/logout">退出登录a>div><div class="main"><table class="table"><thead><tr><th>Usernameth><th>Passwordth><th>Showth>tr>thead><tbody><tr th:each="u : ${users}"><td>[[${u.username}]]td><td>[[${u.password}]]td><td>[[${u.show}]]td>tr>tbody>table>div>div>body>html>

以上两种配置各打包一次(记得留着打包好的jar包)

解压到无中文目录,修改Nginx配置文件

9302bb818f4ca704c7e8e45720a4ae87.png

upstream myapp{
        server 127.0.0.1:8081 weight=1;
        server 127.0.0.1:8082 weight=1;
    }
    
    server{
            listen 80;
            server_name myapp;
    
            location / {
                proxy_pass http://myapp;
                proxy_set_header Host $host;
                proxy_set_header X-Real-IP $remote_addr;
                proxy_set_header X-Forwarded-For  $proxy_add_x_forwarded_for;
            }
    }

到此,先启动两个jar包(分别是8081,Node-One;8082,Node-Two)

然后启动Nginx

浏览器访问:http://localhost/

 1cddb9b157354738ca4da55dd5b64a38.png

刷新看看..

c9fbbd758fcb47dc4280a8fa6795a8a7.png

随便在一个节点上注册,登录,然后刷新到另外一个节点,发现不用登录就可以访问权限资源

 848cf2ac36e3d3be01a8d7db4ed5dfbc.png

..

33d4192a602ec274bdf731b000f93dd7.png

github地址:https://github.com/zhiyongzhao/boot-shiro-session

转发给身边的程序员朋友吧,千万别掉进坑里了!

正文结束

6965ff059a8837906efde341b9f44c14.gif

据统计,99%的程序员都完成了这个神操作

9efa23eb7368dfdcead6c645081db13e.png

推荐阅读 ↓↓↓

1.别在 Java 代码里乱打日志了,这才是正确的打日志姿势

2.我在 GitHub 上看到了一个丧心病狂的开源项目!

3.我愿意嫁给程序员

4.我是如何通过开源项目月入 10 万的?

5.同事用这2个小技巧,让SQL语句效率提升了1000倍

6.Mybatis 源码解读-设计模式总结

7.Spring Boot WebSocket从入门到放弃

8.全世界最顶级的开发者都在使用什么数据库

7cf49a700bca404b73fc0e26b2ec056e.png

好文章,我在看❤️

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值