From 85c19f664da54c45fa72c15a945c3775312a14ac Mon Sep 17 00:00:00 2001 From: lbw Date: Fri, 16 Sep 2022 17:19:39 +0800 Subject: [PATCH] =?UTF-8?q?:sparkles:=20Introducing=20new=20features.=20#4?= =?UTF-8?q?361=20=E5=A6=82=E4=BD=95=E5=B0=86=E7=94=A8=E6=88=B7=E5=90=8D?= =?UTF-8?q?=E6=88=96=E5=AF=86=E7=A0=81=E4=B8=8D=E6=AD=A3=E7=A1=AE=E7=9A=84?= =?UTF-8?q?=E4=B8=AD=E6=96=87=E6=8F=90=E7=A4=BA=E6=94=B9=E4=B8=BA=E8=8B=B1?= =?UTF-8?q?=E6=96=87=E6=8F=90=E7=A4=BA?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../pigx/auth/config/WebSecurityConfigurer.java | 9 ++++++++- .../PigxSecurityMessageSourceConfiguration.java | 2 +- .../{messages => errors}/messages_zh_CN.properties | 0 .../sentinel/handle/GlobalBizExceptionHandler.java | 2 +- 4 files changed, 10 insertions(+), 3 deletions(-) rename pigx-common/pigx-common-security/src/main/resources/{messages => errors}/messages_zh_CN.properties (100%) diff --git a/pigx-auth/src/main/java/com/pig4cloud/pigx/auth/config/WebSecurityConfigurer.java b/pigx-auth/src/main/java/com/pig4cloud/pigx/auth/config/WebSecurityConfigurer.java index 276b7313b..0483fae23 100644 --- a/pigx-auth/src/main/java/com/pig4cloud/pigx/auth/config/WebSecurityConfigurer.java +++ b/pigx-auth/src/main/java/com/pig4cloud/pigx/auth/config/WebSecurityConfigurer.java @@ -19,6 +19,7 @@ package com.pig4cloud.pigx.auth.config; +import com.pig4cloud.pigx.common.core.util.SpringContextHolder; import com.pig4cloud.pigx.common.security.component.PigxDaoAuthenticationProvider; import com.pig4cloud.pigx.common.security.grant.CustomAppAuthenticationProvider; import com.pig4cloud.pigx.common.security.handler.FormAuthenticationFailureHandler; @@ -27,6 +28,7 @@ import com.pig4cloud.pigx.common.security.handler.SsoLogoutSuccessHandler; import com.pig4cloud.pigx.common.security.handler.TenantSavedRequestAwareAuthenticationSuccessHandler; import lombok.RequiredArgsConstructor; import lombok.SneakyThrows; +import org.springframework.context.MessageSource; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; import org.springframework.context.annotation.Primary; @@ -71,11 +73,16 @@ public class WebSecurityConfigurer extends WebSecurityConfigurerAdapter { protected void configure(AuthenticationManagerBuilder auth) { PigxDaoAuthenticationProvider daoAuthenticationProvider = new PigxDaoAuthenticationProvider(); daoAuthenticationProvider.setPasswordEncoder(passwordEncoder()); + // 注入自定义异常国际化文件处理器 + MessageSource messageSource = SpringContextHolder.getBean("securityMessageSource"); + daoAuthenticationProvider.setMessageSource(messageSource); // 处理默认的密码模式认证 auth.authenticationProvider(daoAuthenticationProvider); // 自定义的认证模式 - auth.authenticationProvider(new CustomAppAuthenticationProvider()); + CustomAppAuthenticationProvider customAppAuthenticationProvider = new CustomAppAuthenticationProvider(); + customAppAuthenticationProvider.setMessageSource(messageSource); + auth.authenticationProvider(customAppAuthenticationProvider); } /** diff --git a/pigx-common/pigx-common-security/src/main/java/com/pig4cloud/pigx/common/security/component/PigxSecurityMessageSourceConfiguration.java b/pigx-common/pigx-common-security/src/main/java/com/pig4cloud/pigx/common/security/component/PigxSecurityMessageSourceConfiguration.java index 3a399703a..d2bf1df49 100644 --- a/pigx-common/pigx-common-security/src/main/java/com/pig4cloud/pigx/common/security/component/PigxSecurityMessageSourceConfiguration.java +++ b/pigx-common/pigx-common-security/src/main/java/com/pig4cloud/pigx/common/security/component/PigxSecurityMessageSourceConfiguration.java @@ -36,7 +36,7 @@ public class PigxSecurityMessageSourceConfiguration implements WebMvcConfigurer @Bean public MessageSource securityMessageSource() { ReloadableResourceBundleMessageSource messageSource = new ReloadableResourceBundleMessageSource(); - messageSource.addBasenames("classpath:org/springframework/security/messages"); + messageSource.addBasenames("classpath:errors/messages"); return messageSource; } diff --git a/pigx-common/pigx-common-security/src/main/resources/messages/messages_zh_CN.properties b/pigx-common/pigx-common-security/src/main/resources/errors/messages_zh_CN.properties similarity index 100% rename from pigx-common/pigx-common-security/src/main/resources/messages/messages_zh_CN.properties rename to pigx-common/pigx-common-security/src/main/resources/errors/messages_zh_CN.properties diff --git a/pigx-common/pigx-common-sentinel/src/main/java/com/pig4cloud/pigx/common/sentinel/handle/GlobalBizExceptionHandler.java b/pigx-common/pigx-common-sentinel/src/main/java/com/pig4cloud/pigx/common/sentinel/handle/GlobalBizExceptionHandler.java index f2112b13b..818856b03 100644 --- a/pigx-common/pigx-common-sentinel/src/main/java/com/pig4cloud/pigx/common/sentinel/handle/GlobalBizExceptionHandler.java +++ b/pigx-common/pigx-common-sentinel/src/main/java/com/pig4cloud/pigx/common/sentinel/handle/GlobalBizExceptionHandler.java @@ -101,7 +101,7 @@ public class GlobalBizExceptionHandler { public R handleBodyValidException(BindException exception) { List fieldErrors = exception.getBindingResult().getFieldErrors(); // 插入log 的逻辑 - return R.failed(fieldErrors.get(0).getDefaultMessage()); + return R.failed(String.format("%s %s", fieldErrors.get(0).getField(), fieldErrors.get(0).getDefaultMessage())); } /**