-
Notifications
You must be signed in to change notification settings - Fork 2.6k
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
1 parent
46a98b8
commit 0cf045e
Showing
9 changed files
with
502 additions
and
21 deletions.
There are no files selected for viewing
12 changes: 12 additions & 0 deletions
12
sa-token-demo/sa-token-demo-alone-redis-cluster/.gitignore
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,12 @@ | ||
target/ | ||
|
||
node_modules/ | ||
bin/ | ||
.settings/ | ||
unpackage/ | ||
.classpath | ||
.project | ||
|
||
.idea/ | ||
|
||
.factorypath |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,71 @@ | ||
<project xmlns="http://maven.apache.org/POM/4.0.0" | ||
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" | ||
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> | ||
<modelVersion>4.0.0</modelVersion> | ||
<groupId>cn.dev33</groupId> | ||
<artifactId>sa-token-demo-alone-redis-cluster</artifactId> | ||
<version>0.0.1-SNAPSHOT</version> | ||
|
||
<!-- SpringBoot --> | ||
<parent> | ||
<groupId>org.springframework.boot</groupId> | ||
<artifactId>spring-boot-starter-parent</artifactId> | ||
<version>2.5.14</version> | ||
<relativePath/> | ||
</parent> | ||
|
||
<!-- 定义 Sa-Token 版本号 --> | ||
<properties> | ||
<sa-token.version>1.33.0</sa-token.version> | ||
</properties> | ||
|
||
<dependencies> | ||
|
||
<!-- SpringBoot依赖 --> | ||
<dependency> | ||
<groupId>org.springframework.boot</groupId> | ||
<artifactId>spring-boot-starter-web</artifactId> | ||
</dependency> | ||
<dependency> | ||
<groupId>org.springframework.boot</groupId> | ||
<artifactId>spring-boot-starter-aop</artifactId> | ||
</dependency> | ||
|
||
<!-- Sa-Token 权限认证, 在线文档:https://sa-token.cc/ --> | ||
<dependency> | ||
<groupId>cn.dev33</groupId> | ||
<artifactId>sa-token-spring-boot-starter</artifactId> | ||
<version>${sa-token.version}</version> | ||
</dependency> | ||
|
||
<!-- Sa-Token 整合Redis (使用jackson序列化方式) --> | ||
<dependency> | ||
<groupId>cn.dev33</groupId> | ||
<artifactId>sa-token-dao-redis-jackson</artifactId> | ||
<version>${sa-token.version}</version> | ||
</dependency> | ||
|
||
<!-- 提供Redis连接池 --> | ||
<dependency> | ||
<groupId>org.apache.commons</groupId> | ||
<artifactId>commons-pool2</artifactId> | ||
</dependency> | ||
|
||
<!-- Sa-Token插件:权限缓存与业务缓存分离 --> | ||
<dependency> | ||
<groupId>cn.dev33</groupId> | ||
<artifactId>sa-token-alone-redis</artifactId> | ||
<version>${sa-token.version}</version> | ||
</dependency> | ||
|
||
<!-- @ConfigurationProperties --> | ||
<dependency> | ||
<groupId>org.springframework.boot</groupId> | ||
<artifactId>spring-boot-configuration-processor</artifactId> | ||
<optional>true</optional> | ||
</dependency> | ||
|
||
</dependencies> | ||
|
||
|
||
</project> |
21 changes: 21 additions & 0 deletions
21
...en-demo-alone-redis-cluster/src/main/java/com/pj/SaTokenAloneRedisClusterApplication.java
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,21 @@ | ||
package com.pj; | ||
|
||
import org.springframework.boot.SpringApplication; | ||
import org.springframework.boot.autoconfigure.SpringBootApplication; | ||
|
||
import cn.dev33.satoken.SaManager; | ||
|
||
/** | ||
* Sa-Token整合SpringBoot 示例 | ||
* @author kong | ||
* | ||
*/ | ||
@SpringBootApplication | ||
public class SaTokenAloneRedisClusterApplication { | ||
|
||
public static void main(String[] args) throws ClassNotFoundException { | ||
SpringApplication.run(SaTokenAloneRedisClusterApplication.class, args); | ||
System.out.println("\n启动成功:Sa-Token配置如下:" + SaManager.getConfig()); | ||
} | ||
|
||
} |
162 changes: 162 additions & 0 deletions
162
sa-token-demo/sa-token-demo-alone-redis-cluster/src/main/java/com/pj/test/AjaxJson.java
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,162 @@ | ||
package com.pj.test; | ||
|
||
import java.io.Serializable; | ||
import java.util.List; | ||
|
||
|
||
/** | ||
* ajax请求返回Json格式数据的封装 | ||
*/ | ||
public class AjaxJson implements Serializable{ | ||
|
||
private static final long serialVersionUID = 1L; // 序列化版本号 | ||
|
||
public static final int CODE_SUCCESS = 200; // 成功状态码 | ||
public static final int CODE_ERROR = 500; // 错误状态码 | ||
public static final int CODE_WARNING = 501; // 警告状态码 | ||
public static final int CODE_NOT_JUR = 403; // 无权限状态码 | ||
public static final int CODE_NOT_LOGIN = 401; // 未登录状态码 | ||
public static final int CODE_INVALID_REQUEST = 400; // 无效请求状态码 | ||
|
||
public int code; // 状态码 | ||
public String msg; // 描述信息 | ||
public Object data; // 携带对象 | ||
public Long dataCount; // 数据总数,用于分页 | ||
|
||
/** | ||
* 返回code | ||
* @return | ||
*/ | ||
public int getCode() { | ||
return this.code; | ||
} | ||
|
||
/** | ||
* 给msg赋值,连缀风格 | ||
*/ | ||
public AjaxJson setMsg(String msg) { | ||
this.msg = msg; | ||
return this; | ||
} | ||
public String getMsg() { | ||
return this.msg; | ||
} | ||
|
||
/** | ||
* 给data赋值,连缀风格 | ||
*/ | ||
public AjaxJson setData(Object data) { | ||
this.data = data; | ||
return this; | ||
} | ||
|
||
/** | ||
* 将data还原为指定类型并返回 | ||
*/ | ||
@SuppressWarnings("unchecked") | ||
public <T> T getData(Class<T> cs) { | ||
return (T) data; | ||
} | ||
|
||
// ============================ 构建 ================================== | ||
|
||
public AjaxJson(int code, String msg, Object data, Long dataCount) { | ||
this.code = code; | ||
this.msg = msg; | ||
this.data = data; | ||
this.dataCount = dataCount; | ||
} | ||
|
||
// 返回成功 | ||
public static AjaxJson getSuccess() { | ||
return new AjaxJson(CODE_SUCCESS, "ok", null, null); | ||
} | ||
public static AjaxJson getSuccess(String msg) { | ||
return new AjaxJson(CODE_SUCCESS, msg, null, null); | ||
} | ||
public static AjaxJson getSuccess(String msg, Object data) { | ||
return new AjaxJson(CODE_SUCCESS, msg, data, null); | ||
} | ||
public static AjaxJson getSuccessData(Object data) { | ||
return new AjaxJson(CODE_SUCCESS, "ok", data, null); | ||
} | ||
public static AjaxJson getSuccessArray(Object... data) { | ||
return new AjaxJson(CODE_SUCCESS, "ok", data, null); | ||
} | ||
|
||
// 返回失败 | ||
public static AjaxJson getError() { | ||
return new AjaxJson(CODE_ERROR, "error", null, null); | ||
} | ||
public static AjaxJson getError(String msg) { | ||
return new AjaxJson(CODE_ERROR, msg, null, null); | ||
} | ||
|
||
// 返回警告 | ||
public static AjaxJson getWarning() { | ||
return new AjaxJson(CODE_ERROR, "warning", null, null); | ||
} | ||
public static AjaxJson getWarning(String msg) { | ||
return new AjaxJson(CODE_WARNING, msg, null, null); | ||
} | ||
|
||
// 返回未登录 | ||
public static AjaxJson getNotLogin() { | ||
return new AjaxJson(CODE_NOT_LOGIN, "未登录,请登录后再次访问", null, null); | ||
} | ||
|
||
// 返回没有权限的 | ||
public static AjaxJson getNotJur(String msg) { | ||
return new AjaxJson(CODE_NOT_JUR, msg, null, null); | ||
} | ||
|
||
// 返回一个自定义状态码的 | ||
public static AjaxJson get(int code, String msg){ | ||
return new AjaxJson(code, msg, null, null); | ||
} | ||
|
||
// 返回分页和数据的 | ||
public static AjaxJson getPageData(Long dataCount, Object data){ | ||
return new AjaxJson(CODE_SUCCESS, "ok", data, dataCount); | ||
} | ||
|
||
// 返回,根据受影响行数的(大于0=ok,小于0=error) | ||
public static AjaxJson getByLine(int line){ | ||
if(line > 0){ | ||
return getSuccess("ok", line); | ||
} | ||
return getError("error").setData(line); | ||
} | ||
|
||
// 返回,根据布尔值来确定最终结果的 (true=ok,false=error) | ||
public static AjaxJson getByBoolean(boolean b){ | ||
return b ? getSuccess("ok") : getError("error"); | ||
} | ||
|
||
/* (non-Javadoc) | ||
* @see java.lang.Object#toString() | ||
*/ | ||
@SuppressWarnings("rawtypes") | ||
@Override | ||
public String toString() { | ||
String data_string = null; | ||
if(data == null){ | ||
|
||
} else if(data instanceof List){ | ||
data_string = "List(length=" + ((List)data).size() + ")"; | ||
} else { | ||
data_string = data.toString(); | ||
} | ||
return "{" | ||
+ "\"code\": " + this.getCode() | ||
+ ", \"msg\": \"" + this.getMsg() + "\"" | ||
+ ", \"data\": " + data_string | ||
+ ", \"dataCount\": " + dataCount | ||
+ "}"; | ||
} | ||
|
||
|
||
|
||
|
||
|
||
} |
39 changes: 39 additions & 0 deletions
39
...oken-demo/sa-token-demo-alone-redis-cluster/src/main/java/com/pj/test/TestController.java
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,39 @@ | ||
package com.pj.test; | ||
|
||
import org.springframework.beans.factory.annotation.Autowired; | ||
import org.springframework.data.redis.core.StringRedisTemplate; | ||
import org.springframework.web.bind.annotation.RequestMapping; | ||
import org.springframework.web.bind.annotation.RequestParam; | ||
import org.springframework.web.bind.annotation.RestController; | ||
|
||
import cn.dev33.satoken.stp.StpUtil; | ||
|
||
/** | ||
* 测试专用Controller | ||
* @author kong | ||
* | ||
*/ | ||
@RestController | ||
@RequestMapping("/test/") | ||
public class TestController { | ||
|
||
@Autowired | ||
StringRedisTemplate stringRedisTemplate; | ||
|
||
// 测试Sa-Token缓存, 浏览器访问: http://localhost:8081/test/login | ||
@RequestMapping("login") | ||
public AjaxJson login(@RequestParam(defaultValue="10001") String id) { | ||
System.out.println("--------------- 测试Sa-Token缓存"); | ||
StpUtil.login(id); | ||
return AjaxJson.getSuccess(); | ||
} | ||
|
||
// 测试业务缓存 浏览器访问: http://localhost:8081/test/test | ||
@RequestMapping("test") | ||
public AjaxJson test() { | ||
System.out.println("--------------- 测试业务缓存"); | ||
stringRedisTemplate.opsForValue().set("hello", "Hello World"); | ||
return AjaxJson.getSuccess(); | ||
} | ||
|
||
} |
66 changes: 66 additions & 0 deletions
66
sa-token-demo/sa-token-demo-alone-redis-cluster/src/main/resources/application.yml
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,66 @@ | ||
# 端口 | ||
server: | ||
port: 8081 | ||
|
||
# Sa-Token配置 | ||
sa-token: | ||
# Token名称 (同时也是cookie名称) | ||
token-name: satoken | ||
# Token有效期,单位s 默认30天, -1代表永不过期 | ||
timeout: 2592000 | ||
# Token风格 | ||
token-style: uuid | ||
# 配置Sa-Token单独使用的Redis连接 | ||
alone-redis: | ||
# 普通集群 | ||
pattern: cluster | ||
# Redis服务器连接用户名(默认为空) | ||
username: | ||
# Redis服务器连接密码(默认为空) | ||
password: | ||
# 连接超时时间(毫秒) | ||
timeout: 10s | ||
cluster: | ||
# Redis集群服务器节点地址 | ||
nodes: 127.0.0.1:3000,127.0.0.1:3001,127.0.0.1:3002 | ||
# 最大重定向次数 | ||
maxRedirects: 2 | ||
lettuce: | ||
pool: | ||
# 连接池最大连接数 | ||
max-active: 200 | ||
# 连接池最大阻塞等待时间(使用负值表示没有限制) | ||
max-wait: -1ms | ||
# 连接池中的最大空闲连接 | ||
max-idle: 10 | ||
# 连接池中的最小空闲连接 | ||
min-idle: 0 | ||
|
||
spring: | ||
# 配置业务使用的Redis连接 | ||
redis: | ||
# Redis数据库索引(默认为0) | ||
database: 0 | ||
# Redis服务器地址 | ||
host: 127.0.0.1 | ||
# Redis服务器连接端口 | ||
port: 6379 | ||
# Redis服务器连接密码(默认为空) | ||
password: | ||
# 连接超时时间(毫秒) | ||
timeout: 10s | ||
lettuce: | ||
pool: | ||
# 连接池最大连接数 | ||
max-active: 200 | ||
# 连接池最大阻塞等待时间(使用负值表示没有限制) | ||
max-wait: -1ms | ||
# 连接池中的最大空闲连接 | ||
max-idle: 10 | ||
# 连接池中的最小空闲连接 | ||
min-idle: 0 | ||
|
||
|
||
|
||
|
||
|
Oops, something went wrong.