mirror of
https://gitee.com/dromara/sa-token.git
synced 2025-09-23 12:33:36 +08:00
完善 StpUtil 单元测试
This commit is contained in:
@@ -12,6 +12,8 @@ import java.util.List;
|
|||||||
*/
|
*/
|
||||||
public class StpUtil {
|
public class StpUtil {
|
||||||
|
|
||||||
|
private StpUtil() {}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 账号类型标识
|
* 账号类型标识
|
||||||
*/
|
*/
|
||||||
|
@@ -13,6 +13,8 @@ import cn.dev33.satoken.SaManager;
|
|||||||
import cn.dev33.satoken.dao.SaTokenDao;
|
import cn.dev33.satoken.dao.SaTokenDao;
|
||||||
import cn.dev33.satoken.exception.DisableLoginException;
|
import cn.dev33.satoken.exception.DisableLoginException;
|
||||||
import cn.dev33.satoken.exception.NotLoginException;
|
import cn.dev33.satoken.exception.NotLoginException;
|
||||||
|
import cn.dev33.satoken.exception.NotPermissionException;
|
||||||
|
import cn.dev33.satoken.exception.NotRoleException;
|
||||||
import cn.dev33.satoken.session.SaSession;
|
import cn.dev33.satoken.session.SaSession;
|
||||||
import cn.dev33.satoken.session.SaSessionCustomUtil;
|
import cn.dev33.satoken.session.SaSessionCustomUtil;
|
||||||
import cn.dev33.satoken.stp.StpUtil;
|
import cn.dev33.satoken.stp.StpUtil;
|
||||||
@@ -55,6 +57,8 @@ public class BasicsTest {
|
|||||||
Assertions.assertTrue(StpUtil.isLogin());
|
Assertions.assertTrue(StpUtil.isLogin());
|
||||||
Assertions.assertNotNull(token); // token不为null
|
Assertions.assertNotNull(token); // token不为null
|
||||||
Assertions.assertEquals(StpUtil.getLoginIdAsLong(), 10001); // loginId=10001
|
Assertions.assertEquals(StpUtil.getLoginIdAsLong(), 10001); // loginId=10001
|
||||||
|
Assertions.assertEquals(StpUtil.getLoginIdAsInt(), 10001); // loginId=10001
|
||||||
|
Assertions.assertEquals(StpUtil.getLoginIdAsString(), "10001"); // loginId=10001
|
||||||
Assertions.assertEquals(StpUtil.getLoginDevice(), SaTokenConsts.DEFAULT_LOGIN_DEVICE); // 登录设备类型
|
Assertions.assertEquals(StpUtil.getLoginDevice(), SaTokenConsts.DEFAULT_LOGIN_DEVICE); // 登录设备类型
|
||||||
|
|
||||||
// db数据 验证
|
// db数据 验证
|
||||||
@@ -116,7 +120,12 @@ public class BasicsTest {
|
|||||||
public void testCheckPermission() {
|
public void testCheckPermission() {
|
||||||
StpUtil.login(10001);
|
StpUtil.login(10001);
|
||||||
|
|
||||||
// 权限认证
|
// 获取权限
|
||||||
|
List<String> permissionList = StpUtil.getPermissionList();
|
||||||
|
List<String> permissionList2 = StpUtil.getPermissionList(10001);
|
||||||
|
Assertions.assertEquals(permissionList.size(), permissionList2.size());
|
||||||
|
|
||||||
|
// 权限校验
|
||||||
Assertions.assertTrue(StpUtil.hasPermission("user-add"));
|
Assertions.assertTrue(StpUtil.hasPermission("user-add"));
|
||||||
Assertions.assertTrue(StpUtil.hasPermission("user-list"));
|
Assertions.assertTrue(StpUtil.hasPermission("user-list"));
|
||||||
Assertions.assertTrue(StpUtil.hasPermission("user"));
|
Assertions.assertTrue(StpUtil.hasPermission("user"));
|
||||||
@@ -128,6 +137,14 @@ public class BasicsTest {
|
|||||||
// or
|
// or
|
||||||
Assertions.assertTrue(StpUtil.hasPermissionOr("art-add", "comment-add"));
|
Assertions.assertTrue(StpUtil.hasPermissionOr("art-add", "comment-add"));
|
||||||
Assertions.assertFalse(StpUtil.hasPermissionOr("comment-add", "comment-delete"));
|
Assertions.assertFalse(StpUtil.hasPermissionOr("comment-add", "comment-delete"));
|
||||||
|
// more
|
||||||
|
Assertions.assertTrue(StpUtil.hasPermission(10001, "user-add"));
|
||||||
|
Assertions.assertFalse(StpUtil.hasPermission(10002, "user-add"));
|
||||||
|
|
||||||
|
// 抛异常
|
||||||
|
Assertions.assertThrows(NotPermissionException.class, () -> StpUtil.checkPermission("goods-add"));
|
||||||
|
Assertions.assertThrows(NotPermissionException.class, () -> StpUtil.checkPermissionAnd("goods-add", "art-add"));
|
||||||
|
Assertions.assertDoesNotThrow(() -> StpUtil.checkPermissionOr("goods-add", "art-add"));
|
||||||
}
|
}
|
||||||
|
|
||||||
// 测试:角色认证
|
// 测试:角色认证
|
||||||
@@ -135,7 +152,12 @@ public class BasicsTest {
|
|||||||
public void testCheckRole() {
|
public void testCheckRole() {
|
||||||
StpUtil.login(10001);
|
StpUtil.login(10001);
|
||||||
|
|
||||||
// 角色认证
|
// 获取角色
|
||||||
|
List<String> roleList = StpUtil.getRoleList();
|
||||||
|
List<String> roleList2 = StpUtil.getRoleList(10001);
|
||||||
|
Assertions.assertEquals(roleList.size(), roleList2.size());
|
||||||
|
|
||||||
|
// 角色校验
|
||||||
Assertions.assertTrue(StpUtil.hasRole("admin"));
|
Assertions.assertTrue(StpUtil.hasRole("admin"));
|
||||||
Assertions.assertFalse(StpUtil.hasRole("teacher"));
|
Assertions.assertFalse(StpUtil.hasRole("teacher"));
|
||||||
// and
|
// and
|
||||||
@@ -144,6 +166,14 @@ public class BasicsTest {
|
|||||||
// or
|
// or
|
||||||
Assertions.assertTrue(StpUtil.hasRoleOr("admin", "ceo"));
|
Assertions.assertTrue(StpUtil.hasRoleOr("admin", "ceo"));
|
||||||
Assertions.assertFalse(StpUtil.hasRoleOr("ceo", "cto"));
|
Assertions.assertFalse(StpUtil.hasRoleOr("ceo", "cto"));
|
||||||
|
// more
|
||||||
|
Assertions.assertTrue(StpUtil.hasRole(10001, "admin"));
|
||||||
|
Assertions.assertFalse(StpUtil.hasRole(10002, "admin2"));
|
||||||
|
|
||||||
|
// 抛异常
|
||||||
|
Assertions.assertThrows(NotRoleException.class, () -> StpUtil.checkRole("ceo"));
|
||||||
|
Assertions.assertThrows(NotRoleException.class, () -> StpUtil.checkRoleAnd("ceo", "admin"));
|
||||||
|
Assertions.assertDoesNotThrow(() -> StpUtil.checkRoleOr("ceo", "admin"));
|
||||||
}
|
}
|
||||||
|
|
||||||
// 测试:根据token强制注销
|
// 测试:根据token强制注销
|
||||||
|
@@ -6,6 +6,7 @@ import java.util.List;
|
|||||||
import org.springframework.stereotype.Component;
|
import org.springframework.stereotype.Component;
|
||||||
|
|
||||||
import cn.dev33.satoken.stp.StpInterface;
|
import cn.dev33.satoken.stp.StpInterface;
|
||||||
|
import cn.dev33.satoken.util.SaFoxUtil;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 自定义权限验证接口扩展
|
* 自定义权限验证接口扩展
|
||||||
@@ -21,7 +22,12 @@ public class StpInterfaceImpl implements StpInterface {
|
|||||||
*/
|
*/
|
||||||
@Override
|
@Override
|
||||||
public List<String> getPermissionList(Object loginId, String loginType) {
|
public List<String> getPermissionList(Object loginId, String loginType) {
|
||||||
return Arrays.asList("user*", "art-add", "art-delete", "art-update", "art-get");
|
int id = SaFoxUtil.getValueByType(loginId, int.class);
|
||||||
|
if(id == 10001) {
|
||||||
|
return Arrays.asList("user*", "art-add", "art-delete", "art-update", "art-get");
|
||||||
|
} else {
|
||||||
|
return null;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -29,7 +35,12 @@ public class StpInterfaceImpl implements StpInterface {
|
|||||||
*/
|
*/
|
||||||
@Override
|
@Override
|
||||||
public List<String> getRoleList(Object loginId, String loginType) {
|
public List<String> getRoleList(Object loginId, String loginType) {
|
||||||
return Arrays.asList("admin", "super-admin");
|
int id = SaFoxUtil.getValueByType(loginId, int.class);
|
||||||
|
if(id == 10001) {
|
||||||
|
return Arrays.asList("admin", "super-admin");
|
||||||
|
} else {
|
||||||
|
return null;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user