@PerBuildUser支持在class上使用

This commit is contained in:
zhangtianyu 2022-05-12 12:52:25 +08:00
parent 2dcdc49d22
commit b885ab7105
2 changed files with 14 additions and 2 deletions

View File

@ -4,7 +4,7 @@ import cn.axzo.framework.auth.domain.RequestInfo;
import java.lang.annotation.*;
@Target({ElementType.METHOD})
@Target({ElementType.METHOD, ElementType.TYPE})
@Retention(RetentionPolicy.RUNTIME)
@Documented
public @interface PreBuildUser {

View File

@ -37,8 +37,19 @@ import java.util.Objects;
@Component
public class BuilderUserInfoAspect {
@Around(value = "@within(preBuildUser)")
public Object classHandler(ProceedingJoinPoint pjp, PreBuildUser preBuildUser){
return handle(pjp, preBuildUser);
}
@Around(value = "@annotation(preBuildUser)")
public Object methodHandler(ProceedingJoinPoint pjp, PreBuildUser preBuildUser) throws Throwable {
public Object methodHandler(ProceedingJoinPoint pjp, PreBuildUser preBuildUser){
return handle(pjp, preBuildUser);
}
@SneakyThrows
public Object handle(ProceedingJoinPoint pjp, PreBuildUser preBuildUser) {
HttpServletRequest httpRequest = null;
try {
//获取request
@ -54,6 +65,7 @@ public class BuilderUserInfoAspect {
}finally {
UserInfoHolder.clear();
}
}
public void fillInUserInfoDetail(HttpServletRequest request, ProceedingJoinPoint pjp, Class<? extends RequestInfo> requestInfoClass) {