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())); } /**