diff --git a/njzscloud-common/njzscloud-common-security/src/main/java/com/njzscloud/common/security/contant/ClientCode.java b/njzscloud-common/njzscloud-common-security/src/main/java/com/njzscloud/common/security/contant/ClientCode.java index 3c2e700..0bf5e0d 100644 --- a/njzscloud-common/njzscloud-common-security/src/main/java/com/njzscloud/common/security/contant/ClientCode.java +++ b/njzscloud-common/njzscloud-common-security/src/main/java/com/njzscloud/common/security/contant/ClientCode.java @@ -38,7 +38,6 @@ public enum ClientCode implements DictInt { } public static boolean valid(int clientCode) { - Optional max = Arrays.stream(ClientCode.class.getEnumConstants()) .map(ClientCode::getVal) .reduce((a, b) -> a | b); diff --git a/njzscloud-common/njzscloud-common-security/src/main/java/com/njzscloud/common/security/contant/Constants.java b/njzscloud-common/njzscloud-common-security/src/main/java/com/njzscloud/common/security/contant/Constants.java index b4d8694..2af6200 100644 --- a/njzscloud-common/njzscloud-common-security/src/main/java/com/njzscloud/common/security/contant/Constants.java +++ b/njzscloud-common/njzscloud-common-security/src/main/java/com/njzscloud/common/security/contant/Constants.java @@ -1,6 +1,8 @@ package com.njzscloud.common.security.contant; +import cn.hutool.extra.spring.SpringUtil; import com.njzscloud.common.core.utils.Key; +import com.njzscloud.common.security.support.AnonymousUser; import com.njzscloud.common.security.support.UserDetail; /** @@ -28,5 +30,5 @@ public final class Constants { /** * 匿名用户 */ - public static final UserDetail ANONYMOUS_USER = UserDetail.anonymousUser(); + public static final UserDetail ANONYMOUS_USER = SpringUtil.getBean(AnonymousUser.class).anonymousUser(); } diff --git a/njzscloud-common/njzscloud-common-security/src/main/java/com/njzscloud/common/security/support/AnonymousUser.java b/njzscloud-common/njzscloud-common-security/src/main/java/com/njzscloud/common/security/support/AnonymousUser.java new file mode 100644 index 0000000..6af1faa --- /dev/null +++ b/njzscloud-common/njzscloud-common-security/src/main/java/com/njzscloud/common/security/support/AnonymousUser.java @@ -0,0 +1,5 @@ +package com.njzscloud.common.security.support; + +public interface AnonymousUser { + UserDetail anonymousUser(); +} diff --git a/njzscloud-common/njzscloud-common-security/src/main/java/com/njzscloud/common/security/support/UserDetail.java b/njzscloud-common/njzscloud-common-security/src/main/java/com/njzscloud/common/security/support/UserDetail.java index ec31d04..4c104fc 100644 --- a/njzscloud-common/njzscloud-common-security/src/main/java/com/njzscloud/common/security/support/UserDetail.java +++ b/njzscloud-common/njzscloud-common-security/src/main/java/com/njzscloud/common/security/support/UserDetail.java @@ -1,6 +1,5 @@ package com.njzscloud.common.security.support; -import cn.hutool.core.collection.CollUtil; import com.alibaba.fastjson2.annotation.JSONField; import com.fasterxml.jackson.annotation.JsonIgnore; import com.fasterxml.jackson.databind.annotation.JsonSerialize; @@ -15,8 +14,6 @@ import org.springframework.security.core.CredentialsContainer; import java.security.Principal; import java.util.Set; -import static com.njzscloud.common.security.contant.Constants.ROLE_ANONYMOUS; - /** * 用户信息 */ @@ -69,14 +66,6 @@ public class UserDetail implements CredentialsContainer, Principal { */ private Boolean disabled; - public static UserDetail anonymousUser() { - return new UserDetail() - .setUserId(0L) - .setAccountId(0L) - .setRoles(CollUtil.newHashSet(ROLE_ANONYMOUS)) - .setToken(Token.anonymousToken()); - } - /** * 账号是否过期 */ diff --git a/njzscloud-svr/src/main/java/com/njzscloud/dispose/sys/auth/service/AuthService.java b/njzscloud-svr/src/main/java/com/njzscloud/dispose/sys/auth/service/AuthService.java index fe97889..17badbf 100644 --- a/njzscloud-svr/src/main/java/com/njzscloud/dispose/sys/auth/service/AuthService.java +++ b/njzscloud-svr/src/main/java/com/njzscloud/dispose/sys/auth/service/AuthService.java @@ -6,9 +6,12 @@ import cn.hutool.core.lang.Assert; import cn.hutool.core.util.StrUtil; import com.baomidou.mybatisplus.core.toolkit.Wrappers; import com.njzscloud.common.core.ex.Exceptions; +import com.njzscloud.common.security.contant.ClientCode; import com.njzscloud.common.security.module.password.PasswordLoginForm; import com.njzscloud.common.security.module.wechat.mini.WechatMiniLoginForm; +import com.njzscloud.common.security.support.AnonymousUser; import com.njzscloud.common.security.support.IAuthService; +import com.njzscloud.common.security.support.Token; import com.njzscloud.common.security.support.UserDetail; import com.njzscloud.dispose.finance.mapper.MoneyAccountMapper; import com.njzscloud.dispose.finance.pojo.entity.MoneyAccountEntity; @@ -23,6 +26,7 @@ import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import java.math.BigDecimal; +import java.util.Arrays; import java.util.List; import java.util.Set; @@ -35,7 +39,7 @@ import static com.njzscloud.common.security.contant.Constants.ROLE_AUTHENTICATED @Slf4j @Service @RequiredArgsConstructor -public class AuthService implements IAuthService { +public class AuthService implements IAuthService, AnonymousUser { private final AuthMapper authMapper; private final MoneyAccountMapper moneyAccountMapper; @@ -71,13 +75,15 @@ public class AuthService implements IAuthService { @Override public UserDetail my(Long userId, Integer client) { UserDetail userDetail = authMapper.selectUser(Wrappers.query().eq("b.id", userId).eq("a.deleted", 0)); - Assert.notNull(userDetail, () -> Exceptions.exception("未查询到用户信息")); + // Assert.notNull(userDetail, () -> Exceptions.exception("未查询到用户信息")); + if (userDetail == null) return null; return my(userDetail, client); } public UserDetail my(Long userId, Integer client, Long currentCustomerId) { UserDetail userDetail = authMapper.selectUser(Wrappers.query().eq("b.id", userId).eq("a.deleted", 0)); - Assert.notNull(userDetail, () -> Exceptions.exception("未查询到用户信息")); + if (userDetail == null) return null; + // Assert.notNull(userDetail, () -> Exceptions.exception("未查询到用户信息")); return my(userDetail, client, currentCustomerId); } @@ -118,4 +124,13 @@ public class AuthService implements IAuthService { ; } + @Override + public UserDetail anonymousUser() { + return new MyResult() + .setClient(Arrays.stream(ClientCode.values()).map(ClientCode::getVal).reduce(Integer::sum).orElse(0)) + .setUserId(0L) + .setAccountId(0L) + .setRoles(CollUtil.newHashSet(ROLE_ANONYMOUS)) + .setToken(Token.anonymousToken()); + } } diff --git a/njzscloud-svr/src/main/resources/application-dev.yml b/njzscloud-svr/src/main/resources/application-dev.yml index 8711fed..d694269 100644 --- a/njzscloud-svr/src/main/resources/application-dev.yml +++ b/njzscloud-svr/src/main/resources/application-dev.yml @@ -12,7 +12,6 @@ spring: - /endpoint/reload - /permission/refresh_cache - /static/** - - /** oss: type: ali