mirror of
https://gitee.com/dromara/sa-token.git
synced 2025-12-21 10:59:45 +08:00
增加多账号认证示例
This commit is contained in:
@@ -0,0 +1,31 @@
|
|||||||
|
package com.pj.cases.test;
|
||||||
|
|
||||||
|
import org.springframework.web.bind.annotation.RequestMapping;
|
||||||
|
import org.springframework.web.bind.annotation.RestController;
|
||||||
|
|
||||||
|
import cn.dev33.satoken.util.SaResult;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 测试专用 Controller
|
||||||
|
* @author kong
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
@RestController
|
||||||
|
@RequestMapping("/test/")
|
||||||
|
public class TestController {
|
||||||
|
|
||||||
|
// 测试 浏览器访问: http://localhost:8081/test/test
|
||||||
|
@RequestMapping("test")
|
||||||
|
public SaResult test() {
|
||||||
|
System.out.println("------------进来了");
|
||||||
|
return SaResult.ok();
|
||||||
|
}
|
||||||
|
|
||||||
|
// 测试 浏览器访问: http://localhost:8081/test/test2
|
||||||
|
@RequestMapping("test2")
|
||||||
|
public SaResult test2() {
|
||||||
|
System.out.println("------------进来了");
|
||||||
|
return SaResult.ok();
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
@@ -1,7 +1,9 @@
|
|||||||
package com.pj.satoken.at;
|
package com.pj.satoken;
|
||||||
|
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
|
import org.springframework.stereotype.Component;
|
||||||
|
|
||||||
import cn.dev33.satoken.SaManager;
|
import cn.dev33.satoken.SaManager;
|
||||||
import cn.dev33.satoken.fun.SaFunction;
|
import cn.dev33.satoken.fun.SaFunction;
|
||||||
import cn.dev33.satoken.session.SaSession;
|
import cn.dev33.satoken.session.SaSession;
|
||||||
@@ -10,9 +12,10 @@ import cn.dev33.satoken.stp.SaTokenInfo;
|
|||||||
import cn.dev33.satoken.stp.StpLogic;
|
import cn.dev33.satoken.stp.StpLogic;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Sa-Token 权限认证工具类 (User版)
|
* Sa-Token 权限认证工具类 (User版)
|
||||||
* @author kong
|
* @author kong
|
||||||
*/
|
*/
|
||||||
|
@Component
|
||||||
public class StpUserUtil {
|
public class StpUserUtil {
|
||||||
|
|
||||||
private StpUserUtil() {}
|
private StpUserUtil() {}
|
||||||
@@ -1,9 +1,7 @@
|
|||||||
package com.pj.satoken;
|
package com.pj.satoken;
|
||||||
|
|
||||||
import org.springframework.beans.factory.annotation.Autowired;
|
|
||||||
import org.springframework.context.annotation.Bean;
|
import org.springframework.context.annotation.Bean;
|
||||||
import org.springframework.context.annotation.Configuration;
|
import org.springframework.context.annotation.Configuration;
|
||||||
import org.springframework.core.annotation.AnnotatedElementUtils;
|
|
||||||
import org.springframework.web.servlet.config.annotation.InterceptorRegistry;
|
import org.springframework.web.servlet.config.annotation.InterceptorRegistry;
|
||||||
import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;
|
import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;
|
||||||
|
|
||||||
@@ -12,7 +10,6 @@ import com.pj.util.AjaxJson;
|
|||||||
import cn.dev33.satoken.context.SaHolder;
|
import cn.dev33.satoken.context.SaHolder;
|
||||||
import cn.dev33.satoken.filter.SaServletFilter;
|
import cn.dev33.satoken.filter.SaServletFilter;
|
||||||
import cn.dev33.satoken.interceptor.SaInterceptor;
|
import cn.dev33.satoken.interceptor.SaInterceptor;
|
||||||
import cn.dev33.satoken.strategy.SaStrategy;
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -71,15 +68,4 @@ public class SaTokenConfigure implements WebMvcConfigurer {
|
|||||||
;
|
;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
|
||||||
* 重写 Sa-Token 框架内部算法策略
|
|
||||||
*/
|
|
||||||
@Autowired
|
|
||||||
public void rewriteSaStrategy() {
|
|
||||||
// 重写Sa-Token的注解处理器,增加注解合并功能
|
|
||||||
SaStrategy.me.getAnnotation = (element, annotationClass) -> {
|
|
||||||
return AnnotatedElementUtils.getMergedAnnotation(element, annotationClass);
|
|
||||||
};
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,9 +1,7 @@
|
|||||||
package com.pj.satoken;
|
package com.pj.satoken;
|
||||||
|
|
||||||
import org.springframework.beans.factory.annotation.Autowired;
|
|
||||||
import org.springframework.context.annotation.Bean;
|
import org.springframework.context.annotation.Bean;
|
||||||
import org.springframework.context.annotation.Configuration;
|
import org.springframework.context.annotation.Configuration;
|
||||||
import org.springframework.core.annotation.AnnotatedElementUtils;
|
|
||||||
import org.springframework.web.servlet.config.annotation.InterceptorRegistry;
|
import org.springframework.web.servlet.config.annotation.InterceptorRegistry;
|
||||||
import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;
|
import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;
|
||||||
|
|
||||||
@@ -12,7 +10,6 @@ import com.pj.util.AjaxJson;
|
|||||||
import cn.dev33.satoken.context.SaHolder;
|
import cn.dev33.satoken.context.SaHolder;
|
||||||
import cn.dev33.satoken.filter.SaServletFilter;
|
import cn.dev33.satoken.filter.SaServletFilter;
|
||||||
import cn.dev33.satoken.interceptor.SaInterceptor;
|
import cn.dev33.satoken.interceptor.SaInterceptor;
|
||||||
import cn.dev33.satoken.strategy.SaStrategy;
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -71,15 +68,4 @@ public class SaTokenConfigure implements WebMvcConfigurer {
|
|||||||
;
|
;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
|
||||||
* 重写 Sa-Token 框架内部算法策略
|
|
||||||
*/
|
|
||||||
@Autowired
|
|
||||||
public void rewriteSaStrategy() {
|
|
||||||
// 重写Sa-Token的注解处理器,增加注解合并功能
|
|
||||||
SaStrategy.me.getAnnotation = (element, annotationClass) -> {
|
|
||||||
return AnnotatedElementUtils.getMergedAnnotation(element, annotationClass);
|
|
||||||
};
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,21 +0,0 @@
|
|||||||
package com.pj.satoken.at;
|
|
||||||
|
|
||||||
import java.lang.annotation.ElementType;
|
|
||||||
import java.lang.annotation.Retention;
|
|
||||||
import java.lang.annotation.RetentionPolicy;
|
|
||||||
import java.lang.annotation.Target;
|
|
||||||
|
|
||||||
import cn.dev33.satoken.annotation.SaCheckLogin;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 登录认证(User版):只有登录之后才能进入该方法
|
|
||||||
* <p> 可标注在函数、类上(效果等同于标注在此类的所有方法上)
|
|
||||||
* @author kong
|
|
||||||
*
|
|
||||||
*/
|
|
||||||
@SaCheckLogin(type = StpUserUtil.TYPE)
|
|
||||||
@Retention(RetentionPolicy.RUNTIME)
|
|
||||||
@Target({ ElementType.METHOD, ElementType.TYPE})
|
|
||||||
public @interface SaUserCheckLogin {
|
|
||||||
|
|
||||||
}
|
|
||||||
@@ -1,38 +0,0 @@
|
|||||||
package com.pj.satoken.at;
|
|
||||||
|
|
||||||
import java.lang.annotation.ElementType;
|
|
||||||
import java.lang.annotation.Retention;
|
|
||||||
import java.lang.annotation.RetentionPolicy;
|
|
||||||
import java.lang.annotation.Target;
|
|
||||||
|
|
||||||
import org.springframework.core.annotation.AliasFor;
|
|
||||||
|
|
||||||
import cn.dev33.satoken.annotation.SaCheckPermission;
|
|
||||||
import cn.dev33.satoken.annotation.SaMode;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 权限认证(User版):必须具有指定权限才能进入该方法
|
|
||||||
* <p> 可标注在函数、类上(效果等同于标注在此类的所有方法上)
|
|
||||||
* @author kong
|
|
||||||
*
|
|
||||||
*/
|
|
||||||
@SaCheckPermission(type = StpUserUtil.TYPE)
|
|
||||||
@Retention(RetentionPolicy.RUNTIME)
|
|
||||||
@Target({ ElementType.METHOD, ElementType.TYPE})
|
|
||||||
public @interface SaUserCheckPermission {
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 需要校验的权限码
|
|
||||||
* @return 需要校验的权限码
|
|
||||||
*/
|
|
||||||
@AliasFor(annotation = SaCheckPermission.class)
|
|
||||||
String [] value() default {};
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 验证模式:AND | OR,默认AND
|
|
||||||
* @return 验证模式
|
|
||||||
*/
|
|
||||||
@AliasFor(annotation = SaCheckPermission.class)
|
|
||||||
SaMode mode() default SaMode.AND;
|
|
||||||
|
|
||||||
}
|
|
||||||
@@ -1,38 +0,0 @@
|
|||||||
package com.pj.satoken.at;
|
|
||||||
|
|
||||||
import java.lang.annotation.ElementType;
|
|
||||||
import java.lang.annotation.Retention;
|
|
||||||
import java.lang.annotation.RetentionPolicy;
|
|
||||||
import java.lang.annotation.Target;
|
|
||||||
|
|
||||||
import org.springframework.core.annotation.AliasFor;
|
|
||||||
|
|
||||||
import cn.dev33.satoken.annotation.SaCheckRole;
|
|
||||||
import cn.dev33.satoken.annotation.SaMode;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 角色认证(User版):必须具有指定角色标识才能进入该方法
|
|
||||||
* <p> 可标注在函数、类上(效果等同于标注在此类的所有方法上)
|
|
||||||
* @author kong
|
|
||||||
*
|
|
||||||
*/
|
|
||||||
@SaCheckRole(type = StpUserUtil.TYPE)
|
|
||||||
@Retention(RetentionPolicy.RUNTIME)
|
|
||||||
@Target({ ElementType.METHOD, ElementType.TYPE})
|
|
||||||
public @interface SaUserCheckRole {
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 需要校验的角色标识
|
|
||||||
* @return 需要校验的角色标识
|
|
||||||
*/
|
|
||||||
@AliasFor(annotation = SaCheckRole.class)
|
|
||||||
String [] value() default {};
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 验证模式:AND | OR,默认AND
|
|
||||||
* @return 验证模式
|
|
||||||
*/
|
|
||||||
@AliasFor(annotation = SaCheckRole.class)
|
|
||||||
SaMode mode() default SaMode.AND;
|
|
||||||
|
|
||||||
}
|
|
||||||
Reference in New Issue
Block a user