{"id":18021162,"url":"https://github.com/weasley-j/sa-plugin-redis-spring-boot-parent","last_synced_at":"2025-04-04T17:22:46.340Z","repository":{"id":63330908,"uuid":"565407281","full_name":"Weasley-J/sa-plugin-redis-spring-boot-parent","owner":"Weasley-J","description":"An independent session data storage scheme to support Sa-Token, decoupled from the business cache, and used Redis for data storage","archived":false,"fork":false,"pushed_at":"2022-11-17T02:17:31.000Z","size":40,"stargazers_count":2,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-02-10T02:45:05.708Z","etag":null,"topics":["java","redis","sa-token","sa-token-plugin","spring-boot","spring-boot-starter"],"latest_commit_sha":null,"homepage":"","language":"Java","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/Weasley-J.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2022-11-13T10:07:29.000Z","updated_at":"2022-11-24T16:50:41.000Z","dependencies_parsed_at":"2022-11-17T05:15:30.695Z","dependency_job_id":null,"html_url":"https://github.com/Weasley-J/sa-plugin-redis-spring-boot-parent","commit_stats":null,"previous_names":[],"tags_count":2,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Weasley-J%2Fsa-plugin-redis-spring-boot-parent","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Weasley-J%2Fsa-plugin-redis-spring-boot-parent/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Weasley-J%2Fsa-plugin-redis-spring-boot-parent/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Weasley-J%2Fsa-plugin-redis-spring-boot-parent/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Weasley-J","download_url":"https://codeload.github.com/Weasley-J/sa-plugin-redis-spring-boot-parent/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247217725,"owners_count":20903117,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["java","redis","sa-token","sa-token-plugin","spring-boot","spring-boot-starter"],"created_at":"2024-10-30T06:08:57.399Z","updated_at":"2025-04-04T17:22:46.296Z","avatar_url":"https://github.com/Weasley-J.png","language":"Java","funding_links":[],"categories":[],"sub_categories":[],"readme":"# sa-plugin-redis-spring-boot-starter\n\n[![Maven Central](https://img.shields.io/maven-central/v/io.github.weasley-j/sa-plugin-redis-spring-boot-starter)](https://search.maven.org/artifact/io.github.weasley-j/sa-plugin-redis-spring-boot-starter)\n\n一个用于将`sa-token` 的`session`信息存储于独立`Redis`中的`spring-boot-starter`, **其核心目的是为了使`sa-token`的`session`数据与业务缓存数据解耦**，使用单独的`Redis`存放`sa-token`的数据。\n\n\n\n- 支持自定义`Redis`基础常量的`key`前缀\n- `yaml`配置元数据\n- 通过注解`@EnableSaIndependentRedisSession`启用插件功能\n\n\n\n## 1 给项目的pom.xml添加maven依赖\n\n```xml\n\u003cproperties\u003e\n  \u003csa-plugin-redis.verison\u003e1.0.1\u003c/sa-plugin-redis.verison\u003e\n  \u003csa-token.version\u003e1.32.0\u003c/sa-token.version\u003e\n\u003c/properties\u003e\n\n\u003cdependency\u003e\n  \u003cgroupId\u003eio.github.weasley-j\u003c/groupId\u003e\n  \u003cartifactId\u003esa-plugin-redis-spring-boot-starter\u003c/artifactId\u003e\n  \u003cversion\u003e${sa-plugin-redis.verison}\u003c/version\u003e\n\u003c/dependency\u003e\n\u003c!-- sa-token  --\u003e\n\u003cdependency\u003e\n  \u003cgroupId\u003ecn.dev33\u003c/groupId\u003e\n  \u003cartifactId\u003esa-token-spring-boot-starter\u003c/artifactId\u003e\n  \u003cversion\u003e${sa-token.version}\u003c/version\u003e\n\u003c/dependency\u003e\n\u003c!-- Sa-Token 整合 Redis （使用 jackson 序列化方式）: 原则上开启io.github.weasley-j:sa-plugin-redis-spring-boot-starter时此插件将会失效 --\u003e\n\u003cdependency\u003e\n  \u003cgroupId\u003ecn.dev33\u003c/groupId\u003e\n  \u003cartifactId\u003esa-token-dao-redis-jackson\u003c/artifactId\u003e\n  \u003cversion\u003e${sa-token.version}\u003c/version\u003e\n\u003c/dependency\u003e\n\u003c!-- redis启动器 --\u003e\n\u003cdependency\u003e\n  \u003cgroupId\u003eorg.springframework.boot\u003c/groupId\u003e\n  \u003cartifactId\u003espring-boot-starter-data-redis\u003c/artifactId\u003e\n\u003c/dependency\u003e\n\n```\n\n## 2 配置插件yaml元数据\n\n```yaml\n# Sa Token\nsa-token:\n  enable: true\n  # token名称 (同时也是cookie名称)\n  token-name: token\n  # token有效期，单位s 默认30天, -1代表永不过期\n  timeout: 2592000\n  # token临时有效期 (指定时间内无操作就视为token过期) 单位: 秒\n  activity-timeout: -1\n  # 是否允许同一账号并发登录 (为true时允许一起登录, 为false时新登录挤掉旧登录)\n  is-concurrent: true\n  # 在多人登录同一账号时，是否共用一个token (为true时所有登录共用一个token, 为false时每次登录新建一个token)\n  is-share: true\n  # token风格\n  token-style: simple-uuid\n  # 是否输出操作日志\n  is-log: false\n  plugins:\n    redis:\n      show-banner: on\n      redis-base-prefix: 'login:uc:'\n      independent-session: true\n      independent-redis:\n        host: 127.0.0.1\n        port: 6379\n        password: 123456\n        database: 1\n```\n\n[配置的`Java`类](https://github.com/Weasley-J/sa-plugin-redis-spring-boot-parent/blob/master/sa-plugin-redis-spring-boot-starter/src/main/java/io/github/weasleyj/satoken/session/config/RedisPluginProperties.java)\n\n\n\n## 3 SpringBoot启动内添加启注解支持\n\n```java\n/**\n * Some Springboot Application\n *\n * @author weasley\n */\n@SpringBootApplication\n@EnableSaIndependentRedisSession\npublic class SomeSpringbootApplication {\n\n    public static void main(String[] args) {\n        SpringApplication.run(SomeSpringbootApplication.class, args);\n    }\n\n}\n```\n\n\n\n## 4 效果演示\n\n最终将`Sa-Token`的`token`信息存储到独立的`Redis`中\n\n![image-20221113170656818](https://alphahub-test-bucket.oss-cn-shanghai.aliyuncs.com/image/image-20221113170656818.png)\n\n![image-20221113170723876](https://alphahub-test-bucket.oss-cn-shanghai.aliyuncs.com/image/image-20221113170723876.png)\n\n\n\n![image-20221113170744095](https://alphahub-test-bucket.oss-cn-shanghai.aliyuncs.com/image/image-20221113170744095.png)","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fweasley-j%2Fsa-plugin-redis-spring-boot-parent","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fweasley-j%2Fsa-plugin-redis-spring-boot-parent","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fweasley-j%2Fsa-plugin-redis-spring-boot-parent/lists"}