From 0cd3f3fa6570454202942631124601ded929035b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=86=B7=E5=86=B7?= Date: Wed, 14 Nov 2018 21:02:26 +0800 Subject: [PATCH] =?UTF-8?q?:sparkles:=20=E6=B7=BB=E5=8A=A0=E6=96=B0?= =?UTF-8?q?=E7=89=B9=E6=80=A7=E3=80=82=E6=94=AF=E6=8C=81=E5=9B=BD=E9=99=85?= =?UTF-8?q?=E5=8C=96=E3=80=81=E9=87=8D=E6=9E=84pigxresourceserver=E6=B3=A8?= =?UTF-8?q?=E8=A7=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- pigx-auth/pom.xml | 8 +- .../pigx/auth/PigxAuthApplication.java | 2 +- pigx-common/pigx-common-cache/pom.xml | 4 +- pigx-common/pigx-common-core/pom.xml | 2 +- .../core/config/MessageSourceConfig.java | 41 ++++++++++ .../common/core/constant/CommonConstant.java | 5 ++ .../core/constant/SecurityConstants.java | 17 ++-- .../main/resources/META-INF/spring.factories | 2 +- .../resources/i18n/messages_zh_CN.properties | 0 pigx-common/pigx-common-gateway/pom.xml | 4 +- pigx-common/pigx-common-job/pom.xml | 2 +- pigx-common/pigx-common-log/pom.xml | 6 +- pigx-common/pigx-common-security/pom.xml | 6 +- .../EnablePigxFeignClients.java | 2 +- .../annotation/EnablePigxResourceServer.java | 8 ++ .../BaseResourceServerConfigurerAdapter.java | 10 ++- .../PigxResourceServerAutoConfiguration.java | 14 +++- .../security/messages_zh_CN.properties | 26 +++--- pigx-common/pigx-common-swagger/pom.xml | 2 +- pigx-common/pigx-common-transaction/pom.xml | 4 +- pigx-common/pom.xml | 2 +- pigx-config/pom.xml | 2 +- pigx-eureka/pom.xml | 2 +- pigx-gateway/pom.xml | 8 +- .../gateway/config/KaptchaConfiguration.java | 7 +- .../filter/ValidateCodeGatewayFilter.java | 6 +- .../gateway/handler/ImageCodeHandler.java | 6 +- pigx-upms/pigx-upms-api/pom.xml | 4 +- pigx-upms/pigx-upms-biz/pom.xml | 14 ++-- .../pigx/admin/PigxAdminApplication.java | 4 +- .../pigx/admin/controller/DeptController.java | 2 + .../pigx/admin/controller/DictController.java | 2 + .../pigx/admin/controller/LogController.java | 4 +- .../pigx/admin/controller/MenuController.java | 2 + .../admin/controller/MobileController.java | 48 +++++++++++ .../OauthClientDetailsController.java | 2 + .../pigx/admin/controller/RoleController.java | 2 + .../controller/SysRouteConfController.java | 2 + .../SysSocialDetailsController.java | 2 + .../admin/controller/TokenController.java | 2 + .../pigx/admin/controller/UserController.java | 4 +- .../pigx/admin/service/MobileService.java | 34 ++++++++ .../admin/service/impl/MobileServiceImpl.java | 82 +++++++++++++++++++ pigx-upms/pom.xml | 2 +- pigx-visual/pigx-activiti/pom.xml | 10 +-- pigx-visual/pigx-codegen/pom.xml | 8 +- .../pigx/codegen/PigxCodeGenApplication.java | 2 +- pigx-visual/pigx-daemon/pom.xml | 8 +- .../pigx/daemon/PigxDaemonApplication.java | 2 +- pigx-visual/pigx-monitor/pom.xml | 6 +- pigx-visual/pigx-tx-manager/pom.xml | 4 +- pigx-visual/pom.xml | 2 +- pom.xml | 2 +- 53 files changed, 353 insertions(+), 101 deletions(-) create mode 100644 pigx-common/pigx-common-core/src/main/java/com/pig4cloud/pigx/common/core/config/MessageSourceConfig.java create mode 100644 pigx-common/pigx-common-core/src/main/resources/i18n/messages_zh_CN.properties rename pigx-common/pigx-common-security/src/main/java/com/pig4cloud/pigx/common/security/{feign => annotation}/EnablePigxFeignClients.java (98%) create mode 100644 pigx-upms/pigx-upms-biz/src/main/java/com/pig4cloud/pigx/admin/controller/MobileController.java create mode 100644 pigx-upms/pigx-upms-biz/src/main/java/com/pig4cloud/pigx/admin/service/MobileService.java create mode 100644 pigx-upms/pigx-upms-biz/src/main/java/com/pig4cloud/pigx/admin/service/impl/MobileServiceImpl.java diff --git a/pigx-auth/pom.xml b/pigx-auth/pom.xml index a95d5beb9..2d7047576 100644 --- a/pigx-auth/pom.xml +++ b/pigx-auth/pom.xml @@ -24,7 +24,7 @@ com.pig4cloud pigx - 1.7.1 + 1.8.0 pigx-auth @@ -42,13 +42,13 @@ com.pig4cloud pigx-upms-api - 1.7.1 + 1.8.0 com.pig4cloud pigx-common-security - 1.7.1 + 1.8.0 @@ -59,7 +59,7 @@ com.pig4cloud pigx-common-cache - 1.7.0 + 1.8.0 diff --git a/pigx-auth/src/main/java/com/pig4cloud/pigx/auth/PigxAuthApplication.java b/pigx-auth/src/main/java/com/pig4cloud/pigx/auth/PigxAuthApplication.java index d90714f4d..bd492f999 100644 --- a/pigx-auth/src/main/java/com/pig4cloud/pigx/auth/PigxAuthApplication.java +++ b/pigx-auth/src/main/java/com/pig4cloud/pigx/auth/PigxAuthApplication.java @@ -20,7 +20,7 @@ package com.pig4cloud.pigx.auth; -import com.pig4cloud.pigx.common.security.feign.EnablePigxFeignClients; +import com.pig4cloud.pigx.common.security.annotation.EnablePigxFeignClients; import org.springframework.boot.SpringApplication; import org.springframework.cloud.client.SpringCloudApplication; diff --git a/pigx-common/pigx-common-cache/pom.xml b/pigx-common/pigx-common-cache/pom.xml index d32dc20aa..f3293f1ee 100644 --- a/pigx-common/pigx-common-cache/pom.xml +++ b/pigx-common/pigx-common-cache/pom.xml @@ -24,7 +24,7 @@ com.pig4cloud pigx-common - 1.7.0 + 1.8.0 pigx-common-cache @@ -38,7 +38,7 @@ com.pig4cloud pigx-common-core - 1.7.0 + 1.8.0 diff --git a/pigx-common/pigx-common-core/pom.xml b/pigx-common/pigx-common-core/pom.xml index 8582bc3e0..aaa1a8b18 100644 --- a/pigx-common/pigx-common-core/pom.xml +++ b/pigx-common/pigx-common-core/pom.xml @@ -24,7 +24,7 @@ com.pig4cloud pigx-common - 1.7.1 + 1.8.0 pigx-common-core diff --git a/pigx-common/pigx-common-core/src/main/java/com/pig4cloud/pigx/common/core/config/MessageSourceConfig.java b/pigx-common/pigx-common-core/src/main/java/com/pig4cloud/pigx/common/core/config/MessageSourceConfig.java new file mode 100644 index 000000000..a86f8f6c2 --- /dev/null +++ b/pigx-common/pigx-common-core/src/main/java/com/pig4cloud/pigx/common/core/config/MessageSourceConfig.java @@ -0,0 +1,41 @@ +/* + * Copyright (c) 2018-2025, lengleng All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * + * Redistributions of source code must retain the above copyright notice, + * this list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * Neither the name of the pig4cloud.com developer nor the names of its + * contributors may be used to endorse or promote products derived from + * this software without specific prior written permission. + * Author: lengleng (wangiegie@gmail.com) + */ + +package com.pig4cloud.pigx.common.core.config; + +import org.springframework.context.MessageSource; +import org.springframework.context.annotation.Bean; +import org.springframework.context.annotation.Configuration; +import org.springframework.context.support.ReloadableResourceBundleMessageSource; + +/** + * @author lengleng + * @date 2018/11/14 + *

+ * 国际化配置 + */ +@Configuration +public class MessageSourceConfig { + + @Bean + public MessageSource messageSource() { + ReloadableResourceBundleMessageSource messageSource + = new ReloadableResourceBundleMessageSource(); + messageSource.setBasename("classpath:i18n/messages"); + return messageSource; + } +} diff --git a/pigx-common/pigx-common-core/src/main/java/com/pig4cloud/pigx/common/core/constant/CommonConstant.java b/pigx-common/pigx-common-core/src/main/java/com/pig4cloud/pigx/common/core/constant/CommonConstant.java index 05dad4f92..c5efffc15 100644 --- a/pigx-common/pigx-common-core/src/main/java/com/pig4cloud/pigx/common/core/constant/CommonConstant.java +++ b/pigx-common/pigx-common-core/src/main/java/com/pig4cloud/pigx/common/core/constant/CommonConstant.java @@ -76,4 +76,9 @@ public interface CommonConstant { * spring boot admin 事件key */ String EVENT_KEY = "event_key"; + + /** + * 验证码前缀 + */ + String DEFAULT_CODE_KEY = "DEFAULT_CODE_KEY"; } diff --git a/pigx-common/pigx-common-core/src/main/java/com/pig4cloud/pigx/common/core/constant/SecurityConstants.java b/pigx-common/pigx-common-core/src/main/java/com/pig4cloud/pigx/common/core/constant/SecurityConstants.java index 8d2fcd944..548b3fe92 100644 --- a/pigx-common/pigx-common-core/src/main/java/com/pig4cloud/pigx/common/core/constant/SecurityConstants.java +++ b/pigx-common/pigx-common-core/src/main/java/com/pig4cloud/pigx/common/core/constant/SecurityConstants.java @@ -24,6 +24,14 @@ package com.pig4cloud.pigx.common.core.constant; * @date 2017-12-18 */ public interface SecurityConstants { + /** + * 验证码有效期 + */ + int CODE_TIME = 60; + /** + * 验证码长度 + */ + int CODE_SIZE = 4; /** * 角色前缀 */ @@ -57,15 +65,6 @@ public interface SecurityConstants { */ String MOBILE_TOKEN_URL = "/mobile/token"; - /** - * 默认登录URL - */ - String OAUTH_TOKEN_URL = "/oauth/token"; - - /** - * grant_type - */ - String REFRESH_TOKEN = "refresh_token"; /** * oauth 客户端信息 diff --git a/pigx-common/pigx-common-core/src/main/resources/META-INF/spring.factories b/pigx-common/pigx-common-core/src/main/resources/META-INF/spring.factories index 5299ddf64..8bdf5ad3b 100644 --- a/pigx-common/pigx-common-core/src/main/resources/META-INF/spring.factories +++ b/pigx-common/pigx-common-core/src/main/resources/META-INF/spring.factories @@ -1,5 +1,5 @@ org.springframework.boot.autoconfigure.EnableAutoConfiguration=\ com.pig4cloud.pigx.common.core.config.JacksonConfig,\ + com.pig4cloud.pigx.common.core.config.MessageSourceConfig,\ com.pig4cloud.pigx.common.core.config.RestTemplateConfig,\ - com.pig4cloud.pigx.common.core.exception.GlobalExceptionHandler,\ com.pig4cloud.pigx.common.core.util.SpringContextHolder diff --git a/pigx-common/pigx-common-core/src/main/resources/i18n/messages_zh_CN.properties b/pigx-common/pigx-common-core/src/main/resources/i18n/messages_zh_CN.properties new file mode 100644 index 000000000..e69de29bb diff --git a/pigx-common/pigx-common-gateway/pom.xml b/pigx-common/pigx-common-gateway/pom.xml index 3969c5665..6e337be0f 100644 --- a/pigx-common/pigx-common-gateway/pom.xml +++ b/pigx-common/pigx-common-gateway/pom.xml @@ -24,7 +24,7 @@ com.pig4cloud pigx-common - 1.7.0 + 1.8.0 pigx-common-gateway @@ -36,7 +36,7 @@ com.pig4cloud pigx-common-core - 1.7.0 + 1.8.0 org.springframework.cloud diff --git a/pigx-common/pigx-common-job/pom.xml b/pigx-common/pigx-common-job/pom.xml index 45a81d34f..cc75617cc 100644 --- a/pigx-common/pigx-common-job/pom.xml +++ b/pigx-common/pigx-common-job/pom.xml @@ -24,7 +24,7 @@ com.pig4cloud pigx-common - 1.7.1 + 1.8.0 pigx-common-job diff --git a/pigx-common/pigx-common-log/pom.xml b/pigx-common/pigx-common-log/pom.xml index 184f47771..08776a26c 100644 --- a/pigx-common/pigx-common-log/pom.xml +++ b/pigx-common/pigx-common-log/pom.xml @@ -24,7 +24,7 @@ com.pig4cloud pigx-common - 1.7.1 + 1.8.0 pigx-common-log @@ -38,13 +38,13 @@ com.pig4cloud pigx-common-core - 1.7.1 + 1.8.0 com.pig4cloud pigx-upms-api - 1.7.1 + 1.8.0 diff --git a/pigx-common/pigx-common-security/pom.xml b/pigx-common/pigx-common-security/pom.xml index a5e44b054..adc26e55f 100644 --- a/pigx-common/pigx-common-security/pom.xml +++ b/pigx-common/pigx-common-security/pom.xml @@ -24,7 +24,7 @@ com.pig4cloud pigx-common - 1.7.1 + 1.8.0 pigx-common-security @@ -38,7 +38,7 @@ com.pig4cloud pigx-common-core - 1.7.1 + 1.8.0 @@ -49,7 +49,7 @@ com.pig4cloud pigx-upms-api - 1.7.1 + 1.8.0 diff --git a/pigx-common/pigx-common-security/src/main/java/com/pig4cloud/pigx/common/security/feign/EnablePigxFeignClients.java b/pigx-common/pigx-common-security/src/main/java/com/pig4cloud/pigx/common/security/annotation/EnablePigxFeignClients.java similarity index 98% rename from pigx-common/pigx-common-security/src/main/java/com/pig4cloud/pigx/common/security/feign/EnablePigxFeignClients.java rename to pigx-common/pigx-common-security/src/main/java/com/pig4cloud/pigx/common/security/annotation/EnablePigxFeignClients.java index 24e1901ec..f6fc388a3 100644 --- a/pigx-common/pigx-common-security/src/main/java/com/pig4cloud/pigx/common/security/feign/EnablePigxFeignClients.java +++ b/pigx-common/pigx-common-security/src/main/java/com/pig4cloud/pigx/common/security/annotation/EnablePigxFeignClients.java @@ -15,7 +15,7 @@ * Author: lengleng (wangiegie@gmail.com) */ -package com.pig4cloud.pigx.common.security.feign; +package com.pig4cloud.pigx.common.security.annotation; import org.springframework.cloud.openfeign.EnableFeignClients; diff --git a/pigx-common/pigx-common-security/src/main/java/com/pig4cloud/pigx/common/security/annotation/EnablePigxResourceServer.java b/pigx-common/pigx-common-security/src/main/java/com/pig4cloud/pigx/common/security/annotation/EnablePigxResourceServer.java index 57bad1f2f..6e0779756 100644 --- a/pigx-common/pigx-common-security/src/main/java/com/pig4cloud/pigx/common/security/annotation/EnablePigxResourceServer.java +++ b/pigx-common/pigx-common-security/src/main/java/com/pig4cloud/pigx/common/security/annotation/EnablePigxResourceServer.java @@ -38,4 +38,12 @@ import java.lang.annotation.*; @EnableGlobalMethodSecurity(prePostEnabled = true) @Import(PigxResourceServerAutoConfiguration.class) public @interface EnablePigxResourceServer { + + /** + * false:上下文获取用户名 + * true: 上下文获取全部用户信息 + * + * @return + */ + boolean details() default false; } diff --git a/pigx-common/pigx-common-security/src/main/java/com/pig4cloud/pigx/common/security/component/BaseResourceServerConfigurerAdapter.java b/pigx-common/pigx-common-security/src/main/java/com/pig4cloud/pigx/common/security/component/BaseResourceServerConfigurerAdapter.java index 096004bc3..c36fbeb98 100644 --- a/pigx-common/pigx-common-security/src/main/java/com/pig4cloud/pigx/common/security/component/BaseResourceServerConfigurerAdapter.java +++ b/pigx-common/pigx-common-security/src/main/java/com/pig4cloud/pigx/common/security/component/BaseResourceServerConfigurerAdapter.java @@ -17,6 +17,7 @@ package com.pig4cloud.pigx.common.security.component; +import lombok.Setter; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.security.config.annotation.web.builders.HttpSecurity; @@ -48,7 +49,8 @@ public class BaseResourceServerConfigurerAdapter extends ResourceServerConfigure private PermitAllUrlProperties permitAllUrlProperties; @Autowired private RestTemplate lbRestTemplate; - + @Setter + private boolean details; /** * 默认的配置,对外暴露 @@ -81,7 +83,11 @@ public class BaseResourceServerConfigurerAdapter extends ResourceServerConfigure */ @Override public void configure(ResourceServerSecurityConfigurer resources) { - canGetUser(resources); + if (details) { + canGetUser(resources); + } else { + notGetUser(resources); + } } diff --git a/pigx-common/pigx-common-security/src/main/java/com/pig4cloud/pigx/common/security/component/PigxResourceServerAutoConfiguration.java b/pigx-common/pigx-common-security/src/main/java/com/pig4cloud/pigx/common/security/component/PigxResourceServerAutoConfiguration.java index f4e64f379..ef700da64 100644 --- a/pigx-common/pigx-common-security/src/main/java/com/pig4cloud/pigx/common/security/component/PigxResourceServerAutoConfiguration.java +++ b/pigx-common/pigx-common-security/src/main/java/com/pig4cloud/pigx/common/security/component/PigxResourceServerAutoConfiguration.java @@ -17,6 +17,8 @@ package com.pig4cloud.pigx.common.security.component; +import cn.hutool.core.util.ClassUtil; +import com.pig4cloud.pigx.common.security.annotation.EnablePigxResourceServer; import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean; import org.springframework.cloud.client.loadbalancer.LoadBalanced; import org.springframework.context.annotation.Bean; @@ -25,6 +27,8 @@ import org.springframework.context.annotation.Primary; import org.springframework.security.oauth2.config.annotation.web.configuration.ResourceServerConfigurerAdapter; import org.springframework.web.client.RestTemplate; +import java.util.Set; + /** * @author lengleng * @date 2018/11/10 @@ -41,6 +45,14 @@ public class PigxResourceServerAutoConfiguration { @Bean @ConditionalOnMissingBean(ResourceServerConfigurerAdapter.class) public ResourceServerConfigurerAdapter resourceServerConfigurerAdapter() { - return new BaseResourceServerConfigurerAdapter(); + Set> classes = ClassUtil.scanPackageByAnnotation("com.pig4cloud.pigx", EnablePigxResourceServer.class); + boolean details = false; + for (Class clazz : classes) { + details = clazz.getAnnotation(EnablePigxResourceServer.class).details(); + } + BaseResourceServerConfigurerAdapter baseResourceServerConfigurerAdapter + = new BaseResourceServerConfigurerAdapter(); + baseResourceServerConfigurerAdapter.setDetails(details); + return baseResourceServerConfigurerAdapter; } } diff --git a/pigx-common/pigx-common-security/src/main/resources/org/springframework/security/messages_zh_CN.properties b/pigx-common/pigx-common-security/src/main/resources/org/springframework/security/messages_zh_CN.properties index 9666f3e38..af3326c35 100644 --- a/pigx-common/pigx-common-security/src/main/resources/org/springframework/security/messages_zh_CN.properties +++ b/pigx-common/pigx-common-security/src/main/resources/org/springframework/security/messages_zh_CN.properties @@ -1,22 +1,20 @@ # +# Copyright (c) 2018-2025, lengleng All rights reserved. # -# Copyright (c) 2018-2025, lengleng All rights reserved. -# -# Redistribution and use in source and binary forms, with or without -# modification, are permitted provided that the following conditions are met: +# Redistribution and use in source and binary forms, with or without +# modification, are permitted provided that the following conditions are met: # # Redistributions of source code must retain the above copyright notice, -# this list of conditions and the following disclaimer. -# Redistributions in binary form must reproduce the above copyright -# notice, this list of conditions and the following disclaimer in the -# documentation and/or other materials provided with the distribution. -# Neither the name of the pig4cloud.com developer nor the names of its -# contributors may be used to endorse or promote products derived from -# this software without specific prior written permission. -# Author: lengleng (wangiegie@gmail.com) +# this list of conditions and the following disclaimer. +# Redistributions in binary form must reproduce the above copyright +# notice, this list of conditions and the following disclaimer in the +# documentation and/or other materials provided with the distribution. +# Neither the name of the pig4cloud.com developer nor the names of its +# contributors may be used to endorse or promote products derived from +# this software without specific prior written permission. +# Author: lengleng (wangiegie@gmail.com) # -# -AbstractAccessDecisionManager.accessDenied=\u4E0D\u5141\u8BB8\u8BBF\u95EE +AbstractAccessDecisionManager.accessDenied=\u6743\u9650\u4E0D\u8DB3,\u4E0D\u5141\u8BB8\u8BBF\u95EE AbstractLdapAuthenticationProvider.emptyPassword=\u5BC6\u7801\u4E0D\u80FD\u4E3A\u7A7A AbstractSecurityInterceptor.authenticationNotFound=\u672A\u5728SecurityContext\u4E2D\u67E5\u627E\u5230\u8BA4\u8BC1\u5BF9\u8C61 AbstractUserDetailsAuthenticationProvider.badCredentials=\u7528\u6237\u540D\u4E0D\u5B58\u5728\u6216\u8005\u5BC6\u7801\u9519\u8BEF diff --git a/pigx-common/pigx-common-swagger/pom.xml b/pigx-common/pigx-common-swagger/pom.xml index b920066c3..b9b7b50cd 100644 --- a/pigx-common/pigx-common-swagger/pom.xml +++ b/pigx-common/pigx-common-swagger/pom.xml @@ -24,7 +24,7 @@ com.pig4cloud pigx-common - 1.7.1 + 1.8.0 pigx-common-swagger diff --git a/pigx-common/pigx-common-transaction/pom.xml b/pigx-common/pigx-common-transaction/pom.xml index eb6102db2..e34fcb1ef 100644 --- a/pigx-common/pigx-common-transaction/pom.xml +++ b/pigx-common/pigx-common-transaction/pom.xml @@ -5,7 +5,7 @@ com.pig4cloud pigx-common - 1.7.1 + 1.8.0 pigx-common-transaction @@ -17,7 +17,7 @@ com.pig4cloud pigx-common-core - 1.7.1 + 1.8.0 diff --git a/pigx-common/pom.xml b/pigx-common/pom.xml index f685e5a50..e8d3258d7 100644 --- a/pigx-common/pom.xml +++ b/pigx-common/pom.xml @@ -24,7 +24,7 @@ com.pig4cloud pigx - 1.7.1 + 1.8.0 pigx-common diff --git a/pigx-config/pom.xml b/pigx-config/pom.xml index 7e6ae6e70..8d72bb44e 100644 --- a/pigx-config/pom.xml +++ b/pigx-config/pom.xml @@ -24,7 +24,7 @@ com.pig4cloud pigx - 1.7.1 + 1.8.0 pigx-config diff --git a/pigx-eureka/pom.xml b/pigx-eureka/pom.xml index 87c693c65..9d4244ee5 100644 --- a/pigx-eureka/pom.xml +++ b/pigx-eureka/pom.xml @@ -24,7 +24,7 @@ com.pig4cloud pigx - 1.7.1 + 1.8.0 pigx-eureka diff --git a/pigx-gateway/pom.xml b/pigx-gateway/pom.xml index da9bb20b3..6960f6c51 100644 --- a/pigx-gateway/pom.xml +++ b/pigx-gateway/pom.xml @@ -24,7 +24,7 @@ com.pig4cloud pigx - 1.7.1 + 1.8.0 pigx-gateway @@ -46,7 +46,7 @@ com.pig4cloud pigx-common-gateway - 1.7.0 + 1.8.0 @@ -63,13 +63,13 @@ com.pig4cloud pigx-common-core - 1.7.1 + 1.8.0 com.pig4cloud pigx-common-cache - 1.7.0 + 1.8.0 diff --git a/pigx-gateway/src/main/java/com/pig4cloud/pigx/gateway/config/KaptchaConfiguration.java b/pigx-gateway/src/main/java/com/pig4cloud/pigx/gateway/config/KaptchaConfiguration.java index 2d7db075a..f85c96351 100644 --- a/pigx-gateway/src/main/java/com/pig4cloud/pigx/gateway/config/KaptchaConfiguration.java +++ b/pigx-gateway/src/main/java/com/pig4cloud/pigx/gateway/config/KaptchaConfiguration.java @@ -19,6 +19,7 @@ package com.pig4cloud.pigx.gateway.config; import com.google.code.kaptcha.impl.DefaultKaptcha; import com.google.code.kaptcha.util.Config; +import com.pig4cloud.pigx.common.core.constant.SecurityConstants; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; @@ -49,10 +50,6 @@ public class KaptchaConfiguration { */ private static final String DEFAULT_IMAGE_HEIGHT = "40"; - /** - * 默认生成图形验证码长度 - */ - private static final String DEFAULT_IMAGE_LENGTH = "4"; /** * 边框颜色,合法值: r,g,b (and optional alpha) 或者 white,black,blue. */ @@ -80,7 +77,7 @@ public class KaptchaConfiguration { properties.put(KAPTCHA_IMAGE_WIDTH, DEFAULT_IMAGE_WIDTH); properties.put(KAPTCHA_IMAGE_HEIGHT, DEFAULT_IMAGE_HEIGHT); properties.put(KAPTCHA_IMAGE_FONT_SIZE, DEFAULT_IMAGE_FONT_SIZE); - properties.put(KAPTCHA_TEXTPRODUCER_CHAR_LENGTH, DEFAULT_IMAGE_LENGTH); + properties.put(KAPTCHA_TEXTPRODUCER_CHAR_LENGTH, SecurityConstants.CODE_SIZE); Config config = new Config(properties); DefaultKaptcha defaultKaptcha = new DefaultKaptcha(); defaultKaptcha.setConfig(config); diff --git a/pigx-gateway/src/main/java/com/pig4cloud/pigx/gateway/filter/ValidateCodeGatewayFilter.java b/pigx-gateway/src/main/java/com/pig4cloud/pigx/gateway/filter/ValidateCodeGatewayFilter.java index 7d7b5c61c..7f8952183 100644 --- a/pigx-gateway/src/main/java/com/pig4cloud/pigx/gateway/filter/ValidateCodeGatewayFilter.java +++ b/pigx-gateway/src/main/java/com/pig4cloud/pigx/gateway/filter/ValidateCodeGatewayFilter.java @@ -20,6 +20,7 @@ package com.pig4cloud.pigx.gateway.filter; import cn.hutool.core.codec.Base64; import cn.hutool.core.util.CharsetUtil; import cn.hutool.core.util.StrUtil; +import com.pig4cloud.pigx.common.core.constant.CommonConstant; import com.pig4cloud.pigx.common.core.exception.CheckedException; import com.pig4cloud.pigx.common.core.exception.ValidateCodeException; import com.pig4cloud.pigx.gateway.config.FilterIgnorePropertiesConfig; @@ -45,8 +46,7 @@ import java.io.IOException; @Component @AllArgsConstructor public class ValidateCodeGatewayFilter extends AbstractGatewayFilterFactory { - public static final String DEFAULT_CODE_KEY = "DEFAULT_CODE_KEY"; - public static final String OAUTH_TOKEN_URL = "/oauth/token"; + static final String OAUTH_TOKEN_URL = "/oauth/token"; private static final String BASIC_ = "Basic "; private final RedisTemplate redisTemplate; private final FilterIgnorePropertiesConfig filterIgnorePropertiesConfig; @@ -157,7 +157,7 @@ public class ValidateCodeGatewayFilter extends AbstractGatewayFilterFactory { throw new ValidateCodeException(); } - String key = DEFAULT_CODE_KEY + randomStr; + String key = CommonConstant.DEFAULT_CODE_KEY + randomStr; if (!redisTemplate.hasKey(key)) { throw new ValidateCodeException(); } diff --git a/pigx-gateway/src/main/java/com/pig4cloud/pigx/gateway/handler/ImageCodeHandler.java b/pigx-gateway/src/main/java/com/pig4cloud/pigx/gateway/handler/ImageCodeHandler.java index a144ee7ac..632a1b92c 100644 --- a/pigx-gateway/src/main/java/com/pig4cloud/pigx/gateway/handler/ImageCodeHandler.java +++ b/pigx-gateway/src/main/java/com/pig4cloud/pigx/gateway/handler/ImageCodeHandler.java @@ -18,7 +18,8 @@ package com.pig4cloud.pigx.gateway.handler; import com.google.code.kaptcha.Producer; -import com.pig4cloud.pigx.gateway.filter.ValidateCodeGatewayFilter; +import com.pig4cloud.pigx.common.core.constant.CommonConstant; +import com.pig4cloud.pigx.common.core.constant.SecurityConstants; import lombok.AllArgsConstructor; import lombok.extern.slf4j.Slf4j; import org.springframework.core.io.ByteArrayResource; @@ -58,7 +59,8 @@ public class ImageCodeHandler implements HandlerFunction { //保存验证码信息 String randomStr = serverRequest.queryParam("randomStr").get(); - redisTemplate.opsForValue().set(ValidateCodeGatewayFilter.DEFAULT_CODE_KEY + randomStr, text, 60, TimeUnit.SECONDS); + redisTemplate.opsForValue().set(CommonConstant.DEFAULT_CODE_KEY + randomStr, text + , SecurityConstants.CODE_TIME, TimeUnit.SECONDS); // 转换流信息写出 FastByteArrayOutputStream os = new FastByteArrayOutputStream(); diff --git a/pigx-upms/pigx-upms-api/pom.xml b/pigx-upms/pigx-upms-api/pom.xml index fe61a2462..b4c11d413 100644 --- a/pigx-upms/pigx-upms-api/pom.xml +++ b/pigx-upms/pigx-upms-api/pom.xml @@ -24,7 +24,7 @@ com.pig4cloud pigx-upms - 1.7.1 + 1.8.0 pigx-upms-api @@ -38,7 +38,7 @@ com.pig4cloud pigx-common-core - 1.7.1 + 1.8.0 diff --git a/pigx-upms/pigx-upms-biz/pom.xml b/pigx-upms/pigx-upms-biz/pom.xml index 211512caf..d97ac0d4f 100644 --- a/pigx-upms/pigx-upms-biz/pom.xml +++ b/pigx-upms/pigx-upms-biz/pom.xml @@ -24,7 +24,7 @@ com.pig4cloud pigx-upms - 1.7.1 + 1.8.0 pigx-upms-biz @@ -37,25 +37,25 @@ com.pig4cloud pigx-upms-api - 1.7.1 + 1.8.0 com.pig4cloud pigx-common-log - 1.7.1 + 1.8.0 com.pig4cloud pigx-common-cache - 1.7.0 + 1.8.0 com.pig4cloud pigx-common-swagger - 1.7.1 + 1.8.0 @@ -71,13 +71,13 @@ com.pig4cloud pigx-common-security - 1.7.1 + 1.8.0 com.pig4cloud pigx-common-gateway - 1.7.0 + 1.8.0 diff --git a/pigx-upms/pigx-upms-biz/src/main/java/com/pig4cloud/pigx/admin/PigxAdminApplication.java b/pigx-upms/pigx-upms-biz/src/main/java/com/pig4cloud/pigx/admin/PigxAdminApplication.java index 1dfc30fb0..c4d626699 100644 --- a/pigx-upms/pigx-upms-biz/src/main/java/com/pig4cloud/pigx/admin/PigxAdminApplication.java +++ b/pigx-upms/pigx-upms-biz/src/main/java/com/pig4cloud/pigx/admin/PigxAdminApplication.java @@ -20,8 +20,8 @@ package com.pig4cloud.pigx.admin; +import com.pig4cloud.pigx.common.security.annotation.EnablePigxFeignClients; import com.pig4cloud.pigx.common.security.annotation.EnablePigxResourceServer; -import com.pig4cloud.pigx.common.security.feign.EnablePigxFeignClients; import com.pig4cloud.pigx.common.swagger.annotation.EnablePigxSwagger2; import org.springframework.boot.SpringApplication; import org.springframework.cloud.client.SpringCloudApplication; @@ -34,7 +34,7 @@ import org.springframework.cloud.client.SpringCloudApplication; @EnablePigxSwagger2 @SpringCloudApplication @EnablePigxFeignClients -@EnablePigxResourceServer +@EnablePigxResourceServer(details = true) public class PigxAdminApplication { public static void main(String[] args) { SpringApplication.run(PigxAdminApplication.class, args); diff --git a/pigx-upms/pigx-upms-biz/src/main/java/com/pig4cloud/pigx/admin/controller/DeptController.java b/pigx-upms/pigx-upms-biz/src/main/java/com/pig4cloud/pigx/admin/controller/DeptController.java index 4faacde85..59698459c 100644 --- a/pigx-upms/pigx-upms-biz/src/main/java/com/pig4cloud/pigx/admin/controller/DeptController.java +++ b/pigx-upms/pigx-upms-biz/src/main/java/com/pig4cloud/pigx/admin/controller/DeptController.java @@ -25,6 +25,7 @@ import com.pig4cloud.pigx.admin.api.entity.SysDept; import com.pig4cloud.pigx.admin.service.SysDeptService; import com.pig4cloud.pigx.common.core.constant.CommonConstant; import com.pig4cloud.pigx.common.core.util.R; +import io.swagger.annotations.Api; import lombok.AllArgsConstructor; import org.springframework.security.access.prepost.PreAuthorize; import org.springframework.web.bind.annotation.*; @@ -44,6 +45,7 @@ import java.util.List; @RestController @AllArgsConstructor @RequestMapping("/dept") +@Api(value = "dept", description = "部门管理模块") public class DeptController { private final SysDeptService sysDeptService; diff --git a/pigx-upms/pigx-upms-biz/src/main/java/com/pig4cloud/pigx/admin/controller/DictController.java b/pigx-upms/pigx-upms-biz/src/main/java/com/pig4cloud/pigx/admin/controller/DictController.java index 2bcac24f0..e45d053be 100644 --- a/pigx-upms/pigx-upms-biz/src/main/java/com/pig4cloud/pigx/admin/controller/DictController.java +++ b/pigx-upms/pigx-upms-biz/src/main/java/com/pig4cloud/pigx/admin/controller/DictController.java @@ -28,6 +28,7 @@ import com.pig4cloud.pigx.common.core.constant.CommonConstant; import com.pig4cloud.pigx.common.core.util.Query; import com.pig4cloud.pigx.common.core.util.R; import com.pig4cloud.pigx.common.log.annotation.SysLog; +import io.swagger.annotations.Api; import lombok.AllArgsConstructor; import org.springframework.cache.annotation.CacheEvict; import org.springframework.cache.annotation.Cacheable; @@ -49,6 +50,7 @@ import java.util.Map; @RestController @AllArgsConstructor @RequestMapping("/dict" ) +@Api(value = "dict",description = "字典管理模块") public class DictController { private final SysDictService sysDictService; diff --git a/pigx-upms/pigx-upms-biz/src/main/java/com/pig4cloud/pigx/admin/controller/LogController.java b/pigx-upms/pigx-upms-biz/src/main/java/com/pig4cloud/pigx/admin/controller/LogController.java index ed79c6f20..60c06eeca 100644 --- a/pigx-upms/pigx-upms-biz/src/main/java/com/pig4cloud/pigx/admin/controller/LogController.java +++ b/pigx-upms/pigx-upms-biz/src/main/java/com/pig4cloud/pigx/admin/controller/LogController.java @@ -27,6 +27,7 @@ import com.pig4cloud.pigx.admin.api.vo.PreLogVo; import com.pig4cloud.pigx.admin.service.SysLogService; import com.pig4cloud.pigx.common.core.util.Query; import com.pig4cloud.pigx.common.core.util.R; +import io.swagger.annotations.Api; import lombok.AllArgsConstructor; import org.springframework.security.access.prepost.PreAuthorize; import org.springframework.web.bind.annotation.*; @@ -44,8 +45,9 @@ import java.util.Map; * @since 2017-11-20 */ @RestController -@RequestMapping("/log") @AllArgsConstructor +@RequestMapping("/log") +@Api(value = "log",description = "日志管理模块") public class LogController { private final SysLogService sysLogService; diff --git a/pigx-upms/pigx-upms-biz/src/main/java/com/pig4cloud/pigx/admin/controller/MenuController.java b/pigx-upms/pigx-upms-biz/src/main/java/com/pig4cloud/pigx/admin/controller/MenuController.java index e40e9a4da..a672978c8 100644 --- a/pigx-upms/pigx-upms-biz/src/main/java/com/pig4cloud/pigx/admin/controller/MenuController.java +++ b/pigx-upms/pigx-upms-biz/src/main/java/com/pig4cloud/pigx/admin/controller/MenuController.java @@ -28,6 +28,7 @@ import com.pig4cloud.pigx.admin.service.SysMenuService; import com.pig4cloud.pigx.common.core.constant.CommonConstant; import com.pig4cloud.pigx.common.core.util.R; import com.pig4cloud.pigx.common.security.util.SecurityUtils; +import io.swagger.annotations.Api; import lombok.AllArgsConstructor; import org.springframework.security.access.prepost.PreAuthorize; import org.springframework.web.bind.annotation.*; @@ -46,6 +47,7 @@ import java.util.stream.Collectors; @RestController @AllArgsConstructor @RequestMapping("/menu") +@Api(value = "menu",description = "菜单管理模块") public class MenuController { private final SysMenuService sysMenuService; diff --git a/pigx-upms/pigx-upms-biz/src/main/java/com/pig4cloud/pigx/admin/controller/MobileController.java b/pigx-upms/pigx-upms-biz/src/main/java/com/pig4cloud/pigx/admin/controller/MobileController.java new file mode 100644 index 000000000..b78668a22 --- /dev/null +++ b/pigx-upms/pigx-upms-biz/src/main/java/com/pig4cloud/pigx/admin/controller/MobileController.java @@ -0,0 +1,48 @@ +/* + * Copyright (c) 2018-2025, lengleng All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * + * Redistributions of source code must retain the above copyright notice, + * this list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * Neither the name of the pig4cloud.com developer nor the names of its + * contributors may be used to endorse or promote products derived from + * this software without specific prior written permission. + * Author: lengleng (wangiegie@gmail.com) + */ + +package com.pig4cloud.pigx.admin.controller; + +import com.pig4cloud.pigx.admin.service.MobileService; +import com.pig4cloud.pigx.common.core.util.R; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiImplicitParam; +import io.swagger.annotations.ApiOperation; +import lombok.AllArgsConstructor; +import org.springframework.web.bind.annotation.*; + +/** + * @author lengleng + * @date 2018/11/14 + *

+ * 手机验证码 + */ +@RestController +@AllArgsConstructor +@RequestMapping("/mobile") +@Api(value = "mobile",description = "手机管理模块") +public class MobileController { + private final MobileService mobileService; + + @ResponseBody + @GetMapping("/{mobile}") + @ApiOperation(value = "发送手机验证码", httpMethod = "GET") + @ApiImplicitParam(name = "mobile", value = "手机号", paramType = "path", type = "string", required = true) + public R code(@PathVariable String mobile) { + return mobileService.sendSmsCode(mobile); + } +} diff --git a/pigx-upms/pigx-upms-biz/src/main/java/com/pig4cloud/pigx/admin/controller/OauthClientDetailsController.java b/pigx-upms/pigx-upms-biz/src/main/java/com/pig4cloud/pigx/admin/controller/OauthClientDetailsController.java index 9e7ebf019..98e7b9a1c 100644 --- a/pigx-upms/pigx-upms-biz/src/main/java/com/pig4cloud/pigx/admin/controller/OauthClientDetailsController.java +++ b/pigx-upms/pigx-upms-biz/src/main/java/com/pig4cloud/pigx/admin/controller/OauthClientDetailsController.java @@ -25,6 +25,7 @@ import com.pig4cloud.pigx.admin.api.entity.SysOauthClientDetails; import com.pig4cloud.pigx.admin.service.SysOauthClientDetailsService; import com.pig4cloud.pigx.common.core.util.Query; import com.pig4cloud.pigx.common.core.util.R; +import io.swagger.annotations.Api; import lombok.AllArgsConstructor; import org.springframework.security.access.prepost.PreAuthorize; import org.springframework.web.bind.annotation.*; @@ -43,6 +44,7 @@ import java.util.Map; @RestController @AllArgsConstructor @RequestMapping("/client") +@Api(value = "client",description = "客户端管理模块") public class OauthClientDetailsController { private final SysOauthClientDetailsService sysOauthClientDetailsService; diff --git a/pigx-upms/pigx-upms-biz/src/main/java/com/pig4cloud/pigx/admin/controller/RoleController.java b/pigx-upms/pigx-upms-biz/src/main/java/com/pig4cloud/pigx/admin/controller/RoleController.java index bab11dbfd..b3e30f51e 100644 --- a/pigx-upms/pigx-upms-biz/src/main/java/com/pig4cloud/pigx/admin/controller/RoleController.java +++ b/pigx-upms/pigx-upms-biz/src/main/java/com/pig4cloud/pigx/admin/controller/RoleController.java @@ -27,6 +27,7 @@ import com.pig4cloud.pigx.admin.service.SysRoleService; import com.pig4cloud.pigx.common.core.constant.CommonConstant; import com.pig4cloud.pigx.common.core.util.Query; import com.pig4cloud.pigx.common.core.util.R; +import io.swagger.annotations.Api; import lombok.AllArgsConstructor; import org.springframework.security.access.prepost.PreAuthorize; import org.springframework.web.bind.annotation.*; @@ -41,6 +42,7 @@ import java.util.Map; @RestController @AllArgsConstructor @RequestMapping("/role") +@Api(value = "role",description = "角色管理模块") public class RoleController { private final SysRoleService sysRoleService; private final SysRoleMenuService sysRoleMenuService; diff --git a/pigx-upms/pigx-upms-biz/src/main/java/com/pig4cloud/pigx/admin/controller/SysRouteConfController.java b/pigx-upms/pigx-upms-biz/src/main/java/com/pig4cloud/pigx/admin/controller/SysRouteConfController.java index b36468e86..0e90292c2 100755 --- a/pigx-upms/pigx-upms-biz/src/main/java/com/pig4cloud/pigx/admin/controller/SysRouteConfController.java +++ b/pigx-upms/pigx-upms-biz/src/main/java/com/pig4cloud/pigx/admin/controller/SysRouteConfController.java @@ -20,6 +20,7 @@ package com.pig4cloud.pigx.admin.controller; import cn.hutool.json.JSONArray; import com.pig4cloud.pigx.admin.service.SysRouteConfService; import com.pig4cloud.pigx.common.core.util.R; +import io.swagger.annotations.Api; import lombok.AllArgsConstructor; import org.springframework.web.bind.annotation.*; @@ -33,6 +34,7 @@ import org.springframework.web.bind.annotation.*; @RestController @AllArgsConstructor @RequestMapping("/route") +@Api(value = "route",description = "动态路由管理模块") public class SysRouteConfController { private final SysRouteConfService sysRouteConfService; diff --git a/pigx-upms/pigx-upms-biz/src/main/java/com/pig4cloud/pigx/admin/controller/SysSocialDetailsController.java b/pigx-upms/pigx-upms-biz/src/main/java/com/pig4cloud/pigx/admin/controller/SysSocialDetailsController.java index 7244a0c7d..1f6671b38 100755 --- a/pigx-upms/pigx-upms-biz/src/main/java/com/pig4cloud/pigx/admin/controller/SysSocialDetailsController.java +++ b/pigx-upms/pigx-upms-biz/src/main/java/com/pig4cloud/pigx/admin/controller/SysSocialDetailsController.java @@ -25,6 +25,7 @@ import com.pig4cloud.pigx.admin.service.SysSocialDetailsService; import com.pig4cloud.pigx.admin.service.SysUserService; import com.pig4cloud.pigx.common.core.util.Query; import com.pig4cloud.pigx.common.core.util.R; +import io.swagger.annotations.Api; import lombok.AllArgsConstructor; import org.springframework.web.bind.annotation.*; @@ -41,6 +42,7 @@ import java.util.Map; @RestController @RequestMapping("/social") @AllArgsConstructor +@Api(value = "social",description = "三方账号管理模块") public class SysSocialDetailsController { private final SysUserService sysUserService; private final SysSocialDetailsService sysSocialDetailsService; diff --git a/pigx-upms/pigx-upms-biz/src/main/java/com/pig4cloud/pigx/admin/controller/TokenController.java b/pigx-upms/pigx-upms-biz/src/main/java/com/pig4cloud/pigx/admin/controller/TokenController.java index 7ddc150e2..5c82afd09 100644 --- a/pigx-upms/pigx-upms-biz/src/main/java/com/pig4cloud/pigx/admin/controller/TokenController.java +++ b/pigx-upms/pigx-upms-biz/src/main/java/com/pig4cloud/pigx/admin/controller/TokenController.java @@ -21,6 +21,7 @@ import com.baomidou.mybatisplus.plugins.Page; import com.pig4cloud.pigx.admin.api.feign.RemoteTokenService; import com.pig4cloud.pigx.common.core.constant.SecurityConstants; import com.pig4cloud.pigx.common.core.util.R; +import io.swagger.annotations.Api; import lombok.AllArgsConstructor; import org.springframework.security.access.prepost.PreAuthorize; import org.springframework.web.bind.annotation.*; @@ -35,6 +36,7 @@ import java.util.Map; @RestController @AllArgsConstructor @RequestMapping("/token") +@Api(value = "token",description = "令牌管理模块") public class TokenController { private final RemoteTokenService remoteTokenService; diff --git a/pigx-upms/pigx-upms-biz/src/main/java/com/pig4cloud/pigx/admin/controller/UserController.java b/pigx-upms/pigx-upms-biz/src/main/java/com/pig4cloud/pigx/admin/controller/UserController.java index f49c5fbc0..4e45e4f0b 100644 --- a/pigx-upms/pigx-upms-biz/src/main/java/com/pig4cloud/pigx/admin/controller/UserController.java +++ b/pigx-upms/pigx-upms-biz/src/main/java/com/pig4cloud/pigx/admin/controller/UserController.java @@ -35,6 +35,7 @@ import com.pig4cloud.pigx.common.core.util.Query; import com.pig4cloud.pigx.common.core.util.R; import com.pig4cloud.pigx.common.log.annotation.SysLog; import com.pig4cloud.pigx.common.security.util.SecurityUtils; +import io.swagger.annotations.Api; import io.swagger.annotations.ApiImplicitParam; import io.swagger.annotations.ApiOperation; import lombok.AllArgsConstructor; @@ -55,6 +56,7 @@ import java.util.Map; @RestController @AllArgsConstructor @RequestMapping("/user") +@Api(value = "user", description = "用户管理模块") public class UserController { private static final PasswordEncoder ENCODER = new BCryptPasswordEncoder(); private final SysUserService userService; @@ -116,7 +118,7 @@ public class UserController { @DeleteMapping("/{id}") @PreAuthorize("@pms.hasPermission('sys_user_del')") @ApiOperation(value = "删除用户", notes = "根据ID删除用户") - @ApiImplicitParam(name = "id", value = "用户ID", required = true, dataType = "int", paramType = "path", example = "1000") + @ApiImplicitParam(name = "id", value = "用户ID", required = true, dataType = "int", paramType = "path") public R userDel(@PathVariable Integer id) { SysUser sysUser = userService.selectById(id); return new R<>(userService.deleteUserById(sysUser)); diff --git a/pigx-upms/pigx-upms-biz/src/main/java/com/pig4cloud/pigx/admin/service/MobileService.java b/pigx-upms/pigx-upms-biz/src/main/java/com/pig4cloud/pigx/admin/service/MobileService.java new file mode 100644 index 000000000..2c6297e7e --- /dev/null +++ b/pigx-upms/pigx-upms-biz/src/main/java/com/pig4cloud/pigx/admin/service/MobileService.java @@ -0,0 +1,34 @@ +/* + * Copyright (c) 2018-2025, lengleng All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * + * Redistributions of source code must retain the above copyright notice, + * this list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * Neither the name of the pig4cloud.com developer nor the names of its + * contributors may be used to endorse or promote products derived from + * this software without specific prior written permission. + * Author: lengleng (wangiegie@gmail.com) + */ + +package com.pig4cloud.pigx.admin.service; + +import com.pig4cloud.pigx.common.core.util.R; + +/** + * @author lengleng + * @date 2018/11/14 + */ +public interface MobileService { + /** + * 发送手机验证码 + * + * @param mobile mobile + * @return code + */ + R sendSmsCode(String mobile); +} diff --git a/pigx-upms/pigx-upms-biz/src/main/java/com/pig4cloud/pigx/admin/service/impl/MobileServiceImpl.java b/pigx-upms/pigx-upms-biz/src/main/java/com/pig4cloud/pigx/admin/service/impl/MobileServiceImpl.java new file mode 100644 index 000000000..65e20a1ea --- /dev/null +++ b/pigx-upms/pigx-upms-biz/src/main/java/com/pig4cloud/pigx/admin/service/impl/MobileServiceImpl.java @@ -0,0 +1,82 @@ +/* + * Copyright (c) 2018-2025, lengleng All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * + * Redistributions of source code must retain the above copyright notice, + * this list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * Neither the name of the pig4cloud.com developer nor the names of its + * contributors may be used to endorse or promote products derived from + * this software without specific prior written permission. + * Author: lengleng (wangiegie@gmail.com) + */ + +package com.pig4cloud.pigx.admin.service.impl; + +import cn.hutool.core.collection.CollUtil; +import cn.hutool.core.util.RandomUtil; +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.pig4cloud.pigx.admin.api.entity.SysUser; +import com.pig4cloud.pigx.admin.mapper.SysUserMapper; +import com.pig4cloud.pigx.admin.service.MobileService; +import com.pig4cloud.pigx.common.core.constant.CommonConstant; +import com.pig4cloud.pigx.common.core.constant.SecurityConstants; +import com.pig4cloud.pigx.common.core.util.R; +import lombok.AllArgsConstructor; +import lombok.extern.slf4j.Slf4j; +import org.springframework.data.redis.core.RedisTemplate; +import org.springframework.stereotype.Service; + +import java.util.List; +import java.util.concurrent.TimeUnit; + +/** + * @author lengleng + * @date 2018/11/14 + *

+ * 手机登录相关业务实现 + */ +@Slf4j +@Service +@AllArgsConstructor +public class MobileServiceImpl implements MobileService { + private final RedisTemplate redisTemplate; + private final SysUserMapper userMapper; + + + /** + * 发送手机验证码 + * TODO: 调用短信网关发送验证码,测试返回前端 + * + * @param mobile mobile + * @return code + */ + @Override + public R sendSmsCode(String mobile) { + SysUser condition = new SysUser(); + condition.setPhone(mobile); + List userList = userMapper.selectList(new EntityWrapper<>(condition)); + + if (CollUtil.isEmpty(userList)) { + log.info("手机号未注册:{}", mobile); + return new R<>(Boolean.FALSE, "手机号未注册"); + } + + Object codeObj = redisTemplate.opsForValue().get(CommonConstant.DEFAULT_CODE_KEY + mobile); + + if (codeObj != null) { + log.info("手机号验证码未过期:{},{}", mobile, codeObj); + return new R<>(Boolean.FALSE, "手机号未注册"); + } + + String code = RandomUtil.randomNumbers(4); + log.debug("手机号生成验证码成功:{},{}", mobile, code); + redisTemplate.opsForValue().set(CommonConstant.DEFAULT_CODE_KEY + mobile, code + , SecurityConstants.CODE_TIME, TimeUnit.SECONDS); + return new R<>(Boolean.TRUE, code); + } +} diff --git a/pigx-upms/pom.xml b/pigx-upms/pom.xml index aa6ff94cf..94af2e0b0 100644 --- a/pigx-upms/pom.xml +++ b/pigx-upms/pom.xml @@ -24,7 +24,7 @@ com.pig4cloud pigx - 1.7.1 + 1.8.0 pigx-upms diff --git a/pigx-visual/pigx-activiti/pom.xml b/pigx-visual/pigx-activiti/pom.xml index 05d05bdb7..7523bda59 100644 --- a/pigx-visual/pigx-activiti/pom.xml +++ b/pigx-visual/pigx-activiti/pom.xml @@ -23,7 +23,7 @@ com.pig4cloud pigx-visual - 1.7.0 + 1.8.0 pigx-activiti @@ -41,12 +41,12 @@ com.pig4cloud pigx-common-core - 1.7.0 + 1.8.0 com.pig4cloud pigx-upms-api - 1.7.0 + 1.8.0 mysql @@ -111,12 +111,12 @@ com.pig4cloud pigx-common-swagger - 1.7.0 + 1.8.0 com.pig4cloud pigx-common-security - 1.7.0 + 1.8.0 diff --git a/pigx-visual/pigx-codegen/pom.xml b/pigx-visual/pigx-codegen/pom.xml index 7eb6f2d3b..900b79daa 100755 --- a/pigx-visual/pigx-codegen/pom.xml +++ b/pigx-visual/pigx-codegen/pom.xml @@ -6,7 +6,7 @@ com.pig4cloud pigx-visual - 1.7.1 + 1.8.0 pigx-codegen @@ -34,19 +34,19 @@ com.pig4cloud pigx-common-core - 1.7.1 + 1.8.0 com.pig4cloud pigx-common-swagger - 1.7.1 + 1.8.0 com.pig4cloud pigx-common-security - 1.7.1 + 1.8.0 diff --git a/pigx-visual/pigx-codegen/src/main/java/com/pig4cloud/pigx/codegen/PigxCodeGenApplication.java b/pigx-visual/pigx-codegen/src/main/java/com/pig4cloud/pigx/codegen/PigxCodeGenApplication.java index 8920d832a..1939b0796 100755 --- a/pigx-visual/pigx-codegen/src/main/java/com/pig4cloud/pigx/codegen/PigxCodeGenApplication.java +++ b/pigx-visual/pigx-codegen/src/main/java/com/pig4cloud/pigx/codegen/PigxCodeGenApplication.java @@ -18,7 +18,7 @@ package com.pig4cloud.pigx.codegen; import com.pig4cloud.pigx.common.security.annotation.EnablePigxResourceServer; -import com.pig4cloud.pigx.common.security.feign.EnablePigxFeignClients; +import com.pig4cloud.pigx.common.security.annotation.EnablePigxFeignClients; import com.pig4cloud.pigx.common.swagger.annotation.EnablePigxSwagger2; import org.springframework.boot.SpringApplication; import org.springframework.cloud.client.SpringCloudApplication; diff --git a/pigx-visual/pigx-daemon/pom.xml b/pigx-visual/pigx-daemon/pom.xml index 0f2db3016..d02300a73 100644 --- a/pigx-visual/pigx-daemon/pom.xml +++ b/pigx-visual/pigx-daemon/pom.xml @@ -23,7 +23,7 @@ com.pig4cloud pigx-visual - 1.7.1 + 1.8.0 pigx-daemon @@ -41,7 +41,7 @@ com.pig4cloud pigx-common-job - 1.7.1 + 1.8.0 @@ -68,13 +68,13 @@ com.pig4cloud pigx-common-swagger - 1.7.1 + 1.8.0 com.pig4cloud pigx-common-security - 1.7.1 + 1.8.0 diff --git a/pigx-visual/pigx-daemon/src/main/java/com/pig4cloud/pigx/daemon/PigxDaemonApplication.java b/pigx-visual/pigx-daemon/src/main/java/com/pig4cloud/pigx/daemon/PigxDaemonApplication.java index 210013fed..a9f6a441c 100644 --- a/pigx-visual/pigx-daemon/src/main/java/com/pig4cloud/pigx/daemon/PigxDaemonApplication.java +++ b/pigx-visual/pigx-daemon/src/main/java/com/pig4cloud/pigx/daemon/PigxDaemonApplication.java @@ -19,7 +19,7 @@ package com.pig4cloud.pigx.daemon; import com.pig4cloud.pigx.common.job.annotation.EnablePigxJob; import com.pig4cloud.pigx.common.security.annotation.EnablePigxResourceServer; -import com.pig4cloud.pigx.common.security.feign.EnablePigxFeignClients; +import com.pig4cloud.pigx.common.security.annotation.EnablePigxFeignClients; import org.springframework.boot.SpringApplication; import org.springframework.cloud.client.SpringCloudApplication; diff --git a/pigx-visual/pigx-monitor/pom.xml b/pigx-visual/pigx-monitor/pom.xml index 4adf10c3c..0f0e1b645 100644 --- a/pigx-visual/pigx-monitor/pom.xml +++ b/pigx-visual/pigx-monitor/pom.xml @@ -24,7 +24,7 @@ com.pig4cloud pigx-visual - 1.7.1 + 1.8.0 pigx-monitor @@ -36,12 +36,12 @@ com.pig4cloud pigx-common-core - 1.7.0 + 1.8.0 com.pig4cloud pigx-common-cache - 1.7.0 + 1.8.0 diff --git a/pigx-visual/pigx-tx-manager/pom.xml b/pigx-visual/pigx-tx-manager/pom.xml index 5dd68c211..765224d62 100644 --- a/pigx-visual/pigx-tx-manager/pom.xml +++ b/pigx-visual/pigx-tx-manager/pom.xml @@ -5,7 +5,7 @@ com.pig4cloud pigx-visual - 1.7.1 + 1.8.0 pigx-tx-manager @@ -63,7 +63,7 @@ com.pig4cloud pigx-common-core - 1.7.1 + 1.8.0 diff --git a/pigx-visual/pom.xml b/pigx-visual/pom.xml index 550867ed5..a638b3e82 100644 --- a/pigx-visual/pom.xml +++ b/pigx-visual/pom.xml @@ -24,7 +24,7 @@ com.pig4cloud pigx - 1.7.1 + 1.8.0 pigx-visual diff --git a/pom.xml b/pom.xml index ca31e7cd0..7f405f039 100644 --- a/pom.xml +++ b/pom.xml @@ -24,7 +24,7 @@ com.pig4cloud pigx - 1.7.1 + 1.8.0 ${project.artifactId} pom https://www.pig4cloud.com