mirror of
https://gitee.com/dromara/sa-token.git
synced 2026-05-14 04:42:09 +08:00
feat(oauth2): 新增:多 Access-Token 并存 & 多 Refresh-Token 并存 & 多 Client-Token 并存 & 移除 Lower-Client-Token 模块
Closes: #IBHFD1, #IBLL4Q fix: #724
This commit is contained in:
@@ -16,12 +16,14 @@ import java.util.List;
|
||||
@Component
|
||||
public class SaClientMockDao {
|
||||
|
||||
public List<SaClientModel> list = new ArrayList<>();
|
||||
public List<SaClientModel> list;
|
||||
|
||||
/**
|
||||
* 构造方法,添加三个模拟应用
|
||||
*/
|
||||
public SaClientMockDao(){
|
||||
public void init(){
|
||||
list = new ArrayList<>();
|
||||
|
||||
// 模拟应用1
|
||||
SaClientModel client1 = new SaClientModel()
|
||||
.setClientId("1001") // client id
|
||||
@@ -77,6 +79,9 @@ public class SaClientMockDao {
|
||||
* @return 应用对象
|
||||
*/
|
||||
public SaClientModel getClientModel(String clientId) {
|
||||
if(list == null) {
|
||||
init();
|
||||
}
|
||||
return list.stream()
|
||||
.filter(e -> e.getClientId().equals(clientId))
|
||||
.findFirst()
|
||||
|
||||
@@ -0,0 +1,83 @@
|
||||
package com.pj.test;
|
||||
|
||||
import cn.dev33.satoken.oauth2.template.SaOAuth2Util;
|
||||
import cn.dev33.satoken.util.SaResult;
|
||||
import org.springframework.web.bind.annotation.RequestMapping;
|
||||
import org.springframework.web.bind.annotation.RestController;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* 测试 OAuth2 相关 token 增删查
|
||||
*
|
||||
* @author click33
|
||||
* @since 2024/8/25
|
||||
*/
|
||||
@RestController
|
||||
@RequestMapping("/test")
|
||||
public class Test2Controller {
|
||||
|
||||
// 测试:查询全部 Access-Token --- http://localhost:8000/test/getAccessTokenValueList?clientId=1001&loginId=10001
|
||||
@RequestMapping("/getAccessTokenValueList")
|
||||
public SaResult getAccessTokenValueList(String clientId, long loginId) {
|
||||
List<String> accessTokenValueList = SaOAuth2Util.getAccessTokenValueList(clientId, loginId);
|
||||
return SaResult.data(accessTokenValueList);
|
||||
}
|
||||
|
||||
// 测试:回收指定 Access-Token --- http://localhost:8000/test/revokeAccessToken?access_token=xxxxxxxxxx
|
||||
@RequestMapping("/revokeAccessToken")
|
||||
public SaResult revokeAccessToken(String access_token) {
|
||||
SaOAuth2Util.revokeAccessToken(access_token);
|
||||
return SaResult.ok();
|
||||
}
|
||||
|
||||
// 测试:回收全部 Access-Token --- http://localhost:8000/test/revokeAccessTokenByIndex?clientId=1001&loginId=10001
|
||||
@RequestMapping("/revokeAccessTokenByIndex")
|
||||
public SaResult revokeAccessTokenByIndex(String clientId, long loginId) {
|
||||
SaOAuth2Util.revokeAccessTokenByIndex(clientId, loginId);
|
||||
return SaResult.ok();
|
||||
}
|
||||
|
||||
// 测试:查询全部 Refresh-Token --- http://localhost:8000/test/getRefreshTokenValueList?clientId=1001&loginId=10001
|
||||
@RequestMapping("/getRefreshTokenValueList")
|
||||
public SaResult getRefreshTokenValueList(String clientId, long loginId) {
|
||||
List<String> refreshTokenValueList = SaOAuth2Util.getRefreshTokenValueList(clientId, loginId);
|
||||
return SaResult.data(refreshTokenValueList);
|
||||
}
|
||||
|
||||
// 测试:回收指定 Refresh-Token --- http://localhost:8000/test/revokeRefreshToken?refresh_token=xxxxxxxxxx
|
||||
@RequestMapping("/revokeRefreshToken")
|
||||
public SaResult revokeRefreshToken(String refresh_token) {
|
||||
SaOAuth2Util.revokeRefreshToken(refresh_token);
|
||||
return SaResult.ok();
|
||||
}
|
||||
|
||||
// 测试:回收全部 Refresh-Token --- http://localhost:8000/test/revokeRefreshTokenByIndex?clientId=1001&loginId=10001
|
||||
@RequestMapping("/revokeRefreshTokenByIndex")
|
||||
public SaResult revokeRefreshTokenByIndex(String clientId, long loginId) {
|
||||
SaOAuth2Util.revokeRefreshTokenByIndex(clientId, loginId);
|
||||
return SaResult.ok();
|
||||
}
|
||||
|
||||
// 测试:查询全部 Client-Token --- http://localhost:8000/test/getClientTokenValueList?clientId=1001
|
||||
@RequestMapping("/getClientTokenValueList")
|
||||
public SaResult getClientTokenValueList(String clientId) {
|
||||
List<String> clientTokenValueList = SaOAuth2Util.getClientTokenValueList(clientId);
|
||||
return SaResult.data(clientTokenValueList);
|
||||
}
|
||||
|
||||
// 测试:回收指定 Client-Token --- http://localhost:8000/test/revokeClientToken?client_token=xxxxxxxxxxx
|
||||
@RequestMapping("/revokeClientToken")
|
||||
public SaResult revokeClientToken(String client_token) {
|
||||
SaOAuth2Util.revokeClientToken(client_token);
|
||||
return SaResult.ok();
|
||||
}
|
||||
|
||||
// 测试:回收全部 Client-Token --- http://localhost:8000/test/revokeClientTokenByIndex?clientId=1001
|
||||
@RequestMapping("/revokeClientTokenByIndex")
|
||||
public SaResult revokeClientTokenByIndex(String clientId) {
|
||||
SaOAuth2Util.revokeClientTokenByIndex(clientId);
|
||||
return SaResult.ok();
|
||||
}
|
||||
|
||||
}
|
||||
Reference in New Issue
Block a user