diff --git a/flyfish-data/src/main/java/com/flyfish/framework/auditor/ReactiveAuthorizeAuditor.java b/flyfish-data/src/main/java/com/flyfish/framework/auditor/ReactiveAuthorizeAuditor.java index 0d7151e..8fc5b65 100644 --- a/flyfish-data/src/main/java/com/flyfish/framework/auditor/ReactiveAuthorizeAuditor.java +++ b/flyfish-data/src/main/java/com/flyfish/framework/auditor/ReactiveAuthorizeAuditor.java @@ -3,6 +3,7 @@ package com.flyfish.framework.auditor; import com.flyfish.framework.domain.authorized.AuthorizedDomain; import com.flyfish.framework.domain.base.IUser; import lombok.RequiredArgsConstructor; +import org.apache.commons.lang3.StringUtils; import org.springframework.security.core.context.ReactiveSecurityContextHolder; import org.springframework.stereotype.Component; import reactor.core.publisher.Mono; @@ -19,12 +20,15 @@ public class ReactiveAuthorizeAuditor implements ReactiveBeanAuditor audit(AuthorizedDomain data) { - return ReactiveSecurityContextHolder.getContext() - .map(ctx -> (IUser) ctx.getAuthentication().getPrincipal()) - .map(user -> { - data.setAuthorizeId(user.getAuthority()); - return data; - }) - .defaultIfEmpty(data); + if (StringUtils.isBlank(data.getAuthorizeId())) { + return ReactiveSecurityContextHolder.getContext() + .map(ctx -> (IUser) ctx.getAuthentication().getPrincipal()) + .map(user -> { + data.setAuthorizeId(user.getAuthority()); + return data; + }) + .defaultIfEmpty(data); + } + return Mono.just(data); } } diff --git a/flyfish-data/src/main/java/com/flyfish/framework/domain/authorized/AuthorizedDomain.java b/flyfish-data/src/main/java/com/flyfish/framework/domain/authorized/AuthorizedDomain.java index b8f2484..40af6f3 100644 --- a/flyfish-data/src/main/java/com/flyfish/framework/domain/authorized/AuthorizedDomain.java +++ b/flyfish-data/src/main/java/com/flyfish/framework/domain/authorized/AuthorizedDomain.java @@ -2,12 +2,14 @@ package com.flyfish.framework.domain.authorized; import com.flyfish.framework.annotations.Property; import com.flyfish.framework.domain.base.AuditDomain; +import lombok.Getter; import lombok.Setter; /** * 带鉴权的实体,主要以部门隔绝 */ @Setter +@Getter public abstract class AuthorizedDomain extends AuditDomain { // 作用域id,一般是部门。用户存储时插入