Id-Token 模块更名为 Same-Token

This commit is contained in:
click33
2022-10-24 12:25:22 +08:00
parent 00886066e3
commit 2dc0a44dfe
34 changed files with 564 additions and 180 deletions

View File

@@ -20,30 +20,25 @@
<dependency>
<groupId>cn.dev33</groupId>
<artifactId>sa-token-spring-boot-starter</artifactId>
<version>${revision}</version>
</dependency>
</dependency>
<dependency>
<groupId>cn.dev33</groupId>
<artifactId>sa-token-sso</artifactId>
<version>${revision}</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>cn.dev33</groupId>
<artifactId>sa-token-oauth2</artifactId>
<version>${revision}</version>
<scope>test</scope>
</dependency>
<!-- 冗余(生成单元测试报告) -->
<dependency>
<groupId>cn.dev33</groupId>
<artifactId>sa-token-servlet</artifactId>
<version>${revision}</version>
</dependency>
<dependency>
<groupId>cn.dev33</groupId>
<artifactId>sa-token-core</artifactId>
<version>${revision}</version>
</dependency>
</dependencies>

View File

@@ -71,8 +71,8 @@ public class SaTokenConfigTest {
config.setJwtSecretKey("NgdfaXasARggr");
Assertions.assertEquals(config.getJwtSecretKey(), "NgdfaXasARggr");
config.setIdTokenTimeout(1004);
Assertions.assertEquals(config.getIdTokenTimeout(), 1004);
config.setSameTokenTimeout(1004);
Assertions.assertEquals(config.getSameTokenTimeout(), 1004);
config.setBasic("sa:123456");
Assertions.assertEquals(config.getBasic(), "sa:123456");
@@ -80,8 +80,8 @@ public class SaTokenConfigTest {
config.setCurrDomain("http://127.0.0.1:8084");
Assertions.assertEquals(config.getCurrDomain(), "http://127.0.0.1:8084");
config.setCheckIdToken(false);
Assertions.assertEquals(config.getCheckIdToken(), false);
config.setCheckSameToken(false);
Assertions.assertEquals(config.getCheckSameToken(), false);
SaCookieConfig scc = new SaCookieConfig();
config.setCookie(scc);

View File

@@ -90,11 +90,11 @@ public class SaFoxUtilTest {
// 不做分页
List<String> list5 = SaFoxUtil.searchList(dataList, "", "", -1, 0, true);
List<String> list5 = SaFoxUtil.searchList(dataList, "", "", 0, -1, true);
Assertions.assertEquals(list5.size(), dataList.size());
// 反序排列 list6的第一个元素 == dataList最后一个元素
List<String> list6 = SaFoxUtil.searchList(dataList, "", "", -1, 0, false);
List<String> list6 = SaFoxUtil.searchList(dataList, "", "", 0, -1, false);
Assertions.assertEquals(list6.get(0), dataList.get(dataList.size() - 1));
}

View File

@@ -4,12 +4,12 @@ import org.springframework.web.bind.annotation.ExceptionHandler;
import org.springframework.web.bind.annotation.RestControllerAdvice;
import cn.dev33.satoken.exception.DisableServiceException;
import cn.dev33.satoken.exception.IdTokenInvalidException;
import cn.dev33.satoken.exception.NotBasicAuthException;
import cn.dev33.satoken.exception.NotLoginException;
import cn.dev33.satoken.exception.NotPermissionException;
import cn.dev33.satoken.exception.NotRoleException;
import cn.dev33.satoken.exception.NotSafeException;
import cn.dev33.satoken.exception.SameTokenInvalidException;
import cn.dev33.satoken.util.SaResult;
/**
@@ -44,9 +44,9 @@ public class HandlerException {
return SaResult.error().setCode(901);
}
// id-token 校验失败code=902
@ExceptionHandler(IdTokenInvalidException.class)
public SaResult handlerIdTokenInvalidException(IdTokenInvalidException e) {
// same-token 校验失败code=902
@ExceptionHandler(SameTokenInvalidException.class)
public SaResult handlerSameTokenInvalidException(SameTokenInvalidException e) {
return SaResult.error().setCode(902);
}

View File

@@ -2,9 +2,9 @@ package cn.dev33.satoken.integrate.configure.inject;
import org.springframework.stereotype.Component;
import cn.dev33.satoken.id.SaIdTemplate;
import cn.dev33.satoken.same.SaSameTemplate;
@Component
public class MySaIdTemplate extends SaIdTemplate {
public class MySaSameTemplate extends SaSameTemplate {
}

View File

@@ -1,28 +1,28 @@
package cn.dev33.satoken.integrate.id;
package cn.dev33.satoken.integrate.same;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import cn.dev33.satoken.id.SaIdUtil;
import cn.dev33.satoken.same.SaSameUtil;
import cn.dev33.satoken.spring.SpringMVCUtil;
import cn.dev33.satoken.util.SaResult;
/**
* id-token Controller
* same-token Controller
*
* @author kong
*
*/
@RestController
@RequestMapping("/id/")
public class SaIdTokenController {
@RequestMapping("/same/")
public class SaSameTokenController {
// 获取信息
@RequestMapping("getInfo")
public SaResult getInfo() {
// 获取并校验id-token
String idToken = SpringMVCUtil.getRequest().getHeader(SaIdUtil.ID_TOKEN);
SaIdUtil.checkToken(idToken);
// 获取并校验same-token
String sameToken = SpringMVCUtil.getRequest().getHeader(SaSameUtil.SAME_TOKEN);
SaSameUtil.checkToken(sameToken);
// 返回信息
return SaResult.data("info=zhangsan");
}
@@ -30,8 +30,8 @@ public class SaIdTokenController {
// 获取信息2
@RequestMapping("getInfo2")
public SaResult getInfo2() {
// 获取并校验id-token
SaIdUtil.checkCurrentRequestToken();
// 获取并校验same-token
SaSameUtil.checkCurrentRequestToken();
// 返回信息
return SaResult.data("info=zhangsan2");
}

View File

@@ -1,4 +1,4 @@
package cn.dev33.satoken.integrate.id;
package cn.dev33.satoken.integrate.same;
import java.util.Map;
@@ -16,19 +16,19 @@ import org.springframework.test.web.servlet.setup.MockMvcBuilders;
import org.springframework.web.context.WebApplicationContext;
import cn.dev33.satoken.SaManager;
import cn.dev33.satoken.exception.IdTokenInvalidException;
import cn.dev33.satoken.id.SaIdUtil;
import cn.dev33.satoken.exception.SameTokenInvalidException;
import cn.dev33.satoken.integrate.StartUpApplication;
import cn.dev33.satoken.same.SaSameUtil;
import cn.dev33.satoken.util.SaResult;
/**
* id-token Controller 测试
* same-token Controller 测试
*
* @author kong
*
*/
@SpringBootTest(classes = StartUpApplication.class)
public class SaIdTokenControllerTest {
public class SaSameTokenControllerTest {
@Autowired
private WebApplicationContext wac;
@@ -44,73 +44,73 @@ public class SaIdTokenControllerTest {
// 获取信息
@Test
public void testGetInfo() {
String token = SaIdUtil.getToken();
String token = SaSameUtil.getToken();
// 加token能调通
SaResult res = request("/id/getInfo", token);
SaResult res = request("/same/getInfo", token);
Assertions.assertEquals(res.getCode(), 200);
// 不加token不能调通
SaResult res2 = request("/id/getInfo", "xxx");
SaResult res2 = request("/same/getInfo", "xxx");
Assertions.assertEquals(res2.getCode(), 902);
// 获取信息2
token = SaIdUtil.getTokenNh();
token = SaSameUtil.getTokenNh();
// 加token能调通
SaResult res3 = request("/id/getInfo2", token);
SaResult res3 = request("/same/getInfo2", token);
Assertions.assertEquals(res3.getCode(), 200);
// 不加token不能调通
SaResult res4 = request("/id/getInfo2", "xxx");
SaResult res4 = request("/same/getInfo2", "xxx");
Assertions.assertEquals(res4.getCode(), 902);
}
// 基础测试
@Test
public void testApi() {
String token = SaIdUtil.getToken();
String token = SaSameUtil.getToken();
// 刷新一下会有变化
SaIdUtil.refreshToken();
String token2 = SaIdUtil.getToken();
SaSameUtil.refreshToken();
String token2 = SaSameUtil.getToken();
Assertions.assertNotEquals(token, token2);
// 旧token变为次级token
String pastToken = SaIdUtil.getPastTokenNh();
String pastToken = SaSameUtil.getPastTokenNh();
Assertions.assertEquals(token, pastToken);
// dao中应该有值
String daoToken = SaManager.getSaTokenDao().get("satoken:var:id-token");
String daoToken2 = SaManager.getSaTokenDao().get("satoken:var:past-id-token");
String daoToken = SaManager.getSaTokenDao().get("satoken:var:same-token");
String daoToken2 = SaManager.getSaTokenDao().get("satoken:var:past-same-token");
Assertions.assertEquals(token2, daoToken);
Assertions.assertEquals(token, daoToken2);
// 新旧都有效
Assertions.assertTrue(SaIdUtil.isValid(token));
Assertions.assertTrue(SaIdUtil.isValid(token2));
Assertions.assertTrue(SaSameUtil.isValid(token));
Assertions.assertTrue(SaSameUtil.isValid(token2));
// 空的不行
Assertions.assertFalse(SaIdUtil.isValid(null));
Assertions.assertFalse(SaIdUtil.isValid(""));
Assertions.assertFalse(SaSameUtil.isValid(null));
Assertions.assertFalse(SaSameUtil.isValid(""));
// 不抛出异常
Assertions.assertDoesNotThrow(() -> SaIdUtil.checkToken(token));
Assertions.assertDoesNotThrow(() -> SaIdUtil.checkToken(token2));
Assertions.assertDoesNotThrow(() -> SaSameUtil.checkToken(token));
Assertions.assertDoesNotThrow(() -> SaSameUtil.checkToken(token2));
// 抛出异常
Assertions.assertThrows(IdTokenInvalidException.class, () -> SaIdUtil.checkToken(null));
Assertions.assertThrows(IdTokenInvalidException.class, () -> SaIdUtil.checkToken(""));
Assertions.assertThrows(IdTokenInvalidException.class, () -> SaIdUtil.checkToken("aaa"));
Assertions.assertThrows(SameTokenInvalidException.class, () -> SaSameUtil.checkToken(null));
Assertions.assertThrows(SameTokenInvalidException.class, () -> SaSameUtil.checkToken(""));
Assertions.assertThrows(SameTokenInvalidException.class, () -> SaSameUtil.checkToken("aaa"));
}
// 封装请求
private SaResult request(String path, String idToken) {
private SaResult request(String path, String sameToken) {
try {
// 发请求
MvcResult mvcResult = mvc.perform(
MockMvcRequestBuilders.post(path)
.contentType(MediaType.APPLICATION_PROBLEM_JSON)
.accept(MediaType.APPLICATION_PROBLEM_JSON)
.header(SaIdUtil.ID_TOKEN, idToken)
.header(SaSameUtil.SAME_TOKEN, sameToken)
)
.andExpect(MockMvcResultMatchers.status().isOk())
.andReturn();