From 2dfebcb79eb07215b329c3192a218c111e228509 Mon Sep 17 00:00:00 2001 From: lbw Date: Sun, 3 Jul 2022 08:36:55 +0800 Subject: [PATCH] =?UTF-8?q?:recycle:=20Refactoring=20code.=20RetOps=20?= =?UTF-8?q?=E9=87=8D=E6=9E=84=20PigxClientDetailsServiceImpl.java?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../core/sensitive/SensitiveSerialize.java | 65 ++++++++++--------- .../service/PigxClientDetailsServiceImpl.java | 12 ++-- 2 files changed, 38 insertions(+), 39 deletions(-) diff --git a/pigx-common/pigx-common-core/src/main/java/com/pig4cloud/pigx/common/core/sensitive/SensitiveSerialize.java b/pigx-common/pigx-common-core/src/main/java/com/pig4cloud/pigx/common/core/sensitive/SensitiveSerialize.java index 440346049..d0cf57883 100644 --- a/pigx-common/pigx-common-core/src/main/java/com/pig4cloud/pigx/common/core/sensitive/SensitiveSerialize.java +++ b/pigx-common/pigx-common-core/src/main/java/com/pig4cloud/pigx/common/core/sensitive/SensitiveSerialize.java @@ -52,38 +52,39 @@ public class SensitiveSerialize extends JsonSerializer implements Contex public void serialize(final String origin, final JsonGenerator jsonGenerator, final SerializerProvider serializerProvider) throws IOException { switch (type) { - case CHINESE_NAME: - jsonGenerator.writeString(DesensitizedUtils.chineseName(origin)); - break; - case ID_CARD: - jsonGenerator.writeString(DesensitizedUtils.idCardNum(origin)); - break; - case FIXED_PHONE: - jsonGenerator.writeString(DesensitizedUtils.fixedPhone(origin)); - break; - case MOBILE_PHONE: - jsonGenerator.writeString(DesensitizedUtils.mobilePhone(origin)); - break; - case ADDRESS: - jsonGenerator.writeString(DesensitizedUtils.address(origin)); - break; - case EMAIL: - jsonGenerator.writeString(DesensitizedUtils.email(origin)); - break; - case BANK_CARD: - jsonGenerator.writeString(DesensitizedUtils.bankCard(origin)); - break; - case PASSWORD: - jsonGenerator.writeString(DesensitizedUtils.password(origin)); - break; - case KEY: - jsonGenerator.writeString(DesensitizedUtils.key(origin)); - break; - case CUSTOMER: - jsonGenerator.writeString(DesensitizedUtils.desValue(origin, prefixNoMaskLen, suffixNoMaskLen, maskStr)); - break; - default: - throw new IllegalArgumentException("Unknow sensitive type enum " + type); + case CHINESE_NAME: + jsonGenerator.writeString(DesensitizedUtils.chineseName(origin)); + break; + case ID_CARD: + jsonGenerator.writeString(DesensitizedUtils.idCardNum(origin)); + break; + case FIXED_PHONE: + jsonGenerator.writeString(DesensitizedUtils.fixedPhone(origin)); + break; + case MOBILE_PHONE: + jsonGenerator.writeString(DesensitizedUtils.mobilePhone(origin)); + break; + case ADDRESS: + jsonGenerator.writeString(DesensitizedUtils.address(origin)); + break; + case EMAIL: + jsonGenerator.writeString(DesensitizedUtils.email(origin)); + break; + case BANK_CARD: + jsonGenerator.writeString(DesensitizedUtils.bankCard(origin)); + break; + case PASSWORD: + jsonGenerator.writeString(DesensitizedUtils.password(origin)); + break; + case KEY: + jsonGenerator.writeString(DesensitizedUtils.key(origin)); + break; + case CUSTOMER: + jsonGenerator + .writeString(DesensitizedUtils.desValue(origin, prefixNoMaskLen, suffixNoMaskLen, maskStr)); + break; + default: + throw new IllegalArgumentException("Unknow sensitive type enum " + type); } } diff --git a/pigx-common/pigx-common-security/src/main/java/com/pig4cloud/pigx/common/security/service/PigxClientDetailsServiceImpl.java b/pigx-common/pigx-common-security/src/main/java/com/pig4cloud/pigx/common/security/service/PigxClientDetailsServiceImpl.java index 87472dd90..fb704b7e4 100644 --- a/pigx-common/pigx-common-security/src/main/java/com/pig4cloud/pigx/common/security/service/PigxClientDetailsServiceImpl.java +++ b/pigx-common/pigx-common-security/src/main/java/com/pig4cloud/pigx/common/security/service/PigxClientDetailsServiceImpl.java @@ -8,6 +8,7 @@ import com.pig4cloud.pigx.admin.api.entity.SysOauthClientDetails; import com.pig4cloud.pigx.admin.api.feign.RemoteClientDetailsService; import com.pig4cloud.pigx.common.core.constant.CacheConstants; import com.pig4cloud.pigx.common.core.constant.SecurityConstants; +import com.pig4cloud.pigx.common.core.util.RetOps; import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; import org.springframework.cache.annotation.Cacheable; @@ -16,6 +17,7 @@ import org.springframework.security.core.authority.AuthorityUtils; import org.springframework.security.oauth2.common.exceptions.InvalidClientException; import org.springframework.security.oauth2.provider.ClientDetails; import org.springframework.security.oauth2.provider.ClientDetailsService; +import org.springframework.security.oauth2.provider.NoSuchClientException; import org.springframework.security.oauth2.provider.client.BaseClientDetails; import org.springframework.util.StringUtils; @@ -43,14 +45,10 @@ public class PigxClientDetailsServiceImpl implements ClientDetailsService { @Override @Cacheable(value = CacheConstants.CLIENT_DETAILS_KEY, key = "#clientId", unless = "#result == null") public ClientDetails loadClientByClientId(String clientId) { - SysOauthClientDetails clientDetails = clientDetailsService - .getClientDetailsById(clientId, SecurityConstants.FROM_IN).getData(); - - if (clientDetails == null) { - return null; - } // 适配成oauth2内置类型 - return clientDetailsWrapper(clientDetails); + return RetOps.of(clientDetailsService.getClientDetailsById(clientId, SecurityConstants.FROM_IN)).getData() + .map(this::clientDetailsWrapper) + .orElseThrow(() -> new NoSuchClientException("No client with requested id: " + clientId)); } /**