From 97ba0d9ae68b5c428564bf6297231596d3dbca97 Mon Sep 17 00:00:00 2001 From: zhouhao Date: Thu, 20 Sep 2018 17:35:12 +0800 Subject: [PATCH 01/18] =?UTF-8?q?=E4=BF=AE=E5=A4=8D=E8=AF=B4=E6=98=8E?= =?UTF-8?q?=E9=94=99=E8=AF=AF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- quick-start/README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/quick-start/README.md b/quick-start/README.md index afcdc9f7d..58e813fce 100644 --- a/quick-start/README.md +++ b/quick-start/README.md @@ -380,7 +380,7 @@ public interface TestDao extends CrudDao { - + From afbe914558f3b7cd99a51f351448d7ffbc8ca8d8 Mon Sep 17 00:00:00 2001 From: zhouhao Date: Fri, 21 Sep 2018 16:46:26 +0800 Subject: [PATCH 02/18] 3.0.1-SNAPSHOT --- hsweb-authorization/hsweb-authorization-api/pom.xml | 2 +- hsweb-authorization/hsweb-authorization-basic/pom.xml | 2 +- hsweb-authorization/hsweb-authorization-jwt/pom.xml | 2 +- .../hsweb-authorization-oauth2-auth-server/pom.xml | 2 +- .../hsweb-authorization-oauth2-client/pom.xml | 2 +- .../hsweb-authorization-oauth2-core/pom.xml | 2 +- hsweb-authorization/hsweb-authorization-oauth2/pom.xml | 2 +- hsweb-authorization/pom.xml | 2 +- hsweb-boost/hsweb-boost-aop/pom.xml | 2 +- hsweb-boost/hsweb-boost-excel/pom.xml | 2 +- hsweb-boost/hsweb-boost-ftp/pom.xml | 2 +- hsweb-boost/pom.xml | 2 +- hsweb-commons/hsweb-commons-bean/pom.xml | 2 +- hsweb-commons/hsweb-commons-controller/pom.xml | 2 +- hsweb-commons/hsweb-commons-dao/hsweb-commons-dao-api/pom.xml | 2 +- .../hsweb-commons-dao/hsweb-commons-dao-mybatis/pom.xml | 2 +- hsweb-commons/hsweb-commons-dao/pom.xml | 2 +- hsweb-commons/hsweb-commons-entity/pom.xml | 2 +- hsweb-commons/hsweb-commons-model/pom.xml | 2 +- .../hsweb-commons-service/hsweb-commons-service-api/pom.xml | 2 +- .../hsweb-commons-service/hsweb-commons-service-oauth2/pom.xml | 2 +- .../hsweb-commons-service/hsweb-commons-service-simple/pom.xml | 2 +- hsweb-commons/hsweb-commons-service/pom.xml | 2 +- hsweb-commons/hsweb-commons-utils/pom.xml | 2 +- hsweb-commons/pom.xml | 2 +- hsweb-concurrent/hsweb-concurrent-async-job/pom.xml | 2 +- hsweb-concurrent/hsweb-concurrent-cache/pom.xml | 2 +- .../hsweb-concurrent-counter-api/pom.xml | 2 +- .../hsweb-concurrent-counter-redis/pom.xml | 2 +- hsweb-concurrent/hsweb-concurrent-counter/pom.xml | 2 +- .../hsweb-concurrent-lock/hsweb-concurrent-lock-api/pom.xml | 2 +- .../hsweb-concurrent-lock/hsweb-concurrent-lock-redis/pom.xml | 2 +- .../hsweb-concurrent-lock/hsweb-concurrent-lock-starter/pom.xml | 2 +- hsweb-concurrent/hsweb-concurrent-lock/pom.xml | 2 +- hsweb-concurrent/pom.xml | 2 +- hsweb-core/pom.xml | 2 +- hsweb-datasource/hsweb-datasource-api/pom.xml | 2 +- hsweb-datasource/hsweb-datasource-jta/pom.xml | 2 +- hsweb-datasource/hsweb-datasource-web/pom.xml | 2 +- hsweb-datasource/pom.xml | 2 +- hsweb-logging/hsweb-access-logging-aop/pom.xml | 2 +- hsweb-logging/hsweb-access-logging-api/pom.xml | 2 +- hsweb-logging/pom.xml | 2 +- hsweb-message/hsweb-message-api/pom.xml | 2 +- hsweb-message/hsweb-message-jms/pom.xml | 2 +- hsweb-message/hsweb-message-redis/pom.xml | 2 +- hsweb-message/hsweb-message-websocket/pom.xml | 2 +- hsweb-message/pom.xml | 2 +- hsweb-starter/hsweb-spring-boot-starter/pom.xml | 2 +- hsweb-starter/pom.xml | 2 +- .../hsweb-system-authorization-api/pom.xml | 2 +- .../hsweb-system-authorization-local/pom.xml | 2 +- .../hsweb-system-authorization-starter/pom.xml | 2 +- .../hsweb-system-authorization-web/pom.xml | 2 +- hsweb-system/hsweb-system-authorization/pom.xml | 2 +- .../hsweb-system-config/hsweb-system-config-api/pom.xml | 2 +- .../hsweb-system-config/hsweb-system-config-local/pom.xml | 2 +- .../hsweb-system-config/hsweb-system-config-starter/pom.xml | 2 +- .../hsweb-system-config/hsweb-system-config-web/pom.xml | 2 +- hsweb-system/hsweb-system-config/pom.xml | 2 +- .../hsweb-system-dashboard/hsweb-system-dashboard-api/pom.xml | 2 +- .../hsweb-system-dashboard/hsweb-system-dashboard-local/pom.xml | 2 +- .../hsweb-system-dashboard-starter/pom.xml | 2 +- .../hsweb-system-dashboard/hsweb-system-dashboard-web/pom.xml | 2 +- hsweb-system/hsweb-system-dashboard/pom.xml | 2 +- .../hsweb-system-database-manager-api/pom.xml | 2 +- .../hsweb-system-database-manager-local/pom.xml | 2 +- .../hsweb-system-database-manager-starter/pom.xml | 2 +- .../hsweb-system-database-manager-web/pom.xml | 2 +- hsweb-system/hsweb-system-database-manager/pom.xml | 2 +- .../hsweb-system-datasource/hsweb-system-datasource-api/pom.xml | 2 +- .../hsweb-system-datasource-local/pom.xml | 2 +- .../hsweb-system-datasource-starter/pom.xml | 2 +- .../hsweb-system-datasource/hsweb-system-datasource-web/pom.xml | 2 +- hsweb-system/hsweb-system-datasource/pom.xml | 2 +- hsweb-system/hsweb-system-dev-tools/pom.xml | 2 +- .../hsweb-system-dictionary/hsweb-system-dictionary-api/pom.xml | 2 +- .../hsweb-system-dictionary-local/pom.xml | 2 +- .../hsweb-system-dictionary-starter/pom.xml | 2 +- .../hsweb-system-dictionary/hsweb-system-dictionary-web/pom.xml | 2 +- hsweb-system/hsweb-system-dictionary/pom.xml | 2 +- .../hsweb-system-dynamic-form-api/pom.xml | 2 +- .../hsweb-system-dynamic-form-local/pom.xml | 2 +- .../hsweb-system-dynamic-form-starter/pom.xml | 2 +- .../hsweb-system-dynamic-form-web/pom.xml | 2 +- hsweb-system/hsweb-system-dynamic-form/pom.xml | 2 +- hsweb-system/hsweb-system-file/hsweb-system-file-api/pom.xml | 2 +- hsweb-system/hsweb-system-file/hsweb-system-file-local/pom.xml | 2 +- hsweb-system/hsweb-system-file/hsweb-system-file-oauth2/pom.xml | 2 +- .../hsweb-system-file/hsweb-system-file-starter/pom.xml | 2 +- hsweb-system/hsweb-system-file/hsweb-system-file-web/pom.xml | 2 +- hsweb-system/hsweb-system-file/pom.xml | 2 +- .../hsweb-system-oauth2-client-api/pom.xml | 2 +- .../hsweb-system-oauth2-client-local/pom.xml | 2 +- .../hsweb-system-oauth2-client-starter/pom.xml | 2 +- .../hsweb-system-oauth2-client-web/pom.xml | 2 +- hsweb-system/hsweb-system-oauth2-client/pom.xml | 2 +- .../hsweb-system-oauth2-server-local/pom.xml | 2 +- .../hsweb-system-oauth2-server-starter/pom.xml | 2 +- .../hsweb-system-oauth2-server-web/pom.xml | 2 +- hsweb-system/hsweb-system-oauth2-server/pom.xml | 2 +- .../hsweb-system-organizational-api/pom.xml | 2 +- .../hsweb-system-organizational-authorization/pom.xml | 2 +- .../hsweb-system-organizational-local/pom.xml | 2 +- .../hsweb-system-organizational-starter/pom.xml | 2 +- .../hsweb-system-organizational-web/pom.xml | 2 +- hsweb-system/hsweb-system-organizational/pom.xml | 2 +- .../hsweb-system-schedule/hsweb-system-schedule-api/pom.xml | 2 +- .../hsweb-system-schedule/hsweb-system-schedule-local/pom.xml | 2 +- .../hsweb-system-schedule/hsweb-system-schedule-starter/pom.xml | 2 +- .../hsweb-system-schedule/hsweb-system-schedule-web/pom.xml | 2 +- hsweb-system/hsweb-system-schedule/pom.xml | 2 +- .../hsweb-system-script/hsweb-system-script-api/pom.xml | 2 +- .../hsweb-system-script/hsweb-system-script-local/pom.xml | 2 +- .../hsweb-system-script/hsweb-system-script-starter/pom.xml | 2 +- .../hsweb-system-script/hsweb-system-script-web/pom.xml | 2 +- hsweb-system/hsweb-system-script/pom.xml | 2 +- .../hsweb-system-template/hsweb-system-template-api/pom.xml | 2 +- .../hsweb-system-template/hsweb-system-template-local/pom.xml | 2 +- .../hsweb-system-template/hsweb-system-template-starter/pom.xml | 2 +- .../hsweb-system-template/hsweb-system-template-web/pom.xml | 2 +- hsweb-system/hsweb-system-template/pom.xml | 2 +- .../hsweb-system-workflow/hsweb-system-workflow-local/pom.xml | 2 +- .../hsweb-system-workflow/hsweb-system-workflow-starter/pom.xml | 2 +- hsweb-system/hsweb-system-workflow/pom.xml | 2 +- hsweb-system/pom.xml | 2 +- hsweb-tests/pom.xml | 2 +- hsweb-thirdparty/hsweb-thirdparty-ueditor/pom.xml | 2 +- hsweb-thirdparty/pom.xml | 2 +- pom.xml | 2 +- 130 files changed, 130 insertions(+), 130 deletions(-) diff --git a/hsweb-authorization/hsweb-authorization-api/pom.xml b/hsweb-authorization/hsweb-authorization-api/pom.xml index e7c1a3175..9eb904914 100644 --- a/hsweb-authorization/hsweb-authorization-api/pom.xml +++ b/hsweb-authorization/hsweb-authorization-api/pom.xml @@ -5,7 +5,7 @@ hsweb-authorization org.hswebframework.web - 3.0.0 + 3.0.1-SNAPSHOT 4.0.0 diff --git a/hsweb-authorization/hsweb-authorization-basic/pom.xml b/hsweb-authorization/hsweb-authorization-basic/pom.xml index 5f4910192..27d9d1871 100644 --- a/hsweb-authorization/hsweb-authorization-basic/pom.xml +++ b/hsweb-authorization/hsweb-authorization-basic/pom.xml @@ -5,7 +5,7 @@ hsweb-authorization org.hswebframework.web - 3.0.0 + 3.0.1-SNAPSHOT 4.0.0 diff --git a/hsweb-authorization/hsweb-authorization-jwt/pom.xml b/hsweb-authorization/hsweb-authorization-jwt/pom.xml index 6f60822d4..7ed6220e9 100644 --- a/hsweb-authorization/hsweb-authorization-jwt/pom.xml +++ b/hsweb-authorization/hsweb-authorization-jwt/pom.xml @@ -5,7 +5,7 @@ hsweb-authorization org.hswebframework.web - 3.0.0 + 3.0.1-SNAPSHOT 4.0.0 diff --git a/hsweb-authorization/hsweb-authorization-oauth2/hsweb-authorization-oauth2-auth-server/pom.xml b/hsweb-authorization/hsweb-authorization-oauth2/hsweb-authorization-oauth2-auth-server/pom.xml index 0cc6875cb..18b85add3 100644 --- a/hsweb-authorization/hsweb-authorization-oauth2/hsweb-authorization-oauth2-auth-server/pom.xml +++ b/hsweb-authorization/hsweb-authorization-oauth2/hsweb-authorization-oauth2-auth-server/pom.xml @@ -23,7 +23,7 @@ hsweb-authorization-oauth2 org.hswebframework.web - 3.0.0 + 3.0.1-SNAPSHOT 4.0.0 diff --git a/hsweb-authorization/hsweb-authorization-oauth2/hsweb-authorization-oauth2-client/pom.xml b/hsweb-authorization/hsweb-authorization-oauth2/hsweb-authorization-oauth2-client/pom.xml index de05f50b4..7856a33ca 100644 --- a/hsweb-authorization/hsweb-authorization-oauth2/hsweb-authorization-oauth2-client/pom.xml +++ b/hsweb-authorization/hsweb-authorization-oauth2/hsweb-authorization-oauth2-client/pom.xml @@ -23,7 +23,7 @@ hsweb-authorization-oauth2 org.hswebframework.web - 3.0.0 + 3.0.1-SNAPSHOT 4.0.0 diff --git a/hsweb-authorization/hsweb-authorization-oauth2/hsweb-authorization-oauth2-core/pom.xml b/hsweb-authorization/hsweb-authorization-oauth2/hsweb-authorization-oauth2-core/pom.xml index 2c4c353b8..a3b3f286b 100644 --- a/hsweb-authorization/hsweb-authorization-oauth2/hsweb-authorization-oauth2-core/pom.xml +++ b/hsweb-authorization/hsweb-authorization-oauth2/hsweb-authorization-oauth2-core/pom.xml @@ -23,7 +23,7 @@ hsweb-authorization-oauth2 org.hswebframework.web - 3.0.0 + 3.0.1-SNAPSHOT 4.0.0 diff --git a/hsweb-authorization/hsweb-authorization-oauth2/pom.xml b/hsweb-authorization/hsweb-authorization-oauth2/pom.xml index fea7dba0a..75ea22cd2 100644 --- a/hsweb-authorization/hsweb-authorization-oauth2/pom.xml +++ b/hsweb-authorization/hsweb-authorization-oauth2/pom.xml @@ -5,7 +5,7 @@ hsweb-authorization org.hswebframework.web - 3.0.0 + 3.0.1-SNAPSHOT 4.0.0 diff --git a/hsweb-authorization/pom.xml b/hsweb-authorization/pom.xml index 632baa4d6..03691fa50 100644 --- a/hsweb-authorization/pom.xml +++ b/hsweb-authorization/pom.xml @@ -5,7 +5,7 @@ hsweb-framework org.hswebframework.web - 3.0.0 + 3.0.1-SNAPSHOT 4.0.0 diff --git a/hsweb-boost/hsweb-boost-aop/pom.xml b/hsweb-boost/hsweb-boost-aop/pom.xml index 07377d850..a0f23020c 100644 --- a/hsweb-boost/hsweb-boost-aop/pom.xml +++ b/hsweb-boost/hsweb-boost-aop/pom.xml @@ -23,7 +23,7 @@ hsweb-boost org.hswebframework.web - 3.0.0 + 3.0.1-SNAPSHOT 4.0.0 diff --git a/hsweb-boost/hsweb-boost-excel/pom.xml b/hsweb-boost/hsweb-boost-excel/pom.xml index 8988e9537..c4ea533b3 100644 --- a/hsweb-boost/hsweb-boost-excel/pom.xml +++ b/hsweb-boost/hsweb-boost-excel/pom.xml @@ -5,7 +5,7 @@ hsweb-boost org.hswebframework.web - 3.0.0 + 3.0.1-SNAPSHOT 4.0.0 diff --git a/hsweb-boost/hsweb-boost-ftp/pom.xml b/hsweb-boost/hsweb-boost-ftp/pom.xml index 939ab77ab..d370efc98 100644 --- a/hsweb-boost/hsweb-boost-ftp/pom.xml +++ b/hsweb-boost/hsweb-boost-ftp/pom.xml @@ -5,7 +5,7 @@ hsweb-boost org.hswebframework.web - 3.0.0 + 3.0.1-SNAPSHOT 4.0.0 diff --git a/hsweb-boost/pom.xml b/hsweb-boost/pom.xml index 875353908..bfea823f9 100644 --- a/hsweb-boost/pom.xml +++ b/hsweb-boost/pom.xml @@ -23,7 +23,7 @@ hsweb-framework org.hswebframework.web - 3.0.0 + 3.0.1-SNAPSHOT 4.0.0 diff --git a/hsweb-commons/hsweb-commons-bean/pom.xml b/hsweb-commons/hsweb-commons-bean/pom.xml index eb498b032..0ffee620b 100644 --- a/hsweb-commons/hsweb-commons-bean/pom.xml +++ b/hsweb-commons/hsweb-commons-bean/pom.xml @@ -5,7 +5,7 @@ hsweb-commons org.hswebframework.web - 3.0.0 + 3.0.1-SNAPSHOT ../pom.xml 4.0.0 diff --git a/hsweb-commons/hsweb-commons-controller/pom.xml b/hsweb-commons/hsweb-commons-controller/pom.xml index b65ac5df9..e8331e16c 100644 --- a/hsweb-commons/hsweb-commons-controller/pom.xml +++ b/hsweb-commons/hsweb-commons-controller/pom.xml @@ -23,7 +23,7 @@ hsweb-commons org.hswebframework.web - 3.0.0 + 3.0.1-SNAPSHOT ../pom.xml 4.0.0 diff --git a/hsweb-commons/hsweb-commons-dao/hsweb-commons-dao-api/pom.xml b/hsweb-commons/hsweb-commons-dao/hsweb-commons-dao-api/pom.xml index 3cd8a7d2b..cef209929 100644 --- a/hsweb-commons/hsweb-commons-dao/hsweb-commons-dao-api/pom.xml +++ b/hsweb-commons/hsweb-commons-dao/hsweb-commons-dao-api/pom.xml @@ -23,7 +23,7 @@ hsweb-commons-dao org.hswebframework.web - 3.0.0 + 3.0.1-SNAPSHOT ../pom.xml 4.0.0 diff --git a/hsweb-commons/hsweb-commons-dao/hsweb-commons-dao-mybatis/pom.xml b/hsweb-commons/hsweb-commons-dao/hsweb-commons-dao-mybatis/pom.xml index db8600996..6f0e81b9b 100644 --- a/hsweb-commons/hsweb-commons-dao/hsweb-commons-dao-mybatis/pom.xml +++ b/hsweb-commons/hsweb-commons-dao/hsweb-commons-dao-mybatis/pom.xml @@ -23,7 +23,7 @@ hsweb-commons-dao org.hswebframework.web - 3.0.0 + 3.0.1-SNAPSHOT ../pom.xml 4.0.0 diff --git a/hsweb-commons/hsweb-commons-dao/pom.xml b/hsweb-commons/hsweb-commons-dao/pom.xml index c87088ed2..ec3e07fcc 100644 --- a/hsweb-commons/hsweb-commons-dao/pom.xml +++ b/hsweb-commons/hsweb-commons-dao/pom.xml @@ -23,7 +23,7 @@ hsweb-commons org.hswebframework.web - 3.0.0 + 3.0.1-SNAPSHOT ../pom.xml 4.0.0 diff --git a/hsweb-commons/hsweb-commons-entity/pom.xml b/hsweb-commons/hsweb-commons-entity/pom.xml index c9fbe2738..6ade6f479 100644 --- a/hsweb-commons/hsweb-commons-entity/pom.xml +++ b/hsweb-commons/hsweb-commons-entity/pom.xml @@ -23,7 +23,7 @@ hsweb-commons org.hswebframework.web - 3.0.0 + 3.0.1-SNAPSHOT 4.0.0 diff --git a/hsweb-commons/hsweb-commons-model/pom.xml b/hsweb-commons/hsweb-commons-model/pom.xml index 3fcab6818..4bef32df8 100644 --- a/hsweb-commons/hsweb-commons-model/pom.xml +++ b/hsweb-commons/hsweb-commons-model/pom.xml @@ -23,7 +23,7 @@ hsweb-commons org.hswebframework.web - 3.0.0 + 3.0.1-SNAPSHOT 4.0.0 diff --git a/hsweb-commons/hsweb-commons-service/hsweb-commons-service-api/pom.xml b/hsweb-commons/hsweb-commons-service/hsweb-commons-service-api/pom.xml index aeeb18d19..b9e9ccfa8 100644 --- a/hsweb-commons/hsweb-commons-service/hsweb-commons-service-api/pom.xml +++ b/hsweb-commons/hsweb-commons-service/hsweb-commons-service-api/pom.xml @@ -23,7 +23,7 @@ hsweb-commons-service org.hswebframework.web - 3.0.0 + 3.0.1-SNAPSHOT ../pom.xml 4.0.0 diff --git a/hsweb-commons/hsweb-commons-service/hsweb-commons-service-oauth2/pom.xml b/hsweb-commons/hsweb-commons-service/hsweb-commons-service-oauth2/pom.xml index 4766092a6..c34f72f3e 100644 --- a/hsweb-commons/hsweb-commons-service/hsweb-commons-service-oauth2/pom.xml +++ b/hsweb-commons/hsweb-commons-service/hsweb-commons-service-oauth2/pom.xml @@ -5,7 +5,7 @@ hsweb-commons-service org.hswebframework.web - 3.0.0 + 3.0.1-SNAPSHOT ../pom.xml diff --git a/hsweb-commons/hsweb-commons-service/hsweb-commons-service-simple/pom.xml b/hsweb-commons/hsweb-commons-service/hsweb-commons-service-simple/pom.xml index 2168d47f9..b563be1ac 100644 --- a/hsweb-commons/hsweb-commons-service/hsweb-commons-service-simple/pom.xml +++ b/hsweb-commons/hsweb-commons-service/hsweb-commons-service-simple/pom.xml @@ -23,7 +23,7 @@ hsweb-commons-service org.hswebframework.web - 3.0.0 + 3.0.1-SNAPSHOT ../pom.xml diff --git a/hsweb-commons/hsweb-commons-service/pom.xml b/hsweb-commons/hsweb-commons-service/pom.xml index 8b8f2887a..1c1d6fb5c 100644 --- a/hsweb-commons/hsweb-commons-service/pom.xml +++ b/hsweb-commons/hsweb-commons-service/pom.xml @@ -23,7 +23,7 @@ hsweb-commons org.hswebframework.web - 3.0.0 + 3.0.1-SNAPSHOT ../pom.xml diff --git a/hsweb-commons/hsweb-commons-utils/pom.xml b/hsweb-commons/hsweb-commons-utils/pom.xml index ed5dd731f..7c36e959e 100644 --- a/hsweb-commons/hsweb-commons-utils/pom.xml +++ b/hsweb-commons/hsweb-commons-utils/pom.xml @@ -23,7 +23,7 @@ hsweb-commons org.hswebframework.web - 3.0.0 + 3.0.1-SNAPSHOT ../pom.xml 4.0.0 diff --git a/hsweb-commons/pom.xml b/hsweb-commons/pom.xml index 6627fcaf8..a72aaa0ec 100644 --- a/hsweb-commons/pom.xml +++ b/hsweb-commons/pom.xml @@ -23,7 +23,7 @@ hsweb-framework org.hswebframework.web - 3.0.0 + 3.0.1-SNAPSHOT ../pom.xml 4.0.0 diff --git a/hsweb-concurrent/hsweb-concurrent-async-job/pom.xml b/hsweb-concurrent/hsweb-concurrent-async-job/pom.xml index b489b249d..42d511912 100644 --- a/hsweb-concurrent/hsweb-concurrent-async-job/pom.xml +++ b/hsweb-concurrent/hsweb-concurrent-async-job/pom.xml @@ -5,7 +5,7 @@ hsweb-concurrent org.hswebframework.web - 3.0.0 + 3.0.1-SNAPSHOT 4.0.0 diff --git a/hsweb-concurrent/hsweb-concurrent-cache/pom.xml b/hsweb-concurrent/hsweb-concurrent-cache/pom.xml index da54e99ab..c2df16a69 100644 --- a/hsweb-concurrent/hsweb-concurrent-cache/pom.xml +++ b/hsweb-concurrent/hsweb-concurrent-cache/pom.xml @@ -22,7 +22,7 @@ hsweb-concurrent org.hswebframework.web - 3.0.0 + 3.0.1-SNAPSHOT 4.0.0 diff --git a/hsweb-concurrent/hsweb-concurrent-counter/hsweb-concurrent-counter-api/pom.xml b/hsweb-concurrent/hsweb-concurrent-counter/hsweb-concurrent-counter-api/pom.xml index c510ded4c..daa4e5d40 100644 --- a/hsweb-concurrent/hsweb-concurrent-counter/hsweb-concurrent-counter-api/pom.xml +++ b/hsweb-concurrent/hsweb-concurrent-counter/hsweb-concurrent-counter-api/pom.xml @@ -22,7 +22,7 @@ hsweb-concurrent-counter org.hswebframework.web - 3.0.0 + 3.0.1-SNAPSHOT 4.0.0 diff --git a/hsweb-concurrent/hsweb-concurrent-counter/hsweb-concurrent-counter-redis/pom.xml b/hsweb-concurrent/hsweb-concurrent-counter/hsweb-concurrent-counter-redis/pom.xml index 2026357f4..e6dc88a1a 100644 --- a/hsweb-concurrent/hsweb-concurrent-counter/hsweb-concurrent-counter-redis/pom.xml +++ b/hsweb-concurrent/hsweb-concurrent-counter/hsweb-concurrent-counter-redis/pom.xml @@ -5,7 +5,7 @@ hsweb-concurrent-counter org.hswebframework.web - 3.0.0 + 3.0.1-SNAPSHOT 4.0.0 diff --git a/hsweb-concurrent/hsweb-concurrent-counter/pom.xml b/hsweb-concurrent/hsweb-concurrent-counter/pom.xml index 92584d59f..bbdbd9746 100644 --- a/hsweb-concurrent/hsweb-concurrent-counter/pom.xml +++ b/hsweb-concurrent/hsweb-concurrent-counter/pom.xml @@ -22,7 +22,7 @@ hsweb-concurrent org.hswebframework.web - 3.0.0 + 3.0.1-SNAPSHOT 4.0.0 diff --git a/hsweb-concurrent/hsweb-concurrent-lock/hsweb-concurrent-lock-api/pom.xml b/hsweb-concurrent/hsweb-concurrent-lock/hsweb-concurrent-lock-api/pom.xml index 59d6066a9..03d338bdd 100644 --- a/hsweb-concurrent/hsweb-concurrent-lock/hsweb-concurrent-lock-api/pom.xml +++ b/hsweb-concurrent/hsweb-concurrent-lock/hsweb-concurrent-lock-api/pom.xml @@ -5,7 +5,7 @@ hsweb-concurrent-lock org.hswebframework.web - 3.0.0 + 3.0.1-SNAPSHOT 4.0.0 diff --git a/hsweb-concurrent/hsweb-concurrent-lock/hsweb-concurrent-lock-redis/pom.xml b/hsweb-concurrent/hsweb-concurrent-lock/hsweb-concurrent-lock-redis/pom.xml index 0cc4d7df9..962403ac5 100644 --- a/hsweb-concurrent/hsweb-concurrent-lock/hsweb-concurrent-lock-redis/pom.xml +++ b/hsweb-concurrent/hsweb-concurrent-lock/hsweb-concurrent-lock-redis/pom.xml @@ -5,7 +5,7 @@ hsweb-concurrent-lock org.hswebframework.web - 3.0.0 + 3.0.1-SNAPSHOT 4.0.0 diff --git a/hsweb-concurrent/hsweb-concurrent-lock/hsweb-concurrent-lock-starter/pom.xml b/hsweb-concurrent/hsweb-concurrent-lock/hsweb-concurrent-lock-starter/pom.xml index ddd31c255..ba6c6f992 100644 --- a/hsweb-concurrent/hsweb-concurrent-lock/hsweb-concurrent-lock-starter/pom.xml +++ b/hsweb-concurrent/hsweb-concurrent-lock/hsweb-concurrent-lock-starter/pom.xml @@ -5,7 +5,7 @@ hsweb-concurrent-lock org.hswebframework.web - 3.0.0 + 3.0.1-SNAPSHOT 4.0.0 diff --git a/hsweb-concurrent/hsweb-concurrent-lock/pom.xml b/hsweb-concurrent/hsweb-concurrent-lock/pom.xml index 1aebbf3fe..571fc549f 100644 --- a/hsweb-concurrent/hsweb-concurrent-lock/pom.xml +++ b/hsweb-concurrent/hsweb-concurrent-lock/pom.xml @@ -22,7 +22,7 @@ hsweb-concurrent org.hswebframework.web - 3.0.0 + 3.0.1-SNAPSHOT 4.0.0 diff --git a/hsweb-concurrent/pom.xml b/hsweb-concurrent/pom.xml index 8eccc35f6..7faf14e26 100644 --- a/hsweb-concurrent/pom.xml +++ b/hsweb-concurrent/pom.xml @@ -22,7 +22,7 @@ hsweb-framework org.hswebframework.web - 3.0.0 + 3.0.1-SNAPSHOT 4.0.0 diff --git a/hsweb-core/pom.xml b/hsweb-core/pom.xml index e0f37e798..e802db824 100644 --- a/hsweb-core/pom.xml +++ b/hsweb-core/pom.xml @@ -5,7 +5,7 @@ hsweb-framework org.hswebframework.web - 3.0.0 + 3.0.1-SNAPSHOT ../pom.xml 4.0.0 diff --git a/hsweb-datasource/hsweb-datasource-api/pom.xml b/hsweb-datasource/hsweb-datasource-api/pom.xml index 3d436cd8b..3c8f840b8 100644 --- a/hsweb-datasource/hsweb-datasource-api/pom.xml +++ b/hsweb-datasource/hsweb-datasource-api/pom.xml @@ -5,7 +5,7 @@ hsweb-datasource org.hswebframework.web - 3.0.0 + 3.0.1-SNAPSHOT ../pom.xml diff --git a/hsweb-datasource/hsweb-datasource-jta/pom.xml b/hsweb-datasource/hsweb-datasource-jta/pom.xml index d889024a5..b3be409ac 100644 --- a/hsweb-datasource/hsweb-datasource-jta/pom.xml +++ b/hsweb-datasource/hsweb-datasource-jta/pom.xml @@ -5,7 +5,7 @@ hsweb-datasource org.hswebframework.web - 3.0.0 + 3.0.1-SNAPSHOT ../pom.xml diff --git a/hsweb-datasource/hsweb-datasource-web/pom.xml b/hsweb-datasource/hsweb-datasource-web/pom.xml index 539536d81..387d32212 100644 --- a/hsweb-datasource/hsweb-datasource-web/pom.xml +++ b/hsweb-datasource/hsweb-datasource-web/pom.xml @@ -5,7 +5,7 @@ hsweb-datasource org.hswebframework.web - 3.0.0 + 3.0.1-SNAPSHOT ../pom.xml diff --git a/hsweb-datasource/pom.xml b/hsweb-datasource/pom.xml index 3b800651b..8d05a6df4 100644 --- a/hsweb-datasource/pom.xml +++ b/hsweb-datasource/pom.xml @@ -5,7 +5,7 @@ hsweb-framework org.hswebframework.web - 3.0.0 + 3.0.1-SNAPSHOT ../pom.xml diff --git a/hsweb-logging/hsweb-access-logging-aop/pom.xml b/hsweb-logging/hsweb-access-logging-aop/pom.xml index 1fc535192..bc7681d01 100644 --- a/hsweb-logging/hsweb-access-logging-aop/pom.xml +++ b/hsweb-logging/hsweb-access-logging-aop/pom.xml @@ -5,7 +5,7 @@ hsweb-logging org.hswebframework.web - 3.0.0 + 3.0.1-SNAPSHOT ../pom.xml 4.0.0 diff --git a/hsweb-logging/hsweb-access-logging-api/pom.xml b/hsweb-logging/hsweb-access-logging-api/pom.xml index c2edfa3a1..45f343948 100644 --- a/hsweb-logging/hsweb-access-logging-api/pom.xml +++ b/hsweb-logging/hsweb-access-logging-api/pom.xml @@ -5,7 +5,7 @@ hsweb-logging org.hswebframework.web - 3.0.0 + 3.0.1-SNAPSHOT ../pom.xml 4.0.0 diff --git a/hsweb-logging/pom.xml b/hsweb-logging/pom.xml index 8ef2003b0..ab4417aa1 100644 --- a/hsweb-logging/pom.xml +++ b/hsweb-logging/pom.xml @@ -23,7 +23,7 @@ hsweb-framework org.hswebframework.web - 3.0.0 + 3.0.1-SNAPSHOT ../pom.xml 4.0.0 diff --git a/hsweb-message/hsweb-message-api/pom.xml b/hsweb-message/hsweb-message-api/pom.xml index 3919f2b72..7b3a065ce 100644 --- a/hsweb-message/hsweb-message-api/pom.xml +++ b/hsweb-message/hsweb-message-api/pom.xml @@ -5,7 +5,7 @@ hsweb-message org.hswebframework.web - 3.0.0 + 3.0.1-SNAPSHOT 4.0.0 diff --git a/hsweb-message/hsweb-message-jms/pom.xml b/hsweb-message/hsweb-message-jms/pom.xml index b641038e9..1b941db4f 100644 --- a/hsweb-message/hsweb-message-jms/pom.xml +++ b/hsweb-message/hsweb-message-jms/pom.xml @@ -5,7 +5,7 @@ hsweb-message org.hswebframework.web - 3.0.0 + 3.0.1-SNAPSHOT 4.0.0 diff --git a/hsweb-message/hsweb-message-redis/pom.xml b/hsweb-message/hsweb-message-redis/pom.xml index 6258d0baa..bc0761f32 100644 --- a/hsweb-message/hsweb-message-redis/pom.xml +++ b/hsweb-message/hsweb-message-redis/pom.xml @@ -5,7 +5,7 @@ hsweb-message org.hswebframework.web - 3.0.0 + 3.0.1-SNAPSHOT 4.0.0 diff --git a/hsweb-message/hsweb-message-websocket/pom.xml b/hsweb-message/hsweb-message-websocket/pom.xml index 0ba1d3e01..ce3d7606b 100644 --- a/hsweb-message/hsweb-message-websocket/pom.xml +++ b/hsweb-message/hsweb-message-websocket/pom.xml @@ -5,7 +5,7 @@ hsweb-message org.hswebframework.web - 3.0.0 + 3.0.1-SNAPSHOT 4.0.0 diff --git a/hsweb-message/pom.xml b/hsweb-message/pom.xml index 36a264e43..ffbdd25d0 100644 --- a/hsweb-message/pom.xml +++ b/hsweb-message/pom.xml @@ -5,7 +5,7 @@ hsweb-framework org.hswebframework.web - 3.0.0 + 3.0.1-SNAPSHOT 4.0.0 diff --git a/hsweb-starter/hsweb-spring-boot-starter/pom.xml b/hsweb-starter/hsweb-spring-boot-starter/pom.xml index 5fad78c1b..84114070f 100644 --- a/hsweb-starter/hsweb-spring-boot-starter/pom.xml +++ b/hsweb-starter/hsweb-spring-boot-starter/pom.xml @@ -23,7 +23,7 @@ hsweb-starter org.hswebframework.web - 3.0.0 + 3.0.1-SNAPSHOT 4.0.0 diff --git a/hsweb-starter/pom.xml b/hsweb-starter/pom.xml index 7ecfac0ce..f164bf9aa 100644 --- a/hsweb-starter/pom.xml +++ b/hsweb-starter/pom.xml @@ -5,7 +5,7 @@ hsweb-framework org.hswebframework.web - 3.0.0 + 3.0.1-SNAPSHOT 4.0.0 diff --git a/hsweb-system/hsweb-system-authorization/hsweb-system-authorization-api/pom.xml b/hsweb-system/hsweb-system-authorization/hsweb-system-authorization-api/pom.xml index 29fd8bed5..c25b3b836 100644 --- a/hsweb-system/hsweb-system-authorization/hsweb-system-authorization-api/pom.xml +++ b/hsweb-system/hsweb-system-authorization/hsweb-system-authorization-api/pom.xml @@ -5,7 +5,7 @@ hsweb-system-authorization org.hswebframework.web - 3.0.0 + 3.0.1-SNAPSHOT 4.0.0 diff --git a/hsweb-system/hsweb-system-authorization/hsweb-system-authorization-local/pom.xml b/hsweb-system/hsweb-system-authorization/hsweb-system-authorization-local/pom.xml index a4f0da8f4..89db5b55f 100644 --- a/hsweb-system/hsweb-system-authorization/hsweb-system-authorization-local/pom.xml +++ b/hsweb-system/hsweb-system-authorization/hsweb-system-authorization-local/pom.xml @@ -5,7 +5,7 @@ hsweb-system-authorization org.hswebframework.web - 3.0.0 + 3.0.1-SNAPSHOT 4.0.0 diff --git a/hsweb-system/hsweb-system-authorization/hsweb-system-authorization-starter/pom.xml b/hsweb-system/hsweb-system-authorization/hsweb-system-authorization-starter/pom.xml index 20db1caf7..0374d68ab 100644 --- a/hsweb-system/hsweb-system-authorization/hsweb-system-authorization-starter/pom.xml +++ b/hsweb-system/hsweb-system-authorization/hsweb-system-authorization-starter/pom.xml @@ -22,7 +22,7 @@ hsweb-system-authorization org.hswebframework.web - 3.0.0 + 3.0.1-SNAPSHOT 4.0.0 diff --git a/hsweb-system/hsweb-system-authorization/hsweb-system-authorization-web/pom.xml b/hsweb-system/hsweb-system-authorization/hsweb-system-authorization-web/pom.xml index fd0fb7e90..74999b4a0 100644 --- a/hsweb-system/hsweb-system-authorization/hsweb-system-authorization-web/pom.xml +++ b/hsweb-system/hsweb-system-authorization/hsweb-system-authorization-web/pom.xml @@ -5,7 +5,7 @@ hsweb-system-authorization org.hswebframework.web - 3.0.0 + 3.0.1-SNAPSHOT 4.0.0 diff --git a/hsweb-system/hsweb-system-authorization/pom.xml b/hsweb-system/hsweb-system-authorization/pom.xml index 66cd9d027..a062007f0 100644 --- a/hsweb-system/hsweb-system-authorization/pom.xml +++ b/hsweb-system/hsweb-system-authorization/pom.xml @@ -5,7 +5,7 @@ hsweb-system org.hswebframework.web - 3.0.0 + 3.0.1-SNAPSHOT 4.0.0 diff --git a/hsweb-system/hsweb-system-config/hsweb-system-config-api/pom.xml b/hsweb-system/hsweb-system-config/hsweb-system-config-api/pom.xml index a2b67bc05..53c882529 100644 --- a/hsweb-system/hsweb-system-config/hsweb-system-config-api/pom.xml +++ b/hsweb-system/hsweb-system-config/hsweb-system-config-api/pom.xml @@ -23,7 +23,7 @@ hsweb-system-config org.hswebframework.web - 3.0.0 + 3.0.1-SNAPSHOT ../pom.xml diff --git a/hsweb-system/hsweb-system-config/hsweb-system-config-local/pom.xml b/hsweb-system/hsweb-system-config/hsweb-system-config-local/pom.xml index c5c1c2f53..fba8d7fce 100644 --- a/hsweb-system/hsweb-system-config/hsweb-system-config-local/pom.xml +++ b/hsweb-system/hsweb-system-config/hsweb-system-config-local/pom.xml @@ -23,7 +23,7 @@ hsweb-system-config org.hswebframework.web - 3.0.0 + 3.0.1-SNAPSHOT ../pom.xml 4.0.0 diff --git a/hsweb-system/hsweb-system-config/hsweb-system-config-starter/pom.xml b/hsweb-system/hsweb-system-config/hsweb-system-config-starter/pom.xml index deaba3cf7..849ee2089 100644 --- a/hsweb-system/hsweb-system-config/hsweb-system-config-starter/pom.xml +++ b/hsweb-system/hsweb-system-config/hsweb-system-config-starter/pom.xml @@ -5,7 +5,7 @@ hsweb-system-config org.hswebframework.web - 3.0.0 + 3.0.1-SNAPSHOT ../pom.xml 4.0.0 diff --git a/hsweb-system/hsweb-system-config/hsweb-system-config-web/pom.xml b/hsweb-system/hsweb-system-config/hsweb-system-config-web/pom.xml index 4691fc75a..54867026f 100644 --- a/hsweb-system/hsweb-system-config/hsweb-system-config-web/pom.xml +++ b/hsweb-system/hsweb-system-config/hsweb-system-config-web/pom.xml @@ -23,7 +23,7 @@ hsweb-system-config org.hswebframework.web - 3.0.0 + 3.0.1-SNAPSHOT ../pom.xml 4.0.0 diff --git a/hsweb-system/hsweb-system-config/pom.xml b/hsweb-system/hsweb-system-config/pom.xml index c38c2745b..131645151 100644 --- a/hsweb-system/hsweb-system-config/pom.xml +++ b/hsweb-system/hsweb-system-config/pom.xml @@ -23,7 +23,7 @@ hsweb-system org.hswebframework.web - 3.0.0 + 3.0.1-SNAPSHOT 4.0.0 diff --git a/hsweb-system/hsweb-system-dashboard/hsweb-system-dashboard-api/pom.xml b/hsweb-system/hsweb-system-dashboard/hsweb-system-dashboard-api/pom.xml index 5f5dd944d..ebbf26e6d 100644 --- a/hsweb-system/hsweb-system-dashboard/hsweb-system-dashboard-api/pom.xml +++ b/hsweb-system/hsweb-system-dashboard/hsweb-system-dashboard-api/pom.xml @@ -5,7 +5,7 @@ hsweb-system-dashboard org.hswebframework.web - 3.0.0 + 3.0.1-SNAPSHOT 4.0.0 diff --git a/hsweb-system/hsweb-system-dashboard/hsweb-system-dashboard-local/pom.xml b/hsweb-system/hsweb-system-dashboard/hsweb-system-dashboard-local/pom.xml index 28ee29f73..bf5501f5a 100644 --- a/hsweb-system/hsweb-system-dashboard/hsweb-system-dashboard-local/pom.xml +++ b/hsweb-system/hsweb-system-dashboard/hsweb-system-dashboard-local/pom.xml @@ -5,7 +5,7 @@ hsweb-system-dashboard org.hswebframework.web - 3.0.0 + 3.0.1-SNAPSHOT 4.0.0 diff --git a/hsweb-system/hsweb-system-dashboard/hsweb-system-dashboard-starter/pom.xml b/hsweb-system/hsweb-system-dashboard/hsweb-system-dashboard-starter/pom.xml index 18abd26be..399135d9d 100644 --- a/hsweb-system/hsweb-system-dashboard/hsweb-system-dashboard-starter/pom.xml +++ b/hsweb-system/hsweb-system-dashboard/hsweb-system-dashboard-starter/pom.xml @@ -5,7 +5,7 @@ hsweb-system-dashboard org.hswebframework.web - 3.0.0 + 3.0.1-SNAPSHOT 4.0.0 diff --git a/hsweb-system/hsweb-system-dashboard/hsweb-system-dashboard-web/pom.xml b/hsweb-system/hsweb-system-dashboard/hsweb-system-dashboard-web/pom.xml index 5b06435b7..025677874 100644 --- a/hsweb-system/hsweb-system-dashboard/hsweb-system-dashboard-web/pom.xml +++ b/hsweb-system/hsweb-system-dashboard/hsweb-system-dashboard-web/pom.xml @@ -5,7 +5,7 @@ hsweb-system-dashboard org.hswebframework.web - 3.0.0 + 3.0.1-SNAPSHOT 4.0.0 diff --git a/hsweb-system/hsweb-system-dashboard/pom.xml b/hsweb-system/hsweb-system-dashboard/pom.xml index 43bab20ca..1852de2a1 100644 --- a/hsweb-system/hsweb-system-dashboard/pom.xml +++ b/hsweb-system/hsweb-system-dashboard/pom.xml @@ -5,7 +5,7 @@ hsweb-system org.hswebframework.web - 3.0.0 + 3.0.1-SNAPSHOT 4.0.0 diff --git a/hsweb-system/hsweb-system-database-manager/hsweb-system-database-manager-api/pom.xml b/hsweb-system/hsweb-system-database-manager/hsweb-system-database-manager-api/pom.xml index 958cf1371..8658008a3 100644 --- a/hsweb-system/hsweb-system-database-manager/hsweb-system-database-manager-api/pom.xml +++ b/hsweb-system/hsweb-system-database-manager/hsweb-system-database-manager-api/pom.xml @@ -5,7 +5,7 @@ hsweb-system-database-manager org.hswebframework.web - 3.0.0 + 3.0.1-SNAPSHOT 4.0.0 diff --git a/hsweb-system/hsweb-system-database-manager/hsweb-system-database-manager-local/pom.xml b/hsweb-system/hsweb-system-database-manager/hsweb-system-database-manager-local/pom.xml index 956839636..d3e16fa71 100644 --- a/hsweb-system/hsweb-system-database-manager/hsweb-system-database-manager-local/pom.xml +++ b/hsweb-system/hsweb-system-database-manager/hsweb-system-database-manager-local/pom.xml @@ -5,7 +5,7 @@ hsweb-system-database-manager org.hswebframework.web - 3.0.0 + 3.0.1-SNAPSHOT 4.0.0 diff --git a/hsweb-system/hsweb-system-database-manager/hsweb-system-database-manager-starter/pom.xml b/hsweb-system/hsweb-system-database-manager/hsweb-system-database-manager-starter/pom.xml index 4b9c2f14c..7f9025c88 100644 --- a/hsweb-system/hsweb-system-database-manager/hsweb-system-database-manager-starter/pom.xml +++ b/hsweb-system/hsweb-system-database-manager/hsweb-system-database-manager-starter/pom.xml @@ -5,7 +5,7 @@ hsweb-system-database-manager org.hswebframework.web - 3.0.0 + 3.0.1-SNAPSHOT 4.0.0 diff --git a/hsweb-system/hsweb-system-database-manager/hsweb-system-database-manager-web/pom.xml b/hsweb-system/hsweb-system-database-manager/hsweb-system-database-manager-web/pom.xml index 78c460983..de34034b7 100644 --- a/hsweb-system/hsweb-system-database-manager/hsweb-system-database-manager-web/pom.xml +++ b/hsweb-system/hsweb-system-database-manager/hsweb-system-database-manager-web/pom.xml @@ -5,7 +5,7 @@ hsweb-system-database-manager org.hswebframework.web - 3.0.0 + 3.0.1-SNAPSHOT 4.0.0 diff --git a/hsweb-system/hsweb-system-database-manager/pom.xml b/hsweb-system/hsweb-system-database-manager/pom.xml index 3634deffe..b30816663 100644 --- a/hsweb-system/hsweb-system-database-manager/pom.xml +++ b/hsweb-system/hsweb-system-database-manager/pom.xml @@ -5,7 +5,7 @@ hsweb-system org.hswebframework.web - 3.0.0 + 3.0.1-SNAPSHOT 4.0.0 diff --git a/hsweb-system/hsweb-system-datasource/hsweb-system-datasource-api/pom.xml b/hsweb-system/hsweb-system-datasource/hsweb-system-datasource-api/pom.xml index d5eefdd2d..4df3591f1 100644 --- a/hsweb-system/hsweb-system-datasource/hsweb-system-datasource-api/pom.xml +++ b/hsweb-system/hsweb-system-datasource/hsweb-system-datasource-api/pom.xml @@ -5,7 +5,7 @@ hsweb-system-datasource org.hswebframework.web - 3.0.0 + 3.0.1-SNAPSHOT ../pom.xml 4.0.0 diff --git a/hsweb-system/hsweb-system-datasource/hsweb-system-datasource-local/pom.xml b/hsweb-system/hsweb-system-datasource/hsweb-system-datasource-local/pom.xml index 4f3bdf1c7..0bcac46e0 100644 --- a/hsweb-system/hsweb-system-datasource/hsweb-system-datasource-local/pom.xml +++ b/hsweb-system/hsweb-system-datasource/hsweb-system-datasource-local/pom.xml @@ -5,7 +5,7 @@ hsweb-system-datasource org.hswebframework.web - 3.0.0 + 3.0.1-SNAPSHOT ../pom.xml 4.0.0 diff --git a/hsweb-system/hsweb-system-datasource/hsweb-system-datasource-starter/pom.xml b/hsweb-system/hsweb-system-datasource/hsweb-system-datasource-starter/pom.xml index 79028a696..9b105b115 100644 --- a/hsweb-system/hsweb-system-datasource/hsweb-system-datasource-starter/pom.xml +++ b/hsweb-system/hsweb-system-datasource/hsweb-system-datasource-starter/pom.xml @@ -5,7 +5,7 @@ hsweb-system-datasource org.hswebframework.web - 3.0.0 + 3.0.1-SNAPSHOT ../pom.xml 4.0.0 diff --git a/hsweb-system/hsweb-system-datasource/hsweb-system-datasource-web/pom.xml b/hsweb-system/hsweb-system-datasource/hsweb-system-datasource-web/pom.xml index 2739fc5c9..fc8251fd1 100644 --- a/hsweb-system/hsweb-system-datasource/hsweb-system-datasource-web/pom.xml +++ b/hsweb-system/hsweb-system-datasource/hsweb-system-datasource-web/pom.xml @@ -5,7 +5,7 @@ hsweb-system-datasource org.hswebframework.web - 3.0.0 + 3.0.1-SNAPSHOT ../pom.xml 4.0.0 diff --git a/hsweb-system/hsweb-system-datasource/pom.xml b/hsweb-system/hsweb-system-datasource/pom.xml index 0fe872a13..8597d2b8c 100644 --- a/hsweb-system/hsweb-system-datasource/pom.xml +++ b/hsweb-system/hsweb-system-datasource/pom.xml @@ -5,7 +5,7 @@ hsweb-system org.hswebframework.web - 3.0.0 + 3.0.1-SNAPSHOT ../pom.xml diff --git a/hsweb-system/hsweb-system-dev-tools/pom.xml b/hsweb-system/hsweb-system-dev-tools/pom.xml index a00c3e461..28ea70528 100644 --- a/hsweb-system/hsweb-system-dev-tools/pom.xml +++ b/hsweb-system/hsweb-system-dev-tools/pom.xml @@ -5,7 +5,7 @@ hsweb-system org.hswebframework.web - 3.0.0 + 3.0.1-SNAPSHOT 4.0.0 diff --git a/hsweb-system/hsweb-system-dictionary/hsweb-system-dictionary-api/pom.xml b/hsweb-system/hsweb-system-dictionary/hsweb-system-dictionary-api/pom.xml index c99c53fff..e63f75ef7 100644 --- a/hsweb-system/hsweb-system-dictionary/hsweb-system-dictionary-api/pom.xml +++ b/hsweb-system/hsweb-system-dictionary/hsweb-system-dictionary-api/pom.xml @@ -5,7 +5,7 @@ hsweb-system-dictionary org.hswebframework.web - 3.0.0 + 3.0.1-SNAPSHOT 4.0.0 diff --git a/hsweb-system/hsweb-system-dictionary/hsweb-system-dictionary-local/pom.xml b/hsweb-system/hsweb-system-dictionary/hsweb-system-dictionary-local/pom.xml index f94a57287..a35c204f0 100644 --- a/hsweb-system/hsweb-system-dictionary/hsweb-system-dictionary-local/pom.xml +++ b/hsweb-system/hsweb-system-dictionary/hsweb-system-dictionary-local/pom.xml @@ -5,7 +5,7 @@ hsweb-system-dictionary org.hswebframework.web - 3.0.0 + 3.0.1-SNAPSHOT 4.0.0 diff --git a/hsweb-system/hsweb-system-dictionary/hsweb-system-dictionary-starter/pom.xml b/hsweb-system/hsweb-system-dictionary/hsweb-system-dictionary-starter/pom.xml index 5a195a70f..71821d100 100644 --- a/hsweb-system/hsweb-system-dictionary/hsweb-system-dictionary-starter/pom.xml +++ b/hsweb-system/hsweb-system-dictionary/hsweb-system-dictionary-starter/pom.xml @@ -22,7 +22,7 @@ hsweb-system-dictionary org.hswebframework.web - 3.0.0 + 3.0.1-SNAPSHOT 4.0.0 diff --git a/hsweb-system/hsweb-system-dictionary/hsweb-system-dictionary-web/pom.xml b/hsweb-system/hsweb-system-dictionary/hsweb-system-dictionary-web/pom.xml index de69e4efa..9c76b7d0e 100644 --- a/hsweb-system/hsweb-system-dictionary/hsweb-system-dictionary-web/pom.xml +++ b/hsweb-system/hsweb-system-dictionary/hsweb-system-dictionary-web/pom.xml @@ -5,7 +5,7 @@ hsweb-system-dictionary org.hswebframework.web - 3.0.0 + 3.0.1-SNAPSHOT 4.0.0 diff --git a/hsweb-system/hsweb-system-dictionary/pom.xml b/hsweb-system/hsweb-system-dictionary/pom.xml index 248b82645..546a4f0f3 100644 --- a/hsweb-system/hsweb-system-dictionary/pom.xml +++ b/hsweb-system/hsweb-system-dictionary/pom.xml @@ -22,7 +22,7 @@ hsweb-system org.hswebframework.web - 3.0.0 + 3.0.1-SNAPSHOT 4.0.0 diff --git a/hsweb-system/hsweb-system-dynamic-form/hsweb-system-dynamic-form-api/pom.xml b/hsweb-system/hsweb-system-dynamic-form/hsweb-system-dynamic-form-api/pom.xml index 142806cc3..3bee2cde5 100644 --- a/hsweb-system/hsweb-system-dynamic-form/hsweb-system-dynamic-form-api/pom.xml +++ b/hsweb-system/hsweb-system-dynamic-form/hsweb-system-dynamic-form-api/pom.xml @@ -5,7 +5,7 @@ hsweb-system-dynamic-form org.hswebframework.web - 3.0.0 + 3.0.1-SNAPSHOT ../pom.xml 4.0.0 diff --git a/hsweb-system/hsweb-system-dynamic-form/hsweb-system-dynamic-form-local/pom.xml b/hsweb-system/hsweb-system-dynamic-form/hsweb-system-dynamic-form-local/pom.xml index 2223e349b..d484538b7 100644 --- a/hsweb-system/hsweb-system-dynamic-form/hsweb-system-dynamic-form-local/pom.xml +++ b/hsweb-system/hsweb-system-dynamic-form/hsweb-system-dynamic-form-local/pom.xml @@ -5,7 +5,7 @@ hsweb-system-dynamic-form org.hswebframework.web - 3.0.0 + 3.0.1-SNAPSHOT ../pom.xml 4.0.0 diff --git a/hsweb-system/hsweb-system-dynamic-form/hsweb-system-dynamic-form-starter/pom.xml b/hsweb-system/hsweb-system-dynamic-form/hsweb-system-dynamic-form-starter/pom.xml index 625061823..ca029770b 100644 --- a/hsweb-system/hsweb-system-dynamic-form/hsweb-system-dynamic-form-starter/pom.xml +++ b/hsweb-system/hsweb-system-dynamic-form/hsweb-system-dynamic-form-starter/pom.xml @@ -5,7 +5,7 @@ hsweb-system-dynamic-form org.hswebframework.web - 3.0.0 + 3.0.1-SNAPSHOT ../pom.xml 4.0.0 diff --git a/hsweb-system/hsweb-system-dynamic-form/hsweb-system-dynamic-form-web/pom.xml b/hsweb-system/hsweb-system-dynamic-form/hsweb-system-dynamic-form-web/pom.xml index f0b0584b0..aa75fe27e 100644 --- a/hsweb-system/hsweb-system-dynamic-form/hsweb-system-dynamic-form-web/pom.xml +++ b/hsweb-system/hsweb-system-dynamic-form/hsweb-system-dynamic-form-web/pom.xml @@ -5,7 +5,7 @@ hsweb-system-dynamic-form org.hswebframework.web - 3.0.0 + 3.0.1-SNAPSHOT ../pom.xml 4.0.0 diff --git a/hsweb-system/hsweb-system-dynamic-form/pom.xml b/hsweb-system/hsweb-system-dynamic-form/pom.xml index 3a8c54ed9..6d235f8ec 100644 --- a/hsweb-system/hsweb-system-dynamic-form/pom.xml +++ b/hsweb-system/hsweb-system-dynamic-form/pom.xml @@ -5,7 +5,7 @@ hsweb-system org.hswebframework.web - 3.0.0 + 3.0.1-SNAPSHOT ../pom.xml 4.0.0 diff --git a/hsweb-system/hsweb-system-file/hsweb-system-file-api/pom.xml b/hsweb-system/hsweb-system-file/hsweb-system-file-api/pom.xml index 65b46c6ab..c8d6843c5 100644 --- a/hsweb-system/hsweb-system-file/hsweb-system-file-api/pom.xml +++ b/hsweb-system/hsweb-system-file/hsweb-system-file-api/pom.xml @@ -5,7 +5,7 @@ hsweb-system-file org.hswebframework.web - 3.0.0 + 3.0.1-SNAPSHOT ../pom.xml 4.0.0 diff --git a/hsweb-system/hsweb-system-file/hsweb-system-file-local/pom.xml b/hsweb-system/hsweb-system-file/hsweb-system-file-local/pom.xml index 0f7aa87ac..7c18eae82 100644 --- a/hsweb-system/hsweb-system-file/hsweb-system-file-local/pom.xml +++ b/hsweb-system/hsweb-system-file/hsweb-system-file-local/pom.xml @@ -5,7 +5,7 @@ hsweb-system-file org.hswebframework.web - 3.0.0 + 3.0.1-SNAPSHOT ../pom.xml 4.0.0 diff --git a/hsweb-system/hsweb-system-file/hsweb-system-file-oauth2/pom.xml b/hsweb-system/hsweb-system-file/hsweb-system-file-oauth2/pom.xml index 594ec6372..3dff516e2 100644 --- a/hsweb-system/hsweb-system-file/hsweb-system-file-oauth2/pom.xml +++ b/hsweb-system/hsweb-system-file/hsweb-system-file-oauth2/pom.xml @@ -5,7 +5,7 @@ hsweb-system-file org.hswebframework.web - 3.0.0 + 3.0.1-SNAPSHOT ../pom.xml 4.0.0 diff --git a/hsweb-system/hsweb-system-file/hsweb-system-file-starter/pom.xml b/hsweb-system/hsweb-system-file/hsweb-system-file-starter/pom.xml index 62662ef7f..d9ac2905a 100644 --- a/hsweb-system/hsweb-system-file/hsweb-system-file-starter/pom.xml +++ b/hsweb-system/hsweb-system-file/hsweb-system-file-starter/pom.xml @@ -5,7 +5,7 @@ hsweb-system-file org.hswebframework.web - 3.0.0 + 3.0.1-SNAPSHOT ../pom.xml 4.0.0 diff --git a/hsweb-system/hsweb-system-file/hsweb-system-file-web/pom.xml b/hsweb-system/hsweb-system-file/hsweb-system-file-web/pom.xml index a2d898c07..6b7e10d02 100644 --- a/hsweb-system/hsweb-system-file/hsweb-system-file-web/pom.xml +++ b/hsweb-system/hsweb-system-file/hsweb-system-file-web/pom.xml @@ -5,7 +5,7 @@ hsweb-system-file org.hswebframework.web - 3.0.0 + 3.0.1-SNAPSHOT ../pom.xml 4.0.0 diff --git a/hsweb-system/hsweb-system-file/pom.xml b/hsweb-system/hsweb-system-file/pom.xml index 1d6169709..5fdd4c0c4 100644 --- a/hsweb-system/hsweb-system-file/pom.xml +++ b/hsweb-system/hsweb-system-file/pom.xml @@ -5,7 +5,7 @@ hsweb-system org.hswebframework.web - 3.0.0 + 3.0.1-SNAPSHOT 4.0.0 diff --git a/hsweb-system/hsweb-system-oauth2-client/hsweb-system-oauth2-client-api/pom.xml b/hsweb-system/hsweb-system-oauth2-client/hsweb-system-oauth2-client-api/pom.xml index cd1afb139..2875dc6f7 100644 --- a/hsweb-system/hsweb-system-oauth2-client/hsweb-system-oauth2-client-api/pom.xml +++ b/hsweb-system/hsweb-system-oauth2-client/hsweb-system-oauth2-client-api/pom.xml @@ -5,7 +5,7 @@ hsweb-system-oauth2-client org.hswebframework.web - 3.0.0 + 3.0.1-SNAPSHOT 4.0.0 diff --git a/hsweb-system/hsweb-system-oauth2-client/hsweb-system-oauth2-client-local/pom.xml b/hsweb-system/hsweb-system-oauth2-client/hsweb-system-oauth2-client-local/pom.xml index 56851b8bd..a49d559c4 100644 --- a/hsweb-system/hsweb-system-oauth2-client/hsweb-system-oauth2-client-local/pom.xml +++ b/hsweb-system/hsweb-system-oauth2-client/hsweb-system-oauth2-client-local/pom.xml @@ -5,7 +5,7 @@ hsweb-system-oauth2-client org.hswebframework.web - 3.0.0 + 3.0.1-SNAPSHOT 4.0.0 diff --git a/hsweb-system/hsweb-system-oauth2-client/hsweb-system-oauth2-client-starter/pom.xml b/hsweb-system/hsweb-system-oauth2-client/hsweb-system-oauth2-client-starter/pom.xml index 35ab3683b..ef9323b5a 100644 --- a/hsweb-system/hsweb-system-oauth2-client/hsweb-system-oauth2-client-starter/pom.xml +++ b/hsweb-system/hsweb-system-oauth2-client/hsweb-system-oauth2-client-starter/pom.xml @@ -22,7 +22,7 @@ hsweb-system-oauth2-client org.hswebframework.web - 3.0.0 + 3.0.1-SNAPSHOT 4.0.0 diff --git a/hsweb-system/hsweb-system-oauth2-client/hsweb-system-oauth2-client-web/pom.xml b/hsweb-system/hsweb-system-oauth2-client/hsweb-system-oauth2-client-web/pom.xml index 06fa6a9fd..9df9e7076 100644 --- a/hsweb-system/hsweb-system-oauth2-client/hsweb-system-oauth2-client-web/pom.xml +++ b/hsweb-system/hsweb-system-oauth2-client/hsweb-system-oauth2-client-web/pom.xml @@ -5,7 +5,7 @@ hsweb-system-oauth2-client org.hswebframework.web - 3.0.0 + 3.0.1-SNAPSHOT 4.0.0 diff --git a/hsweb-system/hsweb-system-oauth2-client/pom.xml b/hsweb-system/hsweb-system-oauth2-client/pom.xml index b7bcbfedc..71c3aa555 100644 --- a/hsweb-system/hsweb-system-oauth2-client/pom.xml +++ b/hsweb-system/hsweb-system-oauth2-client/pom.xml @@ -23,7 +23,7 @@ hsweb-system org.hswebframework.web - 3.0.0 + 3.0.1-SNAPSHOT 4.0.0 diff --git a/hsweb-system/hsweb-system-oauth2-server/hsweb-system-oauth2-server-local/pom.xml b/hsweb-system/hsweb-system-oauth2-server/hsweb-system-oauth2-server-local/pom.xml index b22beb1ee..078dd7000 100644 --- a/hsweb-system/hsweb-system-oauth2-server/hsweb-system-oauth2-server-local/pom.xml +++ b/hsweb-system/hsweb-system-oauth2-server/hsweb-system-oauth2-server-local/pom.xml @@ -5,7 +5,7 @@ hsweb-system-oauth2-server org.hswebframework.web - 3.0.0 + 3.0.1-SNAPSHOT ../pom.xml 4.0.0 diff --git a/hsweb-system/hsweb-system-oauth2-server/hsweb-system-oauth2-server-starter/pom.xml b/hsweb-system/hsweb-system-oauth2-server/hsweb-system-oauth2-server-starter/pom.xml index 2e1714d90..5ce9fe918 100644 --- a/hsweb-system/hsweb-system-oauth2-server/hsweb-system-oauth2-server-starter/pom.xml +++ b/hsweb-system/hsweb-system-oauth2-server/hsweb-system-oauth2-server-starter/pom.xml @@ -23,7 +23,7 @@ hsweb-system-oauth2-server org.hswebframework.web - 3.0.0 + 3.0.1-SNAPSHOT ../pom.xml 4.0.0 diff --git a/hsweb-system/hsweb-system-oauth2-server/hsweb-system-oauth2-server-web/pom.xml b/hsweb-system/hsweb-system-oauth2-server/hsweb-system-oauth2-server-web/pom.xml index 9fb47d668..dcd61f6d3 100644 --- a/hsweb-system/hsweb-system-oauth2-server/hsweb-system-oauth2-server-web/pom.xml +++ b/hsweb-system/hsweb-system-oauth2-server/hsweb-system-oauth2-server-web/pom.xml @@ -5,7 +5,7 @@ hsweb-system-oauth2-server org.hswebframework.web - 3.0.0 + 3.0.1-SNAPSHOT ../pom.xml 4.0.0 diff --git a/hsweb-system/hsweb-system-oauth2-server/pom.xml b/hsweb-system/hsweb-system-oauth2-server/pom.xml index 2900a97d4..3e3f223bf 100644 --- a/hsweb-system/hsweb-system-oauth2-server/pom.xml +++ b/hsweb-system/hsweb-system-oauth2-server/pom.xml @@ -23,7 +23,7 @@ hsweb-system org.hswebframework.web - 3.0.0 + 3.0.1-SNAPSHOT ../pom.xml 4.0.0 diff --git a/hsweb-system/hsweb-system-organizational/hsweb-system-organizational-api/pom.xml b/hsweb-system/hsweb-system-organizational/hsweb-system-organizational-api/pom.xml index b518f3ed9..32e837bb1 100644 --- a/hsweb-system/hsweb-system-organizational/hsweb-system-organizational-api/pom.xml +++ b/hsweb-system/hsweb-system-organizational/hsweb-system-organizational-api/pom.xml @@ -5,7 +5,7 @@ hsweb-system-organizational org.hswebframework.web - 3.0.0 + 3.0.1-SNAPSHOT 4.0.0 diff --git a/hsweb-system/hsweb-system-organizational/hsweb-system-organizational-authorization/pom.xml b/hsweb-system/hsweb-system-organizational/hsweb-system-organizational-authorization/pom.xml index d2016d6da..e66c128ef 100644 --- a/hsweb-system/hsweb-system-organizational/hsweb-system-organizational-authorization/pom.xml +++ b/hsweb-system/hsweb-system-organizational/hsweb-system-organizational-authorization/pom.xml @@ -5,7 +5,7 @@ hsweb-system-organizational org.hswebframework.web - 3.0.0 + 3.0.1-SNAPSHOT 4.0.0 diff --git a/hsweb-system/hsweb-system-organizational/hsweb-system-organizational-local/pom.xml b/hsweb-system/hsweb-system-organizational/hsweb-system-organizational-local/pom.xml index 9b1cef23d..04497ad72 100644 --- a/hsweb-system/hsweb-system-organizational/hsweb-system-organizational-local/pom.xml +++ b/hsweb-system/hsweb-system-organizational/hsweb-system-organizational-local/pom.xml @@ -5,7 +5,7 @@ hsweb-system-organizational org.hswebframework.web - 3.0.0 + 3.0.1-SNAPSHOT 4.0.0 diff --git a/hsweb-system/hsweb-system-organizational/hsweb-system-organizational-starter/pom.xml b/hsweb-system/hsweb-system-organizational/hsweb-system-organizational-starter/pom.xml index 502612f1f..e60f72d0b 100644 --- a/hsweb-system/hsweb-system-organizational/hsweb-system-organizational-starter/pom.xml +++ b/hsweb-system/hsweb-system-organizational/hsweb-system-organizational-starter/pom.xml @@ -22,7 +22,7 @@ hsweb-system-organizational org.hswebframework.web - 3.0.0 + 3.0.1-SNAPSHOT 4.0.0 diff --git a/hsweb-system/hsweb-system-organizational/hsweb-system-organizational-web/pom.xml b/hsweb-system/hsweb-system-organizational/hsweb-system-organizational-web/pom.xml index b48a392d4..3ad306bd6 100644 --- a/hsweb-system/hsweb-system-organizational/hsweb-system-organizational-web/pom.xml +++ b/hsweb-system/hsweb-system-organizational/hsweb-system-organizational-web/pom.xml @@ -5,7 +5,7 @@ hsweb-system-organizational org.hswebframework.web - 3.0.0 + 3.0.1-SNAPSHOT 4.0.0 diff --git a/hsweb-system/hsweb-system-organizational/pom.xml b/hsweb-system/hsweb-system-organizational/pom.xml index 4bc57f901..f0934888b 100644 --- a/hsweb-system/hsweb-system-organizational/pom.xml +++ b/hsweb-system/hsweb-system-organizational/pom.xml @@ -22,7 +22,7 @@ hsweb-system org.hswebframework.web - 3.0.0 + 3.0.1-SNAPSHOT 4.0.0 diff --git a/hsweb-system/hsweb-system-schedule/hsweb-system-schedule-api/pom.xml b/hsweb-system/hsweb-system-schedule/hsweb-system-schedule-api/pom.xml index 9f59ebc36..eded6b922 100644 --- a/hsweb-system/hsweb-system-schedule/hsweb-system-schedule-api/pom.xml +++ b/hsweb-system/hsweb-system-schedule/hsweb-system-schedule-api/pom.xml @@ -5,7 +5,7 @@ hsweb-system-schedule org.hswebframework.web - 3.0.0 + 3.0.1-SNAPSHOT 4.0.0 diff --git a/hsweb-system/hsweb-system-schedule/hsweb-system-schedule-local/pom.xml b/hsweb-system/hsweb-system-schedule/hsweb-system-schedule-local/pom.xml index b3ec9ed4f..7b07481d1 100644 --- a/hsweb-system/hsweb-system-schedule/hsweb-system-schedule-local/pom.xml +++ b/hsweb-system/hsweb-system-schedule/hsweb-system-schedule-local/pom.xml @@ -5,7 +5,7 @@ hsweb-system-schedule org.hswebframework.web - 3.0.0 + 3.0.1-SNAPSHOT ../pom.xml 4.0.0 diff --git a/hsweb-system/hsweb-system-schedule/hsweb-system-schedule-starter/pom.xml b/hsweb-system/hsweb-system-schedule/hsweb-system-schedule-starter/pom.xml index 24e713704..ddd201875 100644 --- a/hsweb-system/hsweb-system-schedule/hsweb-system-schedule-starter/pom.xml +++ b/hsweb-system/hsweb-system-schedule/hsweb-system-schedule-starter/pom.xml @@ -5,7 +5,7 @@ hsweb-system-schedule org.hswebframework.web - 3.0.0 + 3.0.1-SNAPSHOT 4.0.0 diff --git a/hsweb-system/hsweb-system-schedule/hsweb-system-schedule-web/pom.xml b/hsweb-system/hsweb-system-schedule/hsweb-system-schedule-web/pom.xml index 0aa94cfe9..5d0805be6 100644 --- a/hsweb-system/hsweb-system-schedule/hsweb-system-schedule-web/pom.xml +++ b/hsweb-system/hsweb-system-schedule/hsweb-system-schedule-web/pom.xml @@ -5,7 +5,7 @@ hsweb-system-schedule org.hswebframework.web - 3.0.0 + 3.0.1-SNAPSHOT 4.0.0 diff --git a/hsweb-system/hsweb-system-schedule/pom.xml b/hsweb-system/hsweb-system-schedule/pom.xml index 1fe2bfeb4..26753b539 100644 --- a/hsweb-system/hsweb-system-schedule/pom.xml +++ b/hsweb-system/hsweb-system-schedule/pom.xml @@ -5,7 +5,7 @@ hsweb-system org.hswebframework.web - 3.0.0 + 3.0.1-SNAPSHOT 4.0.0 pom diff --git a/hsweb-system/hsweb-system-script/hsweb-system-script-api/pom.xml b/hsweb-system/hsweb-system-script/hsweb-system-script-api/pom.xml index 3f4a6f13b..e21fb61d1 100644 --- a/hsweb-system/hsweb-system-script/hsweb-system-script-api/pom.xml +++ b/hsweb-system/hsweb-system-script/hsweb-system-script-api/pom.xml @@ -5,7 +5,7 @@ hsweb-system-script org.hswebframework.web - 3.0.0 + 3.0.1-SNAPSHOT 4.0.0 diff --git a/hsweb-system/hsweb-system-script/hsweb-system-script-local/pom.xml b/hsweb-system/hsweb-system-script/hsweb-system-script-local/pom.xml index ed08f8043..9507314b4 100644 --- a/hsweb-system/hsweb-system-script/hsweb-system-script-local/pom.xml +++ b/hsweb-system/hsweb-system-script/hsweb-system-script-local/pom.xml @@ -5,7 +5,7 @@ hsweb-system-script org.hswebframework.web - 3.0.0 + 3.0.1-SNAPSHOT 4.0.0 diff --git a/hsweb-system/hsweb-system-script/hsweb-system-script-starter/pom.xml b/hsweb-system/hsweb-system-script/hsweb-system-script-starter/pom.xml index 46bb9a46b..b635d3882 100644 --- a/hsweb-system/hsweb-system-script/hsweb-system-script-starter/pom.xml +++ b/hsweb-system/hsweb-system-script/hsweb-system-script-starter/pom.xml @@ -5,7 +5,7 @@ hsweb-system-script org.hswebframework.web - 3.0.0 + 3.0.1-SNAPSHOT 4.0.0 diff --git a/hsweb-system/hsweb-system-script/hsweb-system-script-web/pom.xml b/hsweb-system/hsweb-system-script/hsweb-system-script-web/pom.xml index 0e19e4d0e..0a7591959 100644 --- a/hsweb-system/hsweb-system-script/hsweb-system-script-web/pom.xml +++ b/hsweb-system/hsweb-system-script/hsweb-system-script-web/pom.xml @@ -5,7 +5,7 @@ hsweb-system-script org.hswebframework.web - 3.0.0 + 3.0.1-SNAPSHOT 4.0.0 diff --git a/hsweb-system/hsweb-system-script/pom.xml b/hsweb-system/hsweb-system-script/pom.xml index 72b68ebb8..b0e11eae2 100644 --- a/hsweb-system/hsweb-system-script/pom.xml +++ b/hsweb-system/hsweb-system-script/pom.xml @@ -5,7 +5,7 @@ hsweb-system org.hswebframework.web - 3.0.0 + 3.0.1-SNAPSHOT 4.0.0 diff --git a/hsweb-system/hsweb-system-template/hsweb-system-template-api/pom.xml b/hsweb-system/hsweb-system-template/hsweb-system-template-api/pom.xml index 96612295c..4a7e7defc 100644 --- a/hsweb-system/hsweb-system-template/hsweb-system-template-api/pom.xml +++ b/hsweb-system/hsweb-system-template/hsweb-system-template-api/pom.xml @@ -5,7 +5,7 @@ hsweb-system-template org.hswebframework.web - 3.0.0 + 3.0.1-SNAPSHOT 4.0.0 diff --git a/hsweb-system/hsweb-system-template/hsweb-system-template-local/pom.xml b/hsweb-system/hsweb-system-template/hsweb-system-template-local/pom.xml index b3d6736a7..69b171fe8 100644 --- a/hsweb-system/hsweb-system-template/hsweb-system-template-local/pom.xml +++ b/hsweb-system/hsweb-system-template/hsweb-system-template-local/pom.xml @@ -5,7 +5,7 @@ hsweb-system-template org.hswebframework.web - 3.0.0 + 3.0.1-SNAPSHOT 4.0.0 diff --git a/hsweb-system/hsweb-system-template/hsweb-system-template-starter/pom.xml b/hsweb-system/hsweb-system-template/hsweb-system-template-starter/pom.xml index 1b6316212..cb6b940cd 100644 --- a/hsweb-system/hsweb-system-template/hsweb-system-template-starter/pom.xml +++ b/hsweb-system/hsweb-system-template/hsweb-system-template-starter/pom.xml @@ -5,7 +5,7 @@ hsweb-system-template org.hswebframework.web - 3.0.0 + 3.0.1-SNAPSHOT 4.0.0 diff --git a/hsweb-system/hsweb-system-template/hsweb-system-template-web/pom.xml b/hsweb-system/hsweb-system-template/hsweb-system-template-web/pom.xml index 1df9def3a..78443c30c 100644 --- a/hsweb-system/hsweb-system-template/hsweb-system-template-web/pom.xml +++ b/hsweb-system/hsweb-system-template/hsweb-system-template-web/pom.xml @@ -5,7 +5,7 @@ hsweb-system-template org.hswebframework.web - 3.0.0 + 3.0.1-SNAPSHOT 4.0.0 diff --git a/hsweb-system/hsweb-system-template/pom.xml b/hsweb-system/hsweb-system-template/pom.xml index ccae7454b..a85c82e43 100644 --- a/hsweb-system/hsweb-system-template/pom.xml +++ b/hsweb-system/hsweb-system-template/pom.xml @@ -5,7 +5,7 @@ hsweb-system org.hswebframework.web - 3.0.0 + 3.0.1-SNAPSHOT 4.0.0 diff --git a/hsweb-system/hsweb-system-workflow/hsweb-system-workflow-local/pom.xml b/hsweb-system/hsweb-system-workflow/hsweb-system-workflow-local/pom.xml index 0a23160ca..dc777bae4 100644 --- a/hsweb-system/hsweb-system-workflow/hsweb-system-workflow-local/pom.xml +++ b/hsweb-system/hsweb-system-workflow/hsweb-system-workflow-local/pom.xml @@ -5,7 +5,7 @@ hsweb-system-workflow org.hswebframework.web - 3.0.0 + 3.0.1-SNAPSHOT ../pom.xml 4.0.0 diff --git a/hsweb-system/hsweb-system-workflow/hsweb-system-workflow-starter/pom.xml b/hsweb-system/hsweb-system-workflow/hsweb-system-workflow-starter/pom.xml index 7ab6313d6..189312839 100644 --- a/hsweb-system/hsweb-system-workflow/hsweb-system-workflow-starter/pom.xml +++ b/hsweb-system/hsweb-system-workflow/hsweb-system-workflow-starter/pom.xml @@ -5,7 +5,7 @@ hsweb-system-workflow org.hswebframework.web - 3.0.0 + 3.0.1-SNAPSHOT ../pom.xml 4.0.0 diff --git a/hsweb-system/hsweb-system-workflow/pom.xml b/hsweb-system/hsweb-system-workflow/pom.xml index 2b7d73cd5..9f22bcb5d 100644 --- a/hsweb-system/hsweb-system-workflow/pom.xml +++ b/hsweb-system/hsweb-system-workflow/pom.xml @@ -5,7 +5,7 @@ hsweb-system org.hswebframework.web - 3.0.0 + 3.0.1-SNAPSHOT ../pom.xml 4.0.0 diff --git a/hsweb-system/pom.xml b/hsweb-system/pom.xml index f806b363c..faf779cd9 100644 --- a/hsweb-system/pom.xml +++ b/hsweb-system/pom.xml @@ -5,7 +5,7 @@ hsweb-framework org.hswebframework.web - 3.0.0 + 3.0.1-SNAPSHOT ../pom.xml 4.0.0 diff --git a/hsweb-tests/pom.xml b/hsweb-tests/pom.xml index 4b756c32a..6d27b43a2 100644 --- a/hsweb-tests/pom.xml +++ b/hsweb-tests/pom.xml @@ -5,7 +5,7 @@ hsweb-framework org.hswebframework.web - 3.0.0 + 3.0.1-SNAPSHOT 4.0.0 diff --git a/hsweb-thirdparty/hsweb-thirdparty-ueditor/pom.xml b/hsweb-thirdparty/hsweb-thirdparty-ueditor/pom.xml index 9f5f0be58..adaefc53b 100644 --- a/hsweb-thirdparty/hsweb-thirdparty-ueditor/pom.xml +++ b/hsweb-thirdparty/hsweb-thirdparty-ueditor/pom.xml @@ -5,7 +5,7 @@ hsweb-thirdparty org.hswebframework.web - 3.0.0 + 3.0.1-SNAPSHOT ../pom.xml 4.0.0 diff --git a/hsweb-thirdparty/pom.xml b/hsweb-thirdparty/pom.xml index 4f504ffd2..4ae440209 100644 --- a/hsweb-thirdparty/pom.xml +++ b/hsweb-thirdparty/pom.xml @@ -5,7 +5,7 @@ hsweb-framework org.hswebframework.web - 3.0.0 + 3.0.1-SNAPSHOT 4.0.0 diff --git a/pom.xml b/pom.xml index a698e6c12..f7e0bc823 100644 --- a/pom.xml +++ b/pom.xml @@ -24,7 +24,7 @@ org.hswebframework.web hsweb-framework - 3.0.0 + 3.0.1-SNAPSHOT hsweb-starter hsweb-core From 8a1c4bc3dbefa3489fc366ab7a1054a8708b7b80 Mon Sep 17 00:00:00 2001 From: zhouhao Date: Fri, 21 Sep 2018 17:13:23 +0800 Subject: [PATCH 03/18] =?UTF-8?q?=E4=BC=98=E5=8C=96basic=E6=8E=88=E6=9D=83?= =?UTF-8?q?=E7=BB=93=E6=9E=84?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../AuthorizingHandlerAutoConfiguration.java | 13 ++++++++++ .../BasicAuthorizationTokenParser.java | 22 ++++++++-------- .../AuthorizationAutoConfiguration.java | 2 +- .../BasicAuthorizationConfiguration.java | 25 ------------------- 4 files changed, 26 insertions(+), 36 deletions(-) rename {hsweb-system/hsweb-system-authorization/hsweb-system-authorization-starter/src/main/java/org/hswebframework/web/authorization/starter => hsweb-authorization/hsweb-authorization-basic/src/main/java/org/hswebframework/web/authorization/basic/configuration}/BasicAuthorizationTokenParser.java (75%) delete mode 100644 hsweb-system/hsweb-system-authorization/hsweb-system-authorization-starter/src/main/java/org/hswebframework/web/authorization/starter/BasicAuthorizationConfiguration.java diff --git a/hsweb-authorization/hsweb-authorization-basic/src/main/java/org/hswebframework/web/authorization/basic/configuration/AuthorizingHandlerAutoConfiguration.java b/hsweb-authorization/hsweb-authorization-basic/src/main/java/org/hswebframework/web/authorization/basic/configuration/AuthorizingHandlerAutoConfiguration.java index c4b65155d..4deacff3d 100644 --- a/hsweb-authorization/hsweb-authorization-basic/src/main/java/org/hswebframework/web/authorization/basic/configuration/AuthorizingHandlerAutoConfiguration.java +++ b/hsweb-authorization/hsweb-authorization-basic/src/main/java/org/hswebframework/web/authorization/basic/configuration/AuthorizingHandlerAutoConfiguration.java @@ -12,6 +12,7 @@ import org.hswebframework.web.authorization.basic.web.session.UserTokenAutoExpir import org.hswebframework.web.authorization.token.UserTokenManager; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.config.BeanPostProcessor; +import org.springframework.boot.autoconfigure.condition.ConditionalOnClass; import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean; import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingClass; import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty; @@ -119,4 +120,16 @@ public class AuthorizingHandlerAutoConfiguration { return bean; } } + + @Configuration + @ConditionalOnProperty(prefix = "hsweb.authorize", name = "basic-authorization", havingValue = "true") + @ConditionalOnClass(UserTokenForTypeParser.class) + public static class BasicAuthorizationConfiguration { + @Bean + public BasicAuthorizationTokenParser basicAuthorizationTokenParser(AuthenticationManager authenticationManager, + UserTokenManager tokenManager) { + return new BasicAuthorizationTokenParser(authenticationManager, tokenManager); + } + + } } diff --git a/hsweb-system/hsweb-system-authorization/hsweb-system-authorization-starter/src/main/java/org/hswebframework/web/authorization/starter/BasicAuthorizationTokenParser.java b/hsweb-authorization/hsweb-authorization-basic/src/main/java/org/hswebframework/web/authorization/basic/configuration/BasicAuthorizationTokenParser.java similarity index 75% rename from hsweb-system/hsweb-system-authorization/hsweb-system-authorization-starter/src/main/java/org/hswebframework/web/authorization/starter/BasicAuthorizationTokenParser.java rename to hsweb-authorization/hsweb-authorization-basic/src/main/java/org/hswebframework/web/authorization/basic/configuration/BasicAuthorizationTokenParser.java index 741330db8..a300db27a 100644 --- a/hsweb-system/hsweb-system-authorization/hsweb-system-authorization-starter/src/main/java/org/hswebframework/web/authorization/starter/BasicAuthorizationTokenParser.java +++ b/hsweb-authorization/hsweb-authorization-basic/src/main/java/org/hswebframework/web/authorization/basic/configuration/BasicAuthorizationTokenParser.java @@ -1,18 +1,20 @@ -package org.hswebframework.web.authorization.starter; +package org.hswebframework.web.authorization.basic.configuration; + import org.apache.commons.codec.binary.Base64; +import org.hswebframework.web.authorization.Authentication; +import org.hswebframework.web.authorization.AuthenticationManager; import org.hswebframework.web.authorization.basic.web.AuthorizedToken; import org.hswebframework.web.authorization.basic.web.ParsedToken; import org.hswebframework.web.authorization.basic.web.UserTokenForTypeParser; +import org.hswebframework.web.authorization.simple.PlainTextUsernamePasswordAuthenticationRequest; import org.hswebframework.web.authorization.token.UserToken; import org.hswebframework.web.authorization.token.UserTokenManager; -import org.hswebframework.web.entity.authorization.UserEntity; -import org.hswebframework.web.service.authorization.UserService; import javax.servlet.http.HttpServletRequest; public class BasicAuthorizationTokenParser implements UserTokenForTypeParser { - private UserService userService; + private AuthenticationManager authenticationManager; private UserTokenManager userTokenManager; @@ -21,8 +23,8 @@ public class BasicAuthorizationTokenParser implements UserTokenForTypeParser { return "basic"; } - public BasicAuthorizationTokenParser(UserService userService, UserTokenManager userTokenManager) { - this.userService = userService; + public BasicAuthorizationTokenParser(AuthenticationManager authenticationManager, UserTokenManager userTokenManager) { + this.authenticationManager = authenticationManager; this.userTokenManager = userTokenManager; } @@ -56,12 +58,12 @@ public class BasicAuthorizationTokenParser implements UserTokenForTypeParser { } if (usernameAndPassword.contains(":")) { String[] arr = usernameAndPassword.split("[:]"); - UserEntity user = userService.selectByUserNameAndPassword(arr[0], arr[1]); - if (user != null) { + Authentication authentication = authenticationManager.authenticate(new PlainTextUsernamePasswordAuthenticationRequest(arr[0], arr[1])); + if (authentication != null) { return new AuthorizedToken() { @Override public String getUserId() { - return user.getId(); + return authentication.getUser().getId(); } @Override @@ -77,7 +79,7 @@ public class BasicAuthorizationTokenParser implements UserTokenForTypeParser { @Override public long getMaxInactiveInterval() { //60分钟有效期 - return 60*60*1000L; + return 60 * 60 * 1000L; } }; } diff --git a/hsweb-system/hsweb-system-authorization/hsweb-system-authorization-starter/src/main/java/org/hswebframework/web/authorization/starter/AuthorizationAutoConfiguration.java b/hsweb-system/hsweb-system-authorization/hsweb-system-authorization-starter/src/main/java/org/hswebframework/web/authorization/starter/AuthorizationAutoConfiguration.java index cd478f14a..84a5b62af 100644 --- a/hsweb-system/hsweb-system-authorization/hsweb-system-authorization-starter/src/main/java/org/hswebframework/web/authorization/starter/AuthorizationAutoConfiguration.java +++ b/hsweb-system/hsweb-system-authorization/hsweb-system-authorization-starter/src/main/java/org/hswebframework/web/authorization/starter/AuthorizationAutoConfiguration.java @@ -20,11 +20,11 @@ package org.hswebframework.web.authorization.starter; import org.hswebframework.web.authorization.AuthenticationInitializeService; import org.hswebframework.web.authorization.AuthenticationManager; +import org.hswebframework.web.authorization.basic.configuration.BasicAuthorizationConfiguration; import org.hswebframework.web.authorization.simple.DefaultAuthorizationAutoConfiguration; import org.hswebframework.web.service.authorization.simple.SimpleAuthenticationManager; import org.mybatis.spring.annotation.MapperScan; import org.springframework.boot.autoconfigure.AutoConfigureBefore; -import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean; import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.ComponentScan; diff --git a/hsweb-system/hsweb-system-authorization/hsweb-system-authorization-starter/src/main/java/org/hswebframework/web/authorization/starter/BasicAuthorizationConfiguration.java b/hsweb-system/hsweb-system-authorization/hsweb-system-authorization-starter/src/main/java/org/hswebframework/web/authorization/starter/BasicAuthorizationConfiguration.java deleted file mode 100644 index 708dee3fc..000000000 --- a/hsweb-system/hsweb-system-authorization/hsweb-system-authorization-starter/src/main/java/org/hswebframework/web/authorization/starter/BasicAuthorizationConfiguration.java +++ /dev/null @@ -1,25 +0,0 @@ -package org.hswebframework.web.authorization.starter; - -import org.hswebframework.web.authorization.basic.web.UserTokenForTypeParser; -import org.hswebframework.web.authorization.token.UserTokenManager; -import org.hswebframework.web.service.authorization.UserService; -import org.springframework.boot.autoconfigure.condition.ConditionalOnClass; -import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty; -import org.springframework.context.annotation.Bean; -import org.springframework.context.annotation.Configuration; - -/** - * @author zhouhao - * @since 3.0 - */ -@Configuration -@ConditionalOnProperty(prefix = "hsweb.authorize", name = "basic-authorization", havingValue = "true") -@ConditionalOnClass(UserTokenForTypeParser.class) -public class BasicAuthorizationConfiguration { - - @Bean - public BasicAuthorizationTokenParser basicAuthorizationTokenParser(UserService userService, UserTokenManager tokenManager) { - return new BasicAuthorizationTokenParser(userService, tokenManager); - } - -} From 7bc521f1829e56a1d566e50590e441b66f84e31b Mon Sep 17 00:00:00 2001 From: zhouhao Date: Tue, 25 Sep 2018 10:04:18 +0800 Subject: [PATCH 04/18] =?UTF-8?q?=E5=A2=9E=E5=8A=A0=E4=BA=86=E5=85=B3?= =?UTF-8?q?=E9=97=AD=E7=B3=BB=E7=BB=9F=E5=88=9D=E5=A7=8B=E5=8C=96=E7=9A=84?= =?UTF-8?q?=E5=8A=9F=E8=83=BD,=E5=8F=AF=E4=BB=A5=E9=80=9A=E8=BF=87?= =?UTF-8?q?=E8=AE=BE=E7=BD=AEhsweb.app.auto-init=3Dfalse=E6=9D=A5=E5=85=B3?= =?UTF-8?q?=E9=97=AD=E5=90=AF=E5=8A=A8=E6=97=B6=E8=87=AA=E5=8A=A8=E5=88=9D?= =?UTF-8?q?=E5=A7=8B=E5=8C=96.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../web/starter/AppProperties.java | 38 +++---------------- .../SystemInitializeAutoConfiguration.java | 9 ++++- 2 files changed, 14 insertions(+), 33 deletions(-) diff --git a/hsweb-starter/hsweb-spring-boot-starter/src/main/java/org/hswebframework/web/starter/AppProperties.java b/hsweb-starter/hsweb-spring-boot-starter/src/main/java/org/hswebframework/web/starter/AppProperties.java index d2c4658aa..122553730 100644 --- a/hsweb-starter/hsweb-spring-boot-starter/src/main/java/org/hswebframework/web/starter/AppProperties.java +++ b/hsweb-starter/hsweb-spring-boot-starter/src/main/java/org/hswebframework/web/starter/AppProperties.java @@ -18,13 +18,19 @@ package org.hswebframework.web.starter; +import lombok.Getter; +import lombok.Setter; import org.springframework.boot.context.properties.ConfigurationProperties; /** * @author zhouhao */ @ConfigurationProperties(prefix = "hsweb.app") +@Getter +@Setter public class AppProperties { + private boolean autoInit = true; + private String name; private String comment; private String website; @@ -38,36 +44,4 @@ public class AppProperties { systemVersion.setVersion(version); return systemVersion; } - - public String getName() { - return name; - } - - public void setName(String name) { - this.name = name; - } - - public String getComment() { - return comment; - } - - public void setComment(String comment) { - this.comment = comment; - } - - public String getWebsite() { - return website; - } - - public void setWebsite(String website) { - this.website = website; - } - - public String getVersion() { - return version; - } - - public void setVersion(String version) { - this.version = version; - } } diff --git a/hsweb-starter/hsweb-spring-boot-starter/src/main/java/org/hswebframework/web/starter/SystemInitializeAutoConfiguration.java b/hsweb-starter/hsweb-spring-boot-starter/src/main/java/org/hswebframework/web/starter/SystemInitializeAutoConfiguration.java index 39e12dfe1..a3edfdeab 100644 --- a/hsweb-starter/hsweb-spring-boot-starter/src/main/java/org/hswebframework/web/starter/SystemInitializeAutoConfiguration.java +++ b/hsweb-starter/hsweb-spring-boot-starter/src/main/java/org/hswebframework/web/starter/SystemInitializeAutoConfiguration.java @@ -18,6 +18,7 @@ package org.hswebframework.web.starter; +import lombok.extern.slf4j.Slf4j; import org.hswebframework.ezorm.rdb.executor.SqlExecutor; import org.hswebframework.ezorm.rdb.meta.RDBDatabaseMetaData; import org.hswebframework.ezorm.rdb.meta.parser.H2TableMetaParser; @@ -63,6 +64,7 @@ import java.util.stream.Stream; @Configuration @EnableConfigurationProperties(AppProperties.class) @Order(Ordered.HIGHEST_PRECEDENCE) +@Slf4j public class SystemInitializeAutoConfiguration implements CommandLineRunner, BeanPostProcessor { @Autowired @@ -107,9 +109,14 @@ public class SystemInitializeAutoConfiguration implements CommandLineRunner, Bea @Override public void run(String... args) throws Exception { + + if (!appProperties.isAutoInit()) { + log.debug("app auto init is disabled"); + return; + } DatabaseType type = DataSourceHolder.currentDatabaseType(); SystemVersion version = appProperties.build(); - if(version.getName()==null){ + if (version.getName() == null) { version.setName("unknown"); } Connection connection = null; From e63cb07adf38f2b51abb15de8d191159fb239af3 Mon Sep 17 00:00:00 2001 From: zhouhao Date: Tue, 25 Sep 2018 10:07:24 +0800 Subject: [PATCH 05/18] =?UTF-8?q?=E5=A2=9E=E5=8A=A0starter=E7=9A=84?= =?UTF-8?q?=E8=AF=B4=E6=98=8E?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../hsweb-spring-boot-starter/README.md | 30 +++++++++++++++++++ 1 file changed, 30 insertions(+) create mode 100644 hsweb-starter/hsweb-spring-boot-starter/README.md diff --git a/hsweb-starter/hsweb-spring-boot-starter/README.md b/hsweb-starter/hsweb-spring-boot-starter/README.md new file mode 100644 index 000000000..d683db30f --- /dev/null +++ b/hsweb-starter/hsweb-spring-boot-starter/README.md @@ -0,0 +1,30 @@ +# 应用基本信息配置 + +```yaml +hsweb: + app: + name: my-application + comment: 我的应用 + version: 1.0.0 + auto-init: true # 启动服务时进行初始化(执行classpath*:/hsweb-starter.js) +``` + +# 跨域设置 +修改application.yml +```yaml +hsweb: + cors: + enable: true + allowed-headers: "*" + allowed-methods: "*" + allowed-origins: "*" + allow-credentials: true + max-age: 14400 +``` + +# json序列化配置 + +```yaml +fastjson: + features: WriteNullListAsEmpty,WriteNullNumberAsZero,WriteNullBooleanAsFalse +``` From 570dc15025eaa213c59a41aa7f0c289e36194277 Mon Sep 17 00:00:00 2001 From: zhouhao Date: Tue, 25 Sep 2018 10:37:27 +0800 Subject: [PATCH 06/18] =?UTF-8?q?=E5=A2=9E=E5=8A=A0=E9=85=8D=E7=BD=AE?= =?UTF-8?q?=E6=96=87=E4=BB=B6=E9=85=8D=E7=BD=AE=E7=94=A8=E6=88=B7=E6=9D=83?= =?UTF-8?q?=E9=99=90=E6=96=B9=E5=BC=8F,=E5=8F=AF=E9=80=9A=E8=BF=87:=20hswe?= =?UTF-8?q?b.users.userId.permissions-simple.permissionId:=20action1,actio?= =?UTF-8?q?n2=20=E6=96=B9=E5=BC=8F=E8=BF=9B=E8=A1=8C=E9=85=8D=E7=BD=AE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../basic/embed/EmbedAuthenticationManager.java | 3 +++ .../embed/EmbedAuthenticationProperties.java | 17 +++++++++++++++-- .../embed/EmbedAuthenticationManagerTest.groovy | 1 + .../src/test/resources/application.yml | 2 ++ 4 files changed, 21 insertions(+), 2 deletions(-) diff --git a/hsweb-authorization/hsweb-authorization-basic/src/main/java/org/hswebframework/web/authorization/basic/embed/EmbedAuthenticationManager.java b/hsweb-authorization/hsweb-authorization-basic/src/main/java/org/hswebframework/web/authorization/basic/embed/EmbedAuthenticationManager.java index 86f34fd7d..f691011ad 100644 --- a/hsweb-authorization/hsweb-authorization-basic/src/main/java/org/hswebframework/web/authorization/basic/embed/EmbedAuthenticationManager.java +++ b/hsweb-authorization/hsweb-authorization-basic/src/main/java/org/hswebframework/web/authorization/basic/embed/EmbedAuthenticationManager.java @@ -11,6 +11,8 @@ import org.hswebframework.web.authorization.simple.builder.SimpleDataAccessConfi import org.hswebframework.web.validate.ValidationException; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.boot.context.properties.ConfigurationProperties; +import org.springframework.core.Ordered; +import org.springframework.core.annotation.Order; import org.springframework.util.StringUtils; import javax.annotation.PostConstruct; @@ -22,6 +24,7 @@ import java.util.Map; * @since 3.0.0-RC */ @ConfigurationProperties(prefix = "hsweb") +@Order(Ordered.HIGHEST_PRECEDENCE) public class EmbedAuthenticationManager implements AuthenticationManager { private Map authentications = new HashMap<>(); diff --git a/hsweb-authorization/hsweb-authorization-basic/src/main/java/org/hswebframework/web/authorization/basic/embed/EmbedAuthenticationProperties.java b/hsweb-authorization/hsweb-authorization-basic/src/main/java/org/hswebframework/web/authorization/basic/embed/EmbedAuthenticationProperties.java index 28bc188b8..eeb7f0f43 100644 --- a/hsweb-authorization/hsweb-authorization-basic/src/main/java/org/hswebframework/web/authorization/basic/embed/EmbedAuthenticationProperties.java +++ b/hsweb-authorization/hsweb-authorization-basic/src/main/java/org/hswebframework/web/authorization/basic/embed/EmbedAuthenticationProperties.java @@ -58,6 +58,8 @@ public class EmbedAuthenticationProperties { private List permissions = new ArrayList<>(); + private Map> permissionsSimple = new HashMap<>(); + @Getter @Setter public static class PermissionInfo { @@ -77,7 +79,9 @@ public class EmbedAuthenticationProperties { user.setType(type); authentication.setUser(user); authentication.setRoles((List) roles); - List permissionList = permissions.stream() + List permissionList = new ArrayList<>(); + + permissionList.addAll(permissions.stream() .map(info -> { SimplePermission permission = new SimplePermission(); permission.setId(info.getId()); @@ -88,7 +92,16 @@ public class EmbedAuthenticationProperties { .build()).collect(Collectors.toSet())); return permission; - }).collect(Collectors.toList()); + }) + .collect(Collectors.toList())); + + permissionList.addAll(permissionsSimple.entrySet().stream() + .map(entry -> { + SimplePermission permission = new SimplePermission(); + permission.setId(entry.getKey()); + permission.setActions(new HashSet<>(entry.getValue())); + return permission; + }).collect(Collectors.toList())); authentication.setPermissions(permissionList); return authentication; diff --git a/hsweb-authorization/hsweb-authorization-basic/src/test/java/org/hswebframework/web/authorization/basic/embed/EmbedAuthenticationManagerTest.groovy b/hsweb-authorization/hsweb-authorization-basic/src/test/java/org/hswebframework/web/authorization/basic/embed/EmbedAuthenticationManagerTest.groovy index 39921eab4..c81e7cc4d 100644 --- a/hsweb-authorization/hsweb-authorization-basic/src/test/java/org/hswebframework/web/authorization/basic/embed/EmbedAuthenticationManagerTest.groovy +++ b/hsweb-authorization/hsweb-authorization-basic/src/test/java/org/hswebframework/web/authorization/basic/embed/EmbedAuthenticationManagerTest.groovy @@ -30,6 +30,7 @@ class EmbedAuthenticationManagerTest extends Specification { authentication.getUser() != null authentication.getUser().getName() == "超级管理员" authentication.hasPermission("user-manager", "query") + authentication.hasPermission("test", "query") authentication.getPermission("user-manager") != null authentication.hasRole("user") authentication.getPermission("user-manager") diff --git a/hsweb-authorization/hsweb-authorization-basic/src/test/resources/application.yml b/hsweb-authorization/hsweb-authorization-basic/src/test/resources/application.yml index 6a69af19a..6869b9210 100644 --- a/hsweb-authorization/hsweb-authorization-basic/src/test/resources/application.yml +++ b/hsweb-authorization/hsweb-authorization-basic/src/test/resources/application.yml @@ -25,6 +25,8 @@ hsweb: name: 管理员 - id: user name: 用户 + permissions-simple: + test: query,get permissions: - id: user-manager actions: query,get,update,delete From d4b65c8011a5c534aa570ce154d8a9706396e391 Mon Sep 17 00:00:00 2001 From: zhouhao Date: Tue, 25 Sep 2018 10:52:52 +0800 Subject: [PATCH 07/18] =?UTF-8?q?=E4=BC=98=E5=8C=96=E6=9D=83=E9=99=90?= =?UTF-8?q?=E9=85=8D=E7=BD=AE=E9=80=BB=E8=BE=91,=E5=9C=A8=E6=94=AF?= =?UTF-8?q?=E6=8C=81=E6=95=B0=E6=8D=AE=E5=BA=93=E9=85=8D=E7=BD=AE=E6=9D=83?= =?UTF-8?q?=E9=99=90=E7=9A=84=E5=90=8C=E6=97=B6=E4=B9=9F=E6=94=AF=E6=8C=81?= =?UTF-8?q?=E9=80=9A=E8=BF=87=E9=85=8D=E7=BD=AE=E6=96=87=E4=BB=B6=E9=85=8D?= =?UTF-8?q?=E7=BD=AE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../simple/SimpleAuthenticationManager.java | 22 ++++++++++++ .../AuthorizationAutoConfiguration.java | 35 +++++++++++++++---- 2 files changed, 51 insertions(+), 6 deletions(-) diff --git a/hsweb-system/hsweb-system-authorization/hsweb-system-authorization-local/src/main/java/org/hswebframework/web/service/authorization/simple/SimpleAuthenticationManager.java b/hsweb-system/hsweb-system-authorization/hsweb-system-authorization-local/src/main/java/org/hswebframework/web/service/authorization/simple/SimpleAuthenticationManager.java index 68465740f..c966cfb72 100644 --- a/hsweb-system/hsweb-system-authorization/hsweb-system-authorization-local/src/main/java/org/hswebframework/web/service/authorization/simple/SimpleAuthenticationManager.java +++ b/hsweb-system/hsweb-system-authorization/hsweb-system-authorization-local/src/main/java/org/hswebframework/web/service/authorization/simple/SimpleAuthenticationManager.java @@ -1,5 +1,7 @@ package org.hswebframework.web.service.authorization.simple; +import lombok.Getter; +import lombok.Setter; import org.hswebframework.web.authorization.Authentication; import org.hswebframework.web.authorization.AuthenticationInitializeService; import org.hswebframework.web.authorization.AuthenticationManager; @@ -25,6 +27,11 @@ public class SimpleAuthenticationManager implements AuthenticationManager { private AuthenticationInitializeService authenticationInitializeService; + + @Setter + @Getter + private AuthenticationManager parent; + @Autowired private UserService userService; @@ -38,6 +45,11 @@ public class SimpleAuthenticationManager implements AuthenticationManager { this.authenticationInitializeService = authenticationInitializeService; } + public SimpleAuthenticationManager(AuthenticationInitializeService authenticationInitializeService, AuthenticationManager parent) { + this.authenticationInitializeService = authenticationInitializeService; + this.parent = parent; + } + @Autowired public void setAuthenticationInitializeService(AuthenticationInitializeService authenticationInitializeService) { this.authenticationInitializeService = authenticationInitializeService; @@ -45,6 +57,16 @@ public class SimpleAuthenticationManager implements AuthenticationManager { @Override public Authentication authenticate(AuthenticationRequest request) { + if (null != parent) { + try { + Authentication authentication = parent.authenticate(request); + if (null != authentication) { + return authentication; + } + } catch (Exception ignore) { + // ignore errors + } + } if (request instanceof PlainTextUsernamePasswordAuthenticationRequest) { String username = ((PlainTextUsernamePasswordAuthenticationRequest) request).getUsername(); String password = ((PlainTextUsernamePasswordAuthenticationRequest) request).getPassword(); diff --git a/hsweb-system/hsweb-system-authorization/hsweb-system-authorization-starter/src/main/java/org/hswebframework/web/authorization/starter/AuthorizationAutoConfiguration.java b/hsweb-system/hsweb-system-authorization/hsweb-system-authorization-starter/src/main/java/org/hswebframework/web/authorization/starter/AuthorizationAutoConfiguration.java index 84a5b62af..fbdf3769d 100644 --- a/hsweb-system/hsweb-system-authorization/hsweb-system-authorization-starter/src/main/java/org/hswebframework/web/authorization/starter/AuthorizationAutoConfiguration.java +++ b/hsweb-system/hsweb-system-authorization/hsweb-system-authorization-starter/src/main/java/org/hswebframework/web/authorization/starter/AuthorizationAutoConfiguration.java @@ -20,16 +20,18 @@ package org.hswebframework.web.authorization.starter; import org.hswebframework.web.authorization.AuthenticationInitializeService; import org.hswebframework.web.authorization.AuthenticationManager; -import org.hswebframework.web.authorization.basic.configuration.BasicAuthorizationConfiguration; +import org.hswebframework.web.authorization.basic.embed.EmbedAuthenticationManager; import org.hswebframework.web.authorization.simple.DefaultAuthorizationAutoConfiguration; import org.hswebframework.web.service.authorization.simple.SimpleAuthenticationManager; import org.mybatis.spring.annotation.MapperScan; import org.springframework.boot.autoconfigure.AutoConfigureBefore; +import org.springframework.boot.autoconfigure.condition.ConditionalOnClass; +import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingClass; import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.ComponentScan; import org.springframework.context.annotation.Configuration; -import org.springframework.context.annotation.Import; +import org.springframework.context.annotation.Primary; /** * @author zhouhao @@ -41,12 +43,33 @@ import org.springframework.context.annotation.Import; @AutoConfigureBefore(value = { DefaultAuthorizationAutoConfiguration.class }, name = "org.hswebframework.web.authorization.basic.configuration.AuthorizingHandlerAutoConfiguration") -@Import(BasicAuthorizationConfiguration.class) public class AuthorizationAutoConfiguration { - @Bean - public AuthenticationManager authenticationManager(AuthenticationInitializeService authenticationInitializeService) { - return new SimpleAuthenticationManager(authenticationInitializeService); + @ConditionalOnMissingClass("org.hswebframework.web.authorization.basic.embed.EmbedAuthenticationManager") + @Configuration + public static class NoEmbedAuthenticationManagerAutoConfiguration { + @Bean + @Primary + public AuthenticationManager authenticationManager(AuthenticationInitializeService authenticationInitializeService) { + return new SimpleAuthenticationManager(authenticationInitializeService); + } + + } + + @ConditionalOnClass(EmbedAuthenticationManager.class) + @Configuration + public static class EmbedAuthenticationManagerAutoConfiguration { + @Bean + public EmbedAuthenticationManager embedAuthenticationManager() { + return new EmbedAuthenticationManager(); + } + + @Bean + @Primary + public AuthenticationManager authenticationManager(EmbedAuthenticationManager embedAuthenticationManager, + AuthenticationInitializeService authenticationInitializeService) { + return new SimpleAuthenticationManager(authenticationInitializeService, embedAuthenticationManager); + } } @Bean From dba67fa0c02477958bf3846cfbc352feb2a74ac4 Mon Sep 17 00:00:00 2001 From: zhouhao Date: Tue, 25 Sep 2018 11:24:13 +0800 Subject: [PATCH 08/18] =?UTF-8?q?=E5=A2=9E=E5=8A=A0=E9=80=9A=E8=BF=87?= =?UTF-8?q?=E9=85=8D=E7=BD=AE=E6=96=87=E4=BB=B6=E8=BF=9B=E8=A1=8C=E8=87=AA?= =?UTF-8?q?=E5=AE=9A=E4=B9=89=E6=8E=88=E6=9D=83=E6=8E=A7=E5=88=B6:=20hsweb?= =?UTF-8?q?.authorize.allows.users.admin:=20**.*=20(=E8=A1=A8=E8=BE=BE?= =?UTF-8?q?=E5=BC=8F=E4=B8=BAantPathMatcher,=E5=8C=B9=E9=85=8D=E5=AF=B9?= =?UTF-8?q?=E5=BA=94=E7=9A=84controller=E7=B1=BB=E5=85=A8=E5=90=8D+?= =?UTF-8?q?=E6=96=B9=E6=B3=95=E5=90=8D)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../AuthorizingHandlerAutoConfiguration.java | 7 ++ .../handler/UserAllowPermissionHandler.java | 75 +++++++++++++++++++ 2 files changed, 82 insertions(+) create mode 100644 hsweb-authorization/hsweb-authorization-basic/src/main/java/org/hswebframework/web/authorization/basic/handler/UserAllowPermissionHandler.java diff --git a/hsweb-authorization/hsweb-authorization-basic/src/main/java/org/hswebframework/web/authorization/basic/configuration/AuthorizingHandlerAutoConfiguration.java b/hsweb-authorization/hsweb-authorization-basic/src/main/java/org/hswebframework/web/authorization/basic/configuration/AuthorizingHandlerAutoConfiguration.java index 4deacff3d..9b4bc08b6 100644 --- a/hsweb-authorization/hsweb-authorization-basic/src/main/java/org/hswebframework/web/authorization/basic/configuration/AuthorizingHandlerAutoConfiguration.java +++ b/hsweb-authorization/hsweb-authorization-basic/src/main/java/org/hswebframework/web/authorization/basic/configuration/AuthorizingHandlerAutoConfiguration.java @@ -6,6 +6,7 @@ import org.hswebframework.web.authorization.access.DataAccessHandler; import org.hswebframework.web.authorization.basic.aop.AopMethodAuthorizeDefinitionParser; import org.hswebframework.web.authorization.basic.embed.EmbedAuthenticationManager; import org.hswebframework.web.authorization.basic.handler.DefaultAuthorizingHandler; +import org.hswebframework.web.authorization.basic.handler.UserAllowPermissionHandler; import org.hswebframework.web.authorization.basic.handler.access.DefaultDataAccessController; import org.hswebframework.web.authorization.basic.web.*; import org.hswebframework.web.authorization.basic.web.session.UserTokenAutoExpiredListener; @@ -76,6 +77,12 @@ public class AuthorizingHandlerAutoConfiguration { return new EmbedAuthenticationManager(); } + @Bean + @ConditionalOnProperty("hsweb.authorize.allows") + public UserAllowPermissionHandler userAllowPermissionHandler() { + return new UserAllowPermissionHandler(); + } + @Bean public UserOnSignIn userOnSignIn(UserTokenManager userTokenManager) { return new UserOnSignIn(userTokenManager); diff --git a/hsweb-authorization/hsweb-authorization-basic/src/main/java/org/hswebframework/web/authorization/basic/handler/UserAllowPermissionHandler.java b/hsweb-authorization/hsweb-authorization-basic/src/main/java/org/hswebframework/web/authorization/basic/handler/UserAllowPermissionHandler.java new file mode 100644 index 000000000..920f7f8da --- /dev/null +++ b/hsweb-authorization/hsweb-authorization-basic/src/main/java/org/hswebframework/web/authorization/basic/handler/UserAllowPermissionHandler.java @@ -0,0 +1,75 @@ +package org.hswebframework.web.authorization.basic.handler; + +import lombok.Getter; +import lombok.Setter; +import org.hswebframework.web.authorization.define.AuthorizingContext; +import org.hswebframework.web.authorization.listener.event.AuthorizingHandleBeforeEvent; +import org.springframework.boot.context.properties.ConfigurationProperties; +import org.springframework.context.event.EventListener; +import org.springframework.util.AntPathMatcher; +import org.springframework.util.ClassUtils; +import org.springframework.util.PathMatcher; + +import java.util.*; + +/** + *
+ *     hsweb:
+ *        authorize:
+ *            allows:
+ *               users:
+ *                  admin: *
+ *                  guest: **.query*
+ *               roles:
+ *                  admin: *
+ *
+ * 
+ * + * @author zhouhao + * @since 3.0.1 + */ +@ConfigurationProperties("hsweb.authorize") +public class UserAllowPermissionHandler { + + @Getter + @Setter + private Map> allows = new HashMap<>(); + + private PathMatcher pathMatcher = new AntPathMatcher("."); + + @EventListener + public void handEvent(AuthorizingHandleBeforeEvent event) { + AuthorizingContext context = event.getContext(); + if (allows.isEmpty()) { + return; + } + // package.method + String path = ClassUtils.getUserClass(context.getParamContext() + .getTarget()) + .getName().concat(".") + .concat(context.getParamContext() + .getMethod().getName()); + + String userId = context.getAuthentication().getUser().getId(); + boolean allow; + allow = Optional.ofNullable(allows.get("users")) + .map(users -> users.get(userId)) + .filter(pattern -> "*".equals(pattern) || pathMatcher.match(pattern, path)) + .isPresent(); + if (allow) { + event.setAllow(true); + return; + } + allow = context.getAuthentication() + .getRoles() + .stream() + .map(role -> allows.getOrDefault("roles", Collections.emptyMap()).get(role.getId())) + .filter(Objects::nonNull) + .anyMatch(pattern -> "*".equals(pattern) || pathMatcher.match(pattern, path)); + if (allow) { + event.setAllow(true); + return; + } + } + +} From e7bb73af6c839cc0576283a8923164afaa9ec3fb Mon Sep 17 00:00:00 2001 From: zhouhao Date: Tue, 25 Sep 2018 11:50:40 +0800 Subject: [PATCH 09/18] =?UTF-8?q?=E4=BC=98=E5=8C=96tests?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../AuthorizingHandlerAutoConfiguration.java | 1 - .../handler/UserAllowPermissionHandler.java | 9 ++- .../{basic/embed => }/TestApplication.java | 5 +- .../EmbedAuthenticationManagerTest.groovy | 1 + .../basic/handler/TestController.java | 24 ++++++++ .../UserAllowPermissionHandlerTest.groovy | 61 +++++++++++++++++++ .../src/test/resources/application.yml | 4 ++ 7 files changed, 97 insertions(+), 8 deletions(-) rename hsweb-authorization/hsweb-authorization-basic/src/test/java/org/hswebframework/web/authorization/{basic/embed => }/TestApplication.java (52%) create mode 100644 hsweb-authorization/hsweb-authorization-basic/src/test/java/org/hswebframework/web/authorization/basic/handler/TestController.java create mode 100644 hsweb-authorization/hsweb-authorization-basic/src/test/java/org/hswebframework/web/authorization/basic/handler/UserAllowPermissionHandlerTest.groovy diff --git a/hsweb-authorization/hsweb-authorization-basic/src/main/java/org/hswebframework/web/authorization/basic/configuration/AuthorizingHandlerAutoConfiguration.java b/hsweb-authorization/hsweb-authorization-basic/src/main/java/org/hswebframework/web/authorization/basic/configuration/AuthorizingHandlerAutoConfiguration.java index 9b4bc08b6..313c14482 100644 --- a/hsweb-authorization/hsweb-authorization-basic/src/main/java/org/hswebframework/web/authorization/basic/configuration/AuthorizingHandlerAutoConfiguration.java +++ b/hsweb-authorization/hsweb-authorization-basic/src/main/java/org/hswebframework/web/authorization/basic/configuration/AuthorizingHandlerAutoConfiguration.java @@ -78,7 +78,6 @@ public class AuthorizingHandlerAutoConfiguration { } @Bean - @ConditionalOnProperty("hsweb.authorize.allows") public UserAllowPermissionHandler userAllowPermissionHandler() { return new UserAllowPermissionHandler(); } diff --git a/hsweb-authorization/hsweb-authorization-basic/src/main/java/org/hswebframework/web/authorization/basic/handler/UserAllowPermissionHandler.java b/hsweb-authorization/hsweb-authorization-basic/src/main/java/org/hswebframework/web/authorization/basic/handler/UserAllowPermissionHandler.java index 920f7f8da..68df503aa 100644 --- a/hsweb-authorization/hsweb-authorization-basic/src/main/java/org/hswebframework/web/authorization/basic/handler/UserAllowPermissionHandler.java +++ b/hsweb-authorization/hsweb-authorization-basic/src/main/java/org/hswebframework/web/authorization/basic/handler/UserAllowPermissionHandler.java @@ -3,6 +3,7 @@ package org.hswebframework.web.authorization.basic.handler; import lombok.Getter; import lombok.Setter; import org.hswebframework.web.authorization.define.AuthorizingContext; +import org.hswebframework.web.authorization.define.HandleType; import org.hswebframework.web.authorization.listener.event.AuthorizingHandleBeforeEvent; import org.springframework.boot.context.properties.ConfigurationProperties; import org.springframework.context.event.EventListener; @@ -39,11 +40,13 @@ public class UserAllowPermissionHandler { @EventListener public void handEvent(AuthorizingHandleBeforeEvent event) { - AuthorizingContext context = event.getContext(); - if (allows.isEmpty()) { + + if (allows.isEmpty() || event.getHandleType() == HandleType.DATA) { return; } - // package.method + AuthorizingContext context = event.getContext(); + + // class full name.method String path = ClassUtils.getUserClass(context.getParamContext() .getTarget()) .getName().concat(".") diff --git a/hsweb-authorization/hsweb-authorization-basic/src/test/java/org/hswebframework/web/authorization/basic/embed/TestApplication.java b/hsweb-authorization/hsweb-authorization-basic/src/test/java/org/hswebframework/web/authorization/TestApplication.java similarity index 52% rename from hsweb-authorization/hsweb-authorization-basic/src/test/java/org/hswebframework/web/authorization/basic/embed/TestApplication.java rename to hsweb-authorization/hsweb-authorization-basic/src/test/java/org/hswebframework/web/authorization/TestApplication.java index c5b2310a7..797c1ff4d 100644 --- a/hsweb-authorization/hsweb-authorization-basic/src/test/java/org/hswebframework/web/authorization/basic/embed/TestApplication.java +++ b/hsweb-authorization/hsweb-authorization-basic/src/test/java/org/hswebframework/web/authorization/TestApplication.java @@ -1,9 +1,6 @@ -package org.hswebframework.web.authorization.basic.embed; +package org.hswebframework.web.authorization; -import org.hswebframework.web.authorization.basic.configuration.AopAuthorizeAutoConfiguration; -import org.hswebframework.web.authorization.basic.configuration.AuthorizingHandlerAutoConfiguration; import org.hswebframework.web.authorization.basic.configuration.EnableAopAuthorize; -import org.springframework.boot.autoconfigure.ImportAutoConfiguration; import org.springframework.boot.autoconfigure.SpringBootApplication; import org.springframework.test.context.web.WebAppConfiguration; diff --git a/hsweb-authorization/hsweb-authorization-basic/src/test/java/org/hswebframework/web/authorization/basic/embed/EmbedAuthenticationManagerTest.groovy b/hsweb-authorization/hsweb-authorization-basic/src/test/java/org/hswebframework/web/authorization/basic/embed/EmbedAuthenticationManagerTest.groovy index c81e7cc4d..d798da84e 100644 --- a/hsweb-authorization/hsweb-authorization-basic/src/test/java/org/hswebframework/web/authorization/basic/embed/EmbedAuthenticationManagerTest.groovy +++ b/hsweb-authorization/hsweb-authorization-basic/src/test/java/org/hswebframework/web/authorization/basic/embed/EmbedAuthenticationManagerTest.groovy @@ -2,6 +2,7 @@ package org.hswebframework.web.authorization.basic.embed import org.hswebframework.web.authorization.Authentication import org.hswebframework.web.authorization.AuthenticationManager +import org.hswebframework.web.authorization.TestApplication import org.hswebframework.web.authorization.simple.PlainTextUsernamePasswordAuthenticationRequest import org.springframework.beans.factory.annotation.Autowired import org.springframework.boot.test.context.SpringBootTest diff --git a/hsweb-authorization/hsweb-authorization-basic/src/test/java/org/hswebframework/web/authorization/basic/handler/TestController.java b/hsweb-authorization/hsweb-authorization-basic/src/test/java/org/hswebframework/web/authorization/basic/handler/TestController.java new file mode 100644 index 000000000..390429596 --- /dev/null +++ b/hsweb-authorization/hsweb-authorization-basic/src/test/java/org/hswebframework/web/authorization/basic/handler/TestController.java @@ -0,0 +1,24 @@ +package org.hswebframework.web.authorization.basic.handler; + +import org.hswebframework.web.authorization.annotation.Authorize; +import org.hswebframework.web.controller.message.ResponseMessage; + +/** + * @author zhouhao + * @since 3.0.1 + */ +public class TestController { + + public ResponseMessage query() { + return ResponseMessage.ok(); + } + + public ResponseMessage update() { + return ResponseMessage.ok(); + } + + public ResponseMessage delete() { + return ResponseMessage.ok(); + } + +} diff --git a/hsweb-authorization/hsweb-authorization-basic/src/test/java/org/hswebframework/web/authorization/basic/handler/UserAllowPermissionHandlerTest.groovy b/hsweb-authorization/hsweb-authorization-basic/src/test/java/org/hswebframework/web/authorization/basic/handler/UserAllowPermissionHandlerTest.groovy new file mode 100644 index 000000000..f809f2568 --- /dev/null +++ b/hsweb-authorization/hsweb-authorization-basic/src/test/java/org/hswebframework/web/authorization/basic/handler/UserAllowPermissionHandlerTest.groovy @@ -0,0 +1,61 @@ +package org.hswebframework.web.authorization.basic.handler + +import org.hswebframework.web.authorization.Authentication +import org.hswebframework.web.authorization.AuthenticationManager +import org.hswebframework.web.authorization.TestApplication +import org.hswebframework.web.authorization.basic.define.EmptyAuthorizeDefinition +import org.hswebframework.web.authorization.define.AuthorizeDefinition +import org.hswebframework.web.authorization.define.AuthorizingContext +import org.hswebframework.web.authorization.define.HandleType +import org.hswebframework.web.authorization.listener.event.AuthorizingHandleBeforeEvent +import org.hswebframework.web.authorization.simple.PlainTextUsernamePasswordAuthenticationRequest +import org.hswebframework.web.boost.aop.context.MethodInterceptorContext +import org.hswebframework.web.boost.aop.context.MethodInterceptorHolder +import org.springframework.beans.factory.annotation.Autowired +import org.springframework.boot.test.context.SpringBootTest +import org.springframework.test.context.ContextConfiguration +import org.springframework.test.context.web.WebAppConfiguration +import spock.lang.Specification + +/** + * @author zhouhao + * @since 3.0.1 + */ +@WebAppConfiguration +@ContextConfiguration +@SpringBootTest(classes = [TestApplication.class], properties = ["classpath:application.yml"]) +class UserAllowPermissionHandlerTest extends Specification { + + @Autowired + UserAllowPermissionHandler handler; + + @Autowired + private AuthenticationManager manager; + + def createMethodInterceptorContext(TestController controller, String name) { + return new MethodInterceptorHolder( + "test" + , TestController.class.getMethod(name) + , controller + , new HashMap()) + .createParamContext() + } + + def "Test"() { + setup: + def authentication = manager.authenticate(new PlainTextUsernamePasswordAuthenticationRequest("admin", "admin")); + def definition = EmptyAuthorizeDefinition.instance; + def controller = new TestController(); + def context = createMethodInterceptorContext(controller, "query"); + def authorizingContext = new AuthorizingContext( + authentication: authentication + , definition: definition + , paramContext: context); + def event = new AuthorizingHandleBeforeEvent(authorizingContext, HandleType.RBAC); + handler.handEvent(event); + expect: + authentication != null + event.isAllow() + + } +} diff --git a/hsweb-authorization/hsweb-authorization-basic/src/test/resources/application.yml b/hsweb-authorization/hsweb-authorization-basic/src/test/resources/application.yml index 6869b9210..febdaf1a8 100644 --- a/hsweb-authorization/hsweb-authorization-basic/src/test/resources/application.yml +++ b/hsweb-authorization/hsweb-authorization-basic/src/test/resources/application.yml @@ -15,6 +15,10 @@ hsweb: app: name: hsweb-oauth2 客户端示例 version: 3.0.0 + authorize: + allows: + users: + admin: "**.TestController.*" users: admin: name: 超级管理员 From b1fe5bb99cb3f5898f41d168706bdf627681d245 Mon Sep 17 00:00:00 2001 From: zhouhao Date: Tue, 25 Sep 2018 17:16:19 +0800 Subject: [PATCH 10/18] =?UTF-8?q?=E4=BC=98=E5=8C=96=E8=AF=B4=E6=98=8E?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../define/AuthorizingContext.java | 8 ++++++ .../hsweb-authorization-basic/README.md | 25 +++++++++--------- .../hsweb-system-authorization/README.md | 25 ++++-------------- .../hsweb-system-authorization/uml.png | Bin 0 -> 134584 bytes quick-start/AUTZ.md | 6 +++++ 5 files changed, 32 insertions(+), 32 deletions(-) create mode 100644 hsweb-system/hsweb-system-authorization/uml.png diff --git a/hsweb-authorization/hsweb-authorization-api/src/main/java/org/hswebframework/web/authorization/define/AuthorizingContext.java b/hsweb-authorization/hsweb-authorization-api/src/main/java/org/hswebframework/web/authorization/define/AuthorizingContext.java index 9df70a2fc..e6b34be76 100644 --- a/hsweb-authorization/hsweb-authorization-api/src/main/java/org/hswebframework/web/authorization/define/AuthorizingContext.java +++ b/hsweb-authorization/hsweb-authorization-api/src/main/java/org/hswebframework/web/authorization/define/AuthorizingContext.java @@ -1,11 +1,19 @@ package org.hswebframework.web.authorization.define; +import lombok.AllArgsConstructor; +import lombok.Getter; +import lombok.NoArgsConstructor; +import lombok.Setter; import org.hswebframework.web.authorization.Authentication; import org.hswebframework.web.boost.aop.context.MethodInterceptorContext; /** * 权限控制上下文 */ +@Getter +@Setter +@NoArgsConstructor +@AllArgsConstructor public class AuthorizingContext { private AuthorizeDefinition definition; diff --git a/hsweb-authorization/hsweb-authorization-basic/README.md b/hsweb-authorization/hsweb-authorization-basic/README.md index dfc3d447c..00183e893 100644 --- a/hsweb-authorization/hsweb-authorization-basic/README.md +++ b/hsweb-authorization/hsweb-authorization-basic/README.md @@ -48,17 +48,18 @@ where name like ? or full_name like where u_id in(?,?,?) and (name like ? or full_name like) ``` +## 授权登录接口 +http接口: `POST /authorize/login`, 登录接口支持2种`content-type`,`application/json`(Json RequestBody方式)和`application/x-www-form-urlencoded`(表单方式), +请在调用等时候指定对应等`content-type`.必要参数: `username` 和 `password`. + +⚠️注意: 此接口只实现了简单的登录逻辑,不过会通过发布各种事件来实现自定义的逻辑处理. + +1. `AuthorizationDecodeEvent` 在接收到登录请求之后触发,如果在登录前对用户名密码进行里加密,可以通过监听此事件实现对用户名密码的解密操作 +2. `AuthorizationBeforeEvent` 在`AuthorizationDecodeEvent`事件完成后触发,可通过监听此事件并获取请求参数,实现验证码功能 +3. `AuthorizationSuccessEvent` 在授权成功后触发.注意: 权限控制模块也是通过监听此事件来完成授权 +4. `AuthorizationFailedEvent` 授权失败时触发.当发生过程中异常时触发此事件 + +什么? 还不知道如何监听事件? [快看这里](https://github.com/hs-web/hsweb-framework/wiki/事件驱动) + # 会话状态 此模块默认使用sessionId绑定用户信息。还可以使用 [jwt](../hsweb-authorization-jwt) 方式 - -# 跨域设置 -修改application.yml -```yaml -hsweb: - cors: - enabled: on - allowed-origins: "*" - allowed-methods: "*" - allowed-headers: "*" - -``` \ No newline at end of file diff --git a/hsweb-system/hsweb-system-authorization/README.md b/hsweb-system/hsweb-system-authorization/README.md index ce5b209c1..ccfd8a6e1 100644 --- a/hsweb-system/hsweb-system-authorization/README.md +++ b/hsweb-system/hsweb-system-authorization/README.md @@ -1,9 +1,9 @@ ## 权限功能模块 -1. 提供用户,角色管理,登录授权等功能 +1. 提供用户,角色管理等基础功能 2. 提供统一的多维度,可拓展的权限分配 - 权限设置不再像以往那样和角色,用户直接关联.在hsweb里,权限设置是通用的. + 权限设置不再像以往那样和角色,用户直接关联.在此模块里,权限设置是通用的. 你可以为用户,角色,自己定义的维度比如:机构,部门,岗位等维度进行权限分配. 而且不仅仅支持基本等RBAC权限控制,还可以自定义控制到数据行和列. @@ -19,21 +19,6 @@ ``` - -## 授权登录接口 -http接口: `POST /authorize/login`, 登录接口支持2种`content-type`,`application/json`(Json RequestBody方式)和`application/x-www-form-urlencoded`(表单方式), -请在调用等时候指定对应等`content-type`.必要参数: `username` 和 `password`. - -⚠️注意: 此接口只实现了简单的登录逻辑,不过会通过发布各种事件来实现自定义的逻辑处理. - -1. `AuthorizationDecodeEvent` 在接收到登录请求之后触发,如果在登录前对用户名密码进行里加密,可以通过监听此事件实现对用户名密码的解密操作 -2. `AuthorizationBeforeEvent` 在`AuthorizationDecodeEvent`事件完成后触发,可通过监听此事件并获取请求参数,实现验证码功能 -3. `AuthorizationSuccessEvent` 在授权成功后触发.注意: 权限控制模块也是通过监听此事件来完成授权 -4. `AuthorizationFailedEvent` 授权失败时触发.当发生过程中异常时触发此事件 - -什么? 还不知道如何监听事件? [快看这里](https://github.com/hs-web/hsweb-framework/wiki/事件驱动) - - -## 权限设置 - -TODO +## 结构 + +![uml](./uml.png "uml.png") diff --git a/hsweb-system/hsweb-system-authorization/uml.png b/hsweb-system/hsweb-system-authorization/uml.png new file mode 100644 index 0000000000000000000000000000000000000000..8f0a3bb846142ff63d94ed3547a152268118aed5 GIT binary patch literal 134584 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%0A=|u+!UImwsD6^pG60 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 dgyl6YpvC)6vz_BnFiJO)~;`FT5 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 P0ETU7@ canQueryDepartment= authentication.getPermission("test") .orElseThrow(AccessDenyException::new); ``` + +# 使用数据库来维护用户以及权限信息 + +在上述说明中是通过配置文件来进行用户以及权限配置的,在hsweb-system模块中还提供了使用数据库来来进行更灵活的权限信息配置 + +[请看这里](../hsweb-system/hsweb-system-authorization) \ No newline at end of file From 93924b847d41e302ad4f39e2f22da3b9ffd7cf18 Mon Sep 17 00:00:00 2001 From: zhouhao Date: Tue, 25 Sep 2018 17:29:00 +0800 Subject: [PATCH 11/18] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E5=9B=BE=E7=89=87?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../hsweb-system-authorization/uml.png | Bin 134584 -> 134828 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/hsweb-system/hsweb-system-authorization/uml.png b/hsweb-system/hsweb-system-authorization/uml.png index 8f0a3bb846142ff63d94ed3547a152268118aed5..5a18ac480871094b1d20154d9750edf2380f3bf8 100644 GIT binary patch literal 134828 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 H*S&uMc?P#R literal 134584 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%0A=|u+!UImwsD6^pG60 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 dgyl6YpvC)6vz_BnFiJO)~;`FT5 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 P0ETU7@ Date: Tue, 25 Sep 2018 18:02:35 +0800 Subject: [PATCH 12/18] =?UTF-8?q?=E4=BC=98=E5=8C=96=E8=AF=B4=E6=98=8E?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- quick-start/AUTZ.md | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/quick-start/AUTZ.md b/quick-start/AUTZ.md index 7ca399e63..ab0d1c6f6 100644 --- a/quick-start/AUTZ.md +++ b/quick-start/AUTZ.md @@ -143,4 +143,10 @@ Set canQueryDepartment= authentication.getPermission("test") 在上述说明中是通过配置文件来进行用户以及权限配置的,在hsweb-system模块中还提供了使用数据库来来进行更灵活的权限信息配置 -[请看这里](../hsweb-system/hsweb-system-authorization) \ No newline at end of file +[请看这里](../hsweb-system/hsweb-system-authorization) + +# 会话状态 + +默认使用`sessionId`来作为用户的`token`,你也可以通过拓展来实现自定义的`token`策略: + +[请看这里](https://github.com/hs-web/hsweb-framework/wiki/autz#%E8%87%AA%E5%AE%9A%E4%B9%89token%E7%AD%96%E7%95%A5%E5%AE%9E%E7%8E%B0%E5%89%8D%E5%90%8E%E5%88%86%E7%A6%BB) \ No newline at end of file From 91f4d7753b53bbb39c9aec154f1fffed1ccb5c25 Mon Sep 17 00:00:00 2001 From: zhouhao Date: Thu, 27 Sep 2018 11:47:52 +0800 Subject: [PATCH 13/18] =?UTF-8?q?#87=20=E4=BF=AE=E5=A4=8D=E6=95=B0?= =?UTF-8?q?=E6=8D=AE=E6=BA=90=E5=8A=A0=E8=BD=BD=E9=94=99=E8=AF=AF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../jta/AtomikosDataSourceConfig.java | 40 ++++++++++++------- .../src/test/resources/application.yml | 9 +++++ 2 files changed, 34 insertions(+), 15 deletions(-) diff --git a/hsweb-datasource/hsweb-datasource-jta/src/main/java/org/hswebframework/web/datasource/jta/AtomikosDataSourceConfig.java b/hsweb-datasource/hsweb-datasource-jta/src/main/java/org/hswebframework/web/datasource/jta/AtomikosDataSourceConfig.java index 3fb164be8..c91c36cf4 100644 --- a/hsweb-datasource/hsweb-datasource-jta/src/main/java/org/hswebframework/web/datasource/jta/AtomikosDataSourceConfig.java +++ b/hsweb-datasource/hsweb-datasource-jta/src/main/java/org/hswebframework/web/datasource/jta/AtomikosDataSourceConfig.java @@ -3,9 +3,12 @@ package org.hswebframework.web.datasource.jta; import com.atomikos.jdbc.AtomikosDataSourceBean; import lombok.Data; import lombok.EqualsAndHashCode; +import lombok.SneakyThrows; import lombok.extern.slf4j.Slf4j; +import org.hswebframework.web.bean.FastBeanCopier; import org.hswebframework.web.datasource.config.DynamicDataSourceConfig; +import javax.sql.XADataSource; import java.sql.SQLException; import java.util.Properties; @@ -15,27 +18,34 @@ import java.util.Properties; @EqualsAndHashCode(callSuper = true) @Slf4j @Data -public class AtomikosDataSourceConfig extends DynamicDataSourceConfig{ - private static final long serialVersionUID = 5588085000663972571L; - private int minPoolSize = 5; - private int maxPoolSize = 200; - private int borrowConnectionTimeout = 60; - private int reapTimeout = 0; - private int maxIdleTime = 60; - private int maintenanceInterval = 60; - private int defaultIsolationLevel = -1; - private String xaDataSourceClassName = null; - private int loginTimeout = 0; - private String testQuery = null; - private int maxLifetime = 0; - private Properties xaProperties = null; +public class AtomikosDataSourceConfig extends DynamicDataSourceConfig { + private static final long serialVersionUID = 5588085000663972571L; + private int minPoolSize = 5; + private int maxPoolSize = 200; + private int borrowConnectionTimeout = 60; + private int reapTimeout = 0; + private int maxIdleTime = 60; + private int maintenanceInterval = 60; + private int defaultIsolationLevel = -1; + private String xaDataSourceClassName = null; + private int loginTimeout = 0; + private String testQuery = null; + private int maxLifetime = 0; + private Properties xaProperties = null; //初始化超时时间 - private int initTimeout = 10; + private int initTimeout = 10; + @SneakyThrows public void putProperties(AtomikosDataSourceBean atomikosDataSourceBean) { + if (null != xaProperties) { xaProperties.entrySet().forEach(entry -> entry.setValue(String.valueOf(entry.getValue()))); } + //fix #87 + XADataSource dataSource = (XADataSource) Class.forName(getXaDataSourceClassName()).newInstance(); + FastBeanCopier.copy(xaProperties, dataSource); + atomikosDataSourceBean.setXaDataSource(dataSource); + atomikosDataSourceBean.setXaDataSourceClassName(getXaDataSourceClassName()); atomikosDataSourceBean.setBorrowConnectionTimeout(getBorrowConnectionTimeout()); if (loginTimeout != 0) { diff --git a/hsweb-datasource/hsweb-datasource-jta/src/test/resources/application.yml b/hsweb-datasource/hsweb-datasource-jta/src/test/resources/application.yml index 6dbba9d08..b8b3b5c93 100644 --- a/hsweb-datasource/hsweb-datasource-jta/src/test/resources/application.yml +++ b/hsweb-datasource/hsweb-datasource-jta/src/test/resources/application.yml @@ -9,6 +9,10 @@ spring: url : jdbc:h2:mem:core;DB_CLOSE_ON_EXIT=FALSE username : sa password : + maxActive: 1000 + initialSize: 5 + minIdle: 5 + maxWait: 50000 max-pool-size: 20 borrow-connection-timeout: 1000 connectionfactory: @@ -31,6 +35,11 @@ hsweb: url: jdbc:h2:mem:test;DB_CLOSE_ON_EXIT=FALSE username: sa password: + filters: stat + maxActive: 1000 + initialSize: 5 + minIdle: 5 + maxWait: 50000 max-pool-size: 20 borrow-connection-timeout: 1000 test_ds2: From d1940b148ee8ca9a1e2f231bcf53015f62ba1827 Mon Sep 17 00:00:00 2001 From: zhouhao Date: Fri, 28 Sep 2018 09:28:36 +0800 Subject: [PATCH 14/18] =?UTF-8?q?=E4=BC=98=E5=8C=96javax.el=E4=BE=9D?= =?UTF-8?q?=E8=B5=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../org/hswebframework/web/authorization/AuthorizeTests.java | 0 .../web/authorization/RedisUserTokenManagerTests.java | 0 .../hswebframework/web/authorization/TestApplication.java | 0 .../basic/embed/EmbedAuthenticationManagerTest.groovy | 0 .../web/authorization/basic/handler/TestController.java | 0 .../basic/handler/UserAllowPermissionHandlerTest.groovy | 0 .../hsweb-commons-dao/hsweb-commons-dao-mybatis/pom.xml | 5 ++--- .../hsweb-commons-service-simple/pom.xml | 5 ++--- .../web/authorization/starter/TestApplication.java | 0 .../authorization/starter/UserSettingControllerTest.groovy | 0 .../hsweb-system-dynamic-form-local/pom.xml | 5 ++--- hsweb-tests/pom.xml | 5 ++--- 12 files changed, 8 insertions(+), 12 deletions(-) rename hsweb-authorization/hsweb-authorization-basic/src/test/{java => groovy}/org/hswebframework/web/authorization/AuthorizeTests.java (100%) rename hsweb-authorization/hsweb-authorization-basic/src/test/{java => groovy}/org/hswebframework/web/authorization/RedisUserTokenManagerTests.java (100%) rename hsweb-authorization/hsweb-authorization-basic/src/test/{java => groovy}/org/hswebframework/web/authorization/TestApplication.java (100%) rename hsweb-authorization/hsweb-authorization-basic/src/test/{java => groovy}/org/hswebframework/web/authorization/basic/embed/EmbedAuthenticationManagerTest.groovy (100%) rename hsweb-authorization/hsweb-authorization-basic/src/test/{java => groovy}/org/hswebframework/web/authorization/basic/handler/TestController.java (100%) rename hsweb-authorization/hsweb-authorization-basic/src/test/{java => groovy}/org/hswebframework/web/authorization/basic/handler/UserAllowPermissionHandlerTest.groovy (100%) rename hsweb-system/hsweb-system-authorization/hsweb-system-authorization-starter/src/test/{java => groovy}/org/hswebframework/web/authorization/starter/TestApplication.java (100%) rename hsweb-system/hsweb-system-authorization/hsweb-system-authorization-starter/src/test/{java => groovy}/org/hswebframework/web/authorization/starter/UserSettingControllerTest.groovy (100%) diff --git a/hsweb-authorization/hsweb-authorization-basic/src/test/java/org/hswebframework/web/authorization/AuthorizeTests.java b/hsweb-authorization/hsweb-authorization-basic/src/test/groovy/org/hswebframework/web/authorization/AuthorizeTests.java similarity index 100% rename from hsweb-authorization/hsweb-authorization-basic/src/test/java/org/hswebframework/web/authorization/AuthorizeTests.java rename to hsweb-authorization/hsweb-authorization-basic/src/test/groovy/org/hswebframework/web/authorization/AuthorizeTests.java diff --git a/hsweb-authorization/hsweb-authorization-basic/src/test/java/org/hswebframework/web/authorization/RedisUserTokenManagerTests.java b/hsweb-authorization/hsweb-authorization-basic/src/test/groovy/org/hswebframework/web/authorization/RedisUserTokenManagerTests.java similarity index 100% rename from hsweb-authorization/hsweb-authorization-basic/src/test/java/org/hswebframework/web/authorization/RedisUserTokenManagerTests.java rename to hsweb-authorization/hsweb-authorization-basic/src/test/groovy/org/hswebframework/web/authorization/RedisUserTokenManagerTests.java diff --git a/hsweb-authorization/hsweb-authorization-basic/src/test/java/org/hswebframework/web/authorization/TestApplication.java b/hsweb-authorization/hsweb-authorization-basic/src/test/groovy/org/hswebframework/web/authorization/TestApplication.java similarity index 100% rename from hsweb-authorization/hsweb-authorization-basic/src/test/java/org/hswebframework/web/authorization/TestApplication.java rename to hsweb-authorization/hsweb-authorization-basic/src/test/groovy/org/hswebframework/web/authorization/TestApplication.java diff --git a/hsweb-authorization/hsweb-authorization-basic/src/test/java/org/hswebframework/web/authorization/basic/embed/EmbedAuthenticationManagerTest.groovy b/hsweb-authorization/hsweb-authorization-basic/src/test/groovy/org/hswebframework/web/authorization/basic/embed/EmbedAuthenticationManagerTest.groovy similarity index 100% rename from hsweb-authorization/hsweb-authorization-basic/src/test/java/org/hswebframework/web/authorization/basic/embed/EmbedAuthenticationManagerTest.groovy rename to hsweb-authorization/hsweb-authorization-basic/src/test/groovy/org/hswebframework/web/authorization/basic/embed/EmbedAuthenticationManagerTest.groovy diff --git a/hsweb-authorization/hsweb-authorization-basic/src/test/java/org/hswebframework/web/authorization/basic/handler/TestController.java b/hsweb-authorization/hsweb-authorization-basic/src/test/groovy/org/hswebframework/web/authorization/basic/handler/TestController.java similarity index 100% rename from hsweb-authorization/hsweb-authorization-basic/src/test/java/org/hswebframework/web/authorization/basic/handler/TestController.java rename to hsweb-authorization/hsweb-authorization-basic/src/test/groovy/org/hswebframework/web/authorization/basic/handler/TestController.java diff --git a/hsweb-authorization/hsweb-authorization-basic/src/test/java/org/hswebframework/web/authorization/basic/handler/UserAllowPermissionHandlerTest.groovy b/hsweb-authorization/hsweb-authorization-basic/src/test/groovy/org/hswebframework/web/authorization/basic/handler/UserAllowPermissionHandlerTest.groovy similarity index 100% rename from hsweb-authorization/hsweb-authorization-basic/src/test/java/org/hswebframework/web/authorization/basic/handler/UserAllowPermissionHandlerTest.groovy rename to hsweb-authorization/hsweb-authorization-basic/src/test/groovy/org/hswebframework/web/authorization/basic/handler/UserAllowPermissionHandlerTest.groovy diff --git a/hsweb-commons/hsweb-commons-dao/hsweb-commons-dao-mybatis/pom.xml b/hsweb-commons/hsweb-commons-dao/hsweb-commons-dao-mybatis/pom.xml index 6f0e81b9b..f459d6196 100644 --- a/hsweb-commons/hsweb-commons-dao/hsweb-commons-dao-mybatis/pom.xml +++ b/hsweb-commons/hsweb-commons-dao/hsweb-commons-dao-mybatis/pom.xml @@ -84,9 +84,8 @@ test - javax.el - el-api - 2.2 + org.glassfish + javax.el test diff --git a/hsweb-commons/hsweb-commons-service/hsweb-commons-service-simple/pom.xml b/hsweb-commons/hsweb-commons-service/hsweb-commons-service-simple/pom.xml index b563be1ac..3e6065cb0 100644 --- a/hsweb-commons/hsweb-commons-service/hsweb-commons-service-simple/pom.xml +++ b/hsweb-commons/hsweb-commons-service/hsweb-commons-service-simple/pom.xml @@ -61,9 +61,8 @@ ${project.version} - javax.el - javax.el-api - 3.0.0 + org.glassfish + javax.el test diff --git a/hsweb-system/hsweb-system-authorization/hsweb-system-authorization-starter/src/test/java/org/hswebframework/web/authorization/starter/TestApplication.java b/hsweb-system/hsweb-system-authorization/hsweb-system-authorization-starter/src/test/groovy/org/hswebframework/web/authorization/starter/TestApplication.java similarity index 100% rename from hsweb-system/hsweb-system-authorization/hsweb-system-authorization-starter/src/test/java/org/hswebframework/web/authorization/starter/TestApplication.java rename to hsweb-system/hsweb-system-authorization/hsweb-system-authorization-starter/src/test/groovy/org/hswebframework/web/authorization/starter/TestApplication.java diff --git a/hsweb-system/hsweb-system-authorization/hsweb-system-authorization-starter/src/test/java/org/hswebframework/web/authorization/starter/UserSettingControllerTest.groovy b/hsweb-system/hsweb-system-authorization/hsweb-system-authorization-starter/src/test/groovy/org/hswebframework/web/authorization/starter/UserSettingControllerTest.groovy similarity index 100% rename from hsweb-system/hsweb-system-authorization/hsweb-system-authorization-starter/src/test/java/org/hswebframework/web/authorization/starter/UserSettingControllerTest.groovy rename to hsweb-system/hsweb-system-authorization/hsweb-system-authorization-starter/src/test/groovy/org/hswebframework/web/authorization/starter/UserSettingControllerTest.groovy diff --git a/hsweb-system/hsweb-system-dynamic-form/hsweb-system-dynamic-form-local/pom.xml b/hsweb-system/hsweb-system-dynamic-form/hsweb-system-dynamic-form-local/pom.xml index d484538b7..d685547b3 100644 --- a/hsweb-system/hsweb-system-dynamic-form/hsweb-system-dynamic-form-local/pom.xml +++ b/hsweb-system/hsweb-system-dynamic-form/hsweb-system-dynamic-form-local/pom.xml @@ -15,9 +15,8 @@ - javax.el - javax.el-api - 2.2.4 + org.glassfish + javax.el true diff --git a/hsweb-tests/pom.xml b/hsweb-tests/pom.xml index 6d27b43a2..bde4252d7 100644 --- a/hsweb-tests/pom.xml +++ b/hsweb-tests/pom.xml @@ -19,9 +19,8 @@ - javax.el - el-api - 2.2 + org.glassfish + javax.el From b25418e39faf09b7609e343ad73ee4e58057dbc8 Mon Sep 17 00:00:00 2001 From: zhouhao Date: Fri, 28 Sep 2018 16:56:56 +0800 Subject: [PATCH 15/18] =?UTF-8?q?=E4=BC=98=E5=8C=96test?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...TransactionSupportAsyncJobServiceTest.java | 31 +++++++------- .../web/message/jms/JmsMessagerTest.java | 6 +-- .../starter/UserSettingControllerTest.groovy | 10 +++-- .../src/test/resources/application.yml | 4 +- .../simple/SimpleDynamicFormServiceTest.java | 3 +- pom.xml | 40 +++++++++++++++++-- quick-start/README.md | 5 ++- 7 files changed, 70 insertions(+), 29 deletions(-) diff --git a/hsweb-concurrent/hsweb-concurrent-async-job/src/test/java/org/hswebframework/web/async/TransactionSupportAsyncJobServiceTest.java b/hsweb-concurrent/hsweb-concurrent-async-job/src/test/java/org/hswebframework/web/async/TransactionSupportAsyncJobServiceTest.java index 8347bfcdf..6861b541b 100644 --- a/hsweb-concurrent/hsweb-concurrent-async-job/src/test/java/org/hswebframework/web/async/TransactionSupportAsyncJobServiceTest.java +++ b/hsweb-concurrent/hsweb-concurrent-async-job/src/test/java/org/hswebframework/web/async/TransactionSupportAsyncJobServiceTest.java @@ -1,27 +1,22 @@ package org.hswebframework.web.async; +import lombok.SneakyThrows; import org.hswebframework.ezorm.rdb.executor.SqlExecutor; import org.hswebframework.web.tests.SimpleWebApplicationTests; +import org.junit.After; import org.junit.Assert; +import org.junit.Before; import org.junit.Test; import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty; import org.springframework.boot.autoconfigure.jdbc.DataSourceProperties; import org.springframework.boot.context.properties.ConfigurationProperties; import org.springframework.boot.context.properties.EnableConfigurationProperties; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; -import org.springframework.transaction.support.TransactionTemplate; import javax.sql.DataSource; -import java.sql.SQLException; -import java.util.List; -import java.util.concurrent.Executors; - -import static org.junit.Assert.*; /** - * * @author zhouhao */ public class TransactionSupportAsyncJobServiceTest extends SimpleWebApplicationTests { @@ -42,11 +37,20 @@ public class TransactionSupportAsyncJobServiceTest extends SimpleWebApplicationT } } + @Before + @SneakyThrows + public void init() { + sqlExecutor.exec("create table test(id varchar(32))"); + } + + @After + @SneakyThrows + public void cleanup() { + sqlExecutor.exec("drop table test"); + } + @Test public void test() throws Exception { - - sqlExecutor.exec("create table test(id varchar(32))"); - try { BatchAsyncJobContainer jobContainer = asyncJobService.batch(); jobContainer.submit(() -> { @@ -66,9 +70,6 @@ public class TransactionSupportAsyncJobServiceTest extends SimpleWebApplicationT @Test public void testSimple() throws Exception { - - sqlExecutor.exec("create table test(id varchar(32))"); - try { BatchAsyncJobContainer jobContainer = asyncJobService.batch(); jobContainer.submit(() -> { @@ -85,6 +86,6 @@ public class TransactionSupportAsyncJobServiceTest extends SimpleWebApplicationT } catch (Exception ignore) { ignore.printStackTrace(); } - Assert.assertTrue(sqlExecutor.list("select * from test").size()>0); + Assert.assertTrue(sqlExecutor.list("select * from test").size() > 0); } } \ No newline at end of file diff --git a/hsweb-message/hsweb-message-jms/src/test/java/org/hswebframework/web/message/jms/JmsMessagerTest.java b/hsweb-message/hsweb-message-jms/src/test/java/org/hswebframework/web/message/jms/JmsMessagerTest.java index a3b46a9d5..88a646a8c 100644 --- a/hsweb-message/hsweb-message-jms/src/test/java/org/hswebframework/web/message/jms/JmsMessagerTest.java +++ b/hsweb-message/hsweb-message-jms/src/test/java/org/hswebframework/web/message/jms/JmsMessagerTest.java @@ -18,8 +18,6 @@ import static org.hswebframework.web.message.builder.StaticMessageSubjectBuilder import static org.hswebframework.web.message.builder.StaticMessageSubjectBuilder.topic; /** - * TODO 完成注释 - * * @author zhouhao */ @RunWith(SpringRunner.class) @@ -50,7 +48,7 @@ public class JmsMessagerTest { for (int i = 0; i < 100; i++) { - Thread.sleep(1000); + Thread.sleep(100); messager.publish(text("hello jms")) .to(queue("test")) .send(); @@ -67,7 +65,7 @@ public class JmsMessagerTest { for (int i = 0; i < 10; i++) { - Thread.sleep(1000); + Thread.sleep(100); messager.publish(text("hello jms")) .to(topic("test")) .send(); diff --git a/hsweb-system/hsweb-system-authorization/hsweb-system-authorization-starter/src/test/groovy/org/hswebframework/web/authorization/starter/UserSettingControllerTest.groovy b/hsweb-system/hsweb-system-authorization/hsweb-system-authorization-starter/src/test/groovy/org/hswebframework/web/authorization/starter/UserSettingControllerTest.groovy index 07c6c6a38..41be44131 100644 --- a/hsweb-system/hsweb-system-authorization/hsweb-system-authorization-starter/src/test/groovy/org/hswebframework/web/authorization/starter/UserSettingControllerTest.groovy +++ b/hsweb-system/hsweb-system-authorization/hsweb-system-authorization-starter/src/test/groovy/org/hswebframework/web/authorization/starter/UserSettingControllerTest.groovy @@ -19,6 +19,7 @@ import org.springframework.test.web.servlet.setup.MockMvcBuilders import spock.lang.Shared import spock.lang.Specification +import static org.springframework.test.web.servlet.request.MockMvcRequestBuilders.patch import static org.springframework.test.web.servlet.request.MockMvcRequestBuilders.post; import static org.springframework.test.web.servlet.request.MockMvcRequestBuilders.get import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.*; @@ -62,10 +63,11 @@ class UserSettingControllerTest extends Specification { ] permissions.forEach({ permission -> //添加权限 - mockMvc.perform(post("/permission") + mockMvc.perform(patch("/permission") .contentType(MediaType.APPLICATION_JSON) .content(JSON.toJSONString(permission))) - .andExpect(status().is(201)) + .andDo({ result -> println result.response.contentAsString }) + .andExpect(status().is(200)) }) } @@ -84,6 +86,7 @@ class UserSettingControllerTest extends Specification { } """ )) + .andDo({ result -> println result.response.contentAsString }) .andExpect(status().is(201)) .andReturn() .getResponse() @@ -127,7 +130,8 @@ class UserSettingControllerTest extends Specification { ] ] ]) - )).andExpect(status().is(201)) + )).andDo({ result -> println result.response.contentAsString }) +// .andExpect(status().is(201)) expect: userId != null def autz = initializeService.initUserAuthorization(userId) diff --git a/hsweb-system/hsweb-system-authorization/hsweb-system-authorization-starter/src/test/resources/application.yml b/hsweb-system/hsweb-system-authorization/hsweb-system-authorization-starter/src/test/resources/application.yml index f203b0d9c..a2d76338f 100644 --- a/hsweb-system/hsweb-system-authorization/hsweb-system-authorization-starter/src/test/resources/application.yml +++ b/hsweb-system/hsweb-system-authorization/hsweb-system-authorization-starter/src/test/resources/application.yml @@ -12,8 +12,8 @@ hsweb: name: 权限管理测试 version: 3.0.0 authorize: - sync: true - auto-parse: true + sync: false + auto-parse: false logging: level: org.springframework: WARN diff --git a/hsweb-system/hsweb-system-dynamic-form/hsweb-system-dynamic-form-starter/src/test/java/org/hswebframework/web/service/form/simple/SimpleDynamicFormServiceTest.java b/hsweb-system/hsweb-system-dynamic-form/hsweb-system-dynamic-form-starter/src/test/java/org/hswebframework/web/service/form/simple/SimpleDynamicFormServiceTest.java index c00e0edc1..505d2f2b9 100644 --- a/hsweb-system/hsweb-system-dynamic-form/hsweb-system-dynamic-form-starter/src/test/java/org/hswebframework/web/service/form/simple/SimpleDynamicFormServiceTest.java +++ b/hsweb-system/hsweb-system-dynamic-form/hsweb-system-dynamic-form-starter/src/test/java/org/hswebframework/web/service/form/simple/SimpleDynamicFormServiceTest.java @@ -13,6 +13,7 @@ import org.hswebframework.web.tests.SimpleWebApplicationTests; import org.junit.Assert; import org.junit.Test; import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.transaction.annotation.Propagation; import org.springframework.transaction.annotation.Transactional; import java.sql.Array; @@ -45,7 +46,7 @@ public class SimpleDynamicFormServiceTest extends SimpleWebApplicationTests { private SqlExecutor sqlExecutor; @Test - @Transactional + @Transactional(propagation = Propagation.NOT_SUPPORTED) public void testDeploy() throws SQLException { DynamicFormEntity form = entityFactory.newInstance(DynamicFormEntity.class); form.setName("test"); diff --git a/pom.xml b/pom.xml index f7e0bc823..a8b42ec16 100644 --- a/pom.xml +++ b/pom.xml @@ -232,15 +232,43 @@ + + org.codehaus.gmavenplus + gmavenplus-plugin + 1.6.1 + + + + + addTestSources + + compile + + compileTests + + + + + + + + org.codehaus.groovy + groovy-all + 2.4.15 + + + org.apache.maven.plugins maven-surefire-plugin 2.17 - - **/org/hswebframework/**/*Tests.java - + **/*Test.java + **/*Test.groovy + **/*Tests.java + **/*Test.groovy + **/*Spec.java @@ -252,6 +280,12 @@ + + org.codehaus.groovy + groovy-all + 2.4.15 + pom + org.projectlombok lombok diff --git a/quick-start/README.md b/quick-start/README.md index 58e813fce..385618643 100644 --- a/quick-start/README.md +++ b/quick-start/README.md @@ -6,6 +6,7 @@ 1. [前言](#前言) 2. [创建项目](#创建项目) 3. [增删改查](#增删改查) +4. [更多教程](#更多教程) ## 前言 `hsweb`是基于`java8`,`spring-boot`,`mybatis`开发.所以在开始使用`hsweb`的前,你至少应该掌握以下技术:`java`,`maven`. @@ -552,5 +553,7 @@ class TestControllerTest extends Specification { 一个最简单的通用crud例子完成了!! -更多教程: [通用增删改查使用](USE-CRUD.md) , [权限控制](AUTZ.md) ,[业务功能](SYSTEM.md) , [实用工具包](UTILS.md) +## 更多教程 + +[通用增删改查使用](USE-CRUD.md) , [权限控制](AUTZ.md) ,[业务功能](SYSTEM.md) , [实用工具包](UTILS.md) From 27e7260bd5f23b9ee3ad40d774f34b7a5b4609c5 Mon Sep 17 00:00:00 2001 From: zhou-hao Date: Tue, 9 Oct 2018 23:24:22 +0800 Subject: [PATCH 16/18] fix bug #89 --- .../basic/web/AuthorizationController.java | 9 ++- .../simple/SimpleUserService.java | 7 +- .../authorization/starter/FixBug89Test.groovy | 73 +++++++++++++++++++ .../starter/TestApplication.java | 10 +++ 4 files changed, 93 insertions(+), 6 deletions(-) create mode 100644 hsweb-system/hsweb-system-authorization/hsweb-system-authorization-starter/src/test/groovy/org/hswebframework/web/authorization/starter/FixBug89Test.groovy diff --git a/hsweb-authorization/hsweb-authorization-basic/src/main/java/org/hswebframework/web/authorization/basic/web/AuthorizationController.java b/hsweb-authorization/hsweb-authorization-basic/src/main/java/org/hswebframework/web/authorization/basic/web/AuthorizationController.java index 7282a1dfc..b2c1f1638 100644 --- a/hsweb-authorization/hsweb-authorization-basic/src/main/java/org/hswebframework/web/authorization/basic/web/AuthorizationController.java +++ b/hsweb-authorization/hsweb-authorization-basic/src/main/java/org/hswebframework/web/authorization/basic/web/AuthorizationController.java @@ -32,6 +32,7 @@ import org.hswebframework.web.logging.AccessLogger; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.context.ApplicationEventPublisher; import org.springframework.http.MediaType; +import org.springframework.util.Assert; import org.springframework.web.bind.annotation.*; import javax.servlet.http.HttpServletRequest; @@ -77,9 +78,8 @@ public class AuthorizationController { public ResponseMessage> authorize(@ApiParam(example = "{\"username\":\"admin\",\"password\":\"admin\"}") @RequestBody Map parameter) { - return doLogin(Objects.requireNonNull(parameter.get("username"), "用户名不能为空") - , Objects.requireNonNull(parameter.get("password"), "密码不能为空") - , parameter); + + return doLogin(parameter.get("username"), parameter.get("password"), parameter); } @PostMapping(value = "/login", consumes = MediaType.APPLICATION_FORM_URLENCODED_VALUE) @@ -93,6 +93,9 @@ public class AuthorizationController { @SneakyThrows protected ResponseMessage> doLogin(String username, String password, Map parameter) { + Assert.hasLength(username, "用户名不能为空"); + Assert.hasLength(password, "密码不能为空"); + AuthorizationFailedEvent.Reason reason = AuthorizationFailedEvent.Reason.OTHER; Function parameterGetter = parameter::get; try { diff --git a/hsweb-system/hsweb-system-authorization/hsweb-system-authorization-local/src/main/java/org/hswebframework/web/service/authorization/simple/SimpleUserService.java b/hsweb-system/hsweb-system-authorization/hsweb-system-authorization-local/src/main/java/org/hswebframework/web/service/authorization/simple/SimpleUserService.java index d79454df2..7610bc70d 100644 --- a/hsweb-system/hsweb-system-authorization/hsweb-system-authorization-local/src/main/java/org/hswebframework/web/service/authorization/simple/SimpleUserService.java +++ b/hsweb-system/hsweb-system-authorization/hsweb-system-authorization-local/src/main/java/org/hswebframework/web/service/authorization/simple/SimpleUserService.java @@ -25,6 +25,7 @@ import org.springframework.cache.annotation.Caching; import org.springframework.context.ApplicationEventPublisher; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; +import org.springframework.util.Assert; import org.springframework.util.CollectionUtils; import org.springframework.util.StringUtils; @@ -78,7 +79,7 @@ public class SimpleUserService extends AbstractService @Override @Transactional(readOnly = true) public UserEntity selectByUsername(String username) { - if (null == username) { + if (!StringUtils.hasLength(username)) { return null; } return createQuery().where("username", username).single(); @@ -87,8 +88,8 @@ public class SimpleUserService extends AbstractService @Override @Transactional(readOnly = true) public UserEntity selectByUserNameAndPassword(String plainUsername, String plainPassword) { - Objects.requireNonNull(plainUsername); - Objects.requireNonNull(plainPassword); + Assert.hasLength(plainUsername, "用户名不能为空"); + Assert.hasLength(plainPassword, "密码不能为空"); return Optional.ofNullable(selectByUsername(plainUsername)) .filter(user -> encodePassword(plainPassword, user.getSalt()).equals(user.getPassword())) diff --git a/hsweb-system/hsweb-system-authorization/hsweb-system-authorization-starter/src/test/groovy/org/hswebframework/web/authorization/starter/FixBug89Test.groovy b/hsweb-system/hsweb-system-authorization/hsweb-system-authorization-starter/src/test/groovy/org/hswebframework/web/authorization/starter/FixBug89Test.groovy new file mode 100644 index 000000000..a81790926 --- /dev/null +++ b/hsweb-system/hsweb-system-authorization/hsweb-system-authorization-starter/src/test/groovy/org/hswebframework/web/authorization/starter/FixBug89Test.groovy @@ -0,0 +1,73 @@ +package org.hswebframework.web.authorization.starter + +import com.alibaba.fastjson.JSON +import org.hswebframework.web.entity.authorization.UserEntity +import org.hswebframework.web.service.authorization.UserService +import org.springframework.beans.factory.annotation.Autowired +import org.springframework.boot.test.context.SpringBootTest +import org.springframework.context.ConfigurableApplicationContext +import org.springframework.context.annotation.Configuration +import org.springframework.http.MediaType +import org.springframework.test.context.ContextConfiguration +import org.springframework.test.context.web.WebAppConfiguration +import org.springframework.test.web.servlet.MockMvc +import org.springframework.test.web.servlet.setup.MockMvcBuilders +import spock.lang.Shared +import spock.lang.Specification +import static org.springframework.test.web.servlet.request.MockMvcRequestBuilders.* + + +@WebAppConfiguration +@ContextConfiguration +@SpringBootTest(classes = [TestApplication.class], properties = ["classpath:application.yml"]) +@Configuration +class FixBug89Test extends Specification { + + @Autowired + private ConfigurableApplicationContext context; + + @Shared + private MockMvc mockMvc; + + @Autowired + private UserService userService; + + + void setup() { + mockMvc = MockMvcBuilders.webAppContextSetup(context).build(); + UserEntity userEntity = userService.createEntity(); + userEntity.setName("test"); + userEntity.setUsername("fix-bug#89"); + userEntity.setPassword("fix-bug#89"); + if (userService.selectByUsername("fix-bug#89") == null) { + userService.insert(userEntity); + } + } + + def doLogin(username, password) { + def response = mockMvc.perform(post("/authorize/login") + .contentType(MediaType.APPLICATION_JSON) + .content("""{"username":"${username}","password":"${password}"}""")) +// .andExpect(status().is(200)) + .andReturn() + .getResponse() + .getContentAsString() + return JSON.parseObject(response).get("status"); + } + + def "测试用户名为空时登录依旧能登录成功问题"() { + given: + def user = userService.selectByUserNameAndPassword("fix-bug#89", "fix-bug#89"); + expect: + user != null + doLogin(username, password) == code + where: + username | password | code + "fix-bug#89" | "fix-bug#89" | 200 + "fix-bug#89" | "" | 400 + "" | "fix-bug#89" | 400 + "" | "" | 400 + + + } +} diff --git a/hsweb-system/hsweb-system-authorization/hsweb-system-authorization-starter/src/test/groovy/org/hswebframework/web/authorization/starter/TestApplication.java b/hsweb-system/hsweb-system-authorization/hsweb-system-authorization-starter/src/test/groovy/org/hswebframework/web/authorization/starter/TestApplication.java index 67ac7bab7..8c2081048 100644 --- a/hsweb-system/hsweb-system-authorization/hsweb-system-authorization-starter/src/test/groovy/org/hswebframework/web/authorization/starter/TestApplication.java +++ b/hsweb-system/hsweb-system-authorization/hsweb-system-authorization-starter/src/test/groovy/org/hswebframework/web/authorization/starter/TestApplication.java @@ -1,6 +1,9 @@ package org.hswebframework.web.authorization.starter; +import org.hswebframework.web.authorization.basic.web.AuthorizationController; import org.springframework.boot.autoconfigure.SpringBootApplication; +import org.springframework.context.annotation.Bean; +import org.springframework.context.annotation.Configuration; import org.springframework.test.context.web.WebAppConfiguration; /** @@ -9,6 +12,13 @@ import org.springframework.test.context.web.WebAppConfiguration; */ @SpringBootApplication @WebAppConfiguration +@Configuration public class TestApplication { + @Bean + public AuthorizationController authorizationController() { + return new AuthorizationController(); + } + + } From 238fe0a1a9069b89354b8311786f776b477c1ba9 Mon Sep 17 00:00:00 2001 From: zhouhao Date: Wed, 10 Oct 2018 09:39:34 +0800 Subject: [PATCH 17/18] 3.0.1 --- .../hsweb-authorization-api/pom.xml | 2 +- .../listener/AuthorizationListener.java | 18 ------ .../AuthorizationListenerDispatcher.java | 62 ------------------- .../hsweb-authorization-basic/pom.xml | 2 +- .../hsweb-authorization-jwt/pom.xml | 2 +- .../pom.xml | 2 +- .../hsweb-authorization-oauth2-client/pom.xml | 2 +- .../hsweb-authorization-oauth2-core/pom.xml | 2 +- .../hsweb-authorization-oauth2/pom.xml | 2 +- hsweb-authorization/pom.xml | 2 +- hsweb-boost/hsweb-boost-aop/pom.xml | 2 +- hsweb-boost/hsweb-boost-excel/pom.xml | 2 +- hsweb-boost/hsweb-boost-ftp/pom.xml | 2 +- hsweb-boost/pom.xml | 2 +- hsweb-commons/hsweb-commons-bean/pom.xml | 2 +- .../hsweb-commons-controller/pom.xml | 2 +- .../hsweb-commons-dao-api/pom.xml | 2 +- .../hsweb-commons-dao-mybatis/pom.xml | 2 +- hsweb-commons/hsweb-commons-dao/pom.xml | 2 +- hsweb-commons/hsweb-commons-entity/pom.xml | 2 +- hsweb-commons/hsweb-commons-model/pom.xml | 2 +- .../hsweb-commons-service-api/pom.xml | 2 +- .../hsweb-commons-service-oauth2/pom.xml | 2 +- .../hsweb-commons-service-simple/pom.xml | 2 +- hsweb-commons/hsweb-commons-service/pom.xml | 2 +- hsweb-commons/hsweb-commons-utils/pom.xml | 2 +- hsweb-commons/pom.xml | 2 +- .../hsweb-concurrent-async-job/pom.xml | 2 +- .../hsweb-concurrent-cache/pom.xml | 2 +- .../hsweb-concurrent-counter-api/pom.xml | 2 +- .../hsweb-concurrent-counter-redis/pom.xml | 2 +- .../hsweb-concurrent-counter/pom.xml | 2 +- .../hsweb-concurrent-lock-api/pom.xml | 2 +- .../hsweb-concurrent-lock-redis/pom.xml | 2 +- .../hsweb-concurrent-lock-starter/pom.xml | 2 +- .../hsweb-concurrent-lock/pom.xml | 2 +- hsweb-concurrent/pom.xml | 2 +- hsweb-core/pom.xml | 2 +- hsweb-datasource/hsweb-datasource-api/pom.xml | 2 +- hsweb-datasource/hsweb-datasource-jta/pom.xml | 2 +- hsweb-datasource/hsweb-datasource-web/pom.xml | 2 +- hsweb-datasource/pom.xml | 2 +- .../hsweb-access-logging-aop/pom.xml | 2 +- .../hsweb-access-logging-api/pom.xml | 2 +- hsweb-logging/pom.xml | 2 +- hsweb-message/hsweb-message-api/pom.xml | 2 +- hsweb-message/hsweb-message-jms/pom.xml | 2 +- hsweb-message/hsweb-message-redis/pom.xml | 2 +- hsweb-message/hsweb-message-websocket/pom.xml | 2 +- hsweb-message/pom.xml | 2 +- .../hsweb-spring-boot-starter/pom.xml | 2 +- hsweb-starter/pom.xml | 2 +- .../hsweb-system-authorization-api/pom.xml | 2 +- .../hsweb-system-authorization-local/pom.xml | 2 +- .../pom.xml | 2 +- .../hsweb-system-authorization-web/pom.xml | 2 +- .../hsweb-system-authorization/pom.xml | 2 +- .../hsweb-system-config-api/pom.xml | 2 +- .../hsweb-system-config-local/pom.xml | 2 +- .../hsweb-system-config-starter/pom.xml | 2 +- .../hsweb-system-config-web/pom.xml | 2 +- hsweb-system/hsweb-system-config/pom.xml | 2 +- .../hsweb-system-dashboard-api/pom.xml | 2 +- .../hsweb-system-dashboard-local/pom.xml | 2 +- .../hsweb-system-dashboard-starter/pom.xml | 2 +- .../hsweb-system-dashboard-web/pom.xml | 2 +- hsweb-system/hsweb-system-dashboard/pom.xml | 2 +- .../hsweb-system-database-manager-api/pom.xml | 2 +- .../pom.xml | 2 +- .../pom.xml | 2 +- .../hsweb-system-database-manager-web/pom.xml | 2 +- .../hsweb-system-database-manager/pom.xml | 2 +- .../hsweb-system-datasource-api/pom.xml | 2 +- .../hsweb-system-datasource-local/pom.xml | 2 +- .../hsweb-system-datasource-starter/pom.xml | 2 +- .../hsweb-system-datasource-web/pom.xml | 2 +- hsweb-system/hsweb-system-datasource/pom.xml | 2 +- hsweb-system/hsweb-system-dev-tools/pom.xml | 2 +- .../hsweb-system-dictionary-api/pom.xml | 2 +- .../hsweb-system-dictionary-local/pom.xml | 2 +- .../hsweb-system-dictionary-starter/pom.xml | 2 +- .../hsweb-system-dictionary-web/pom.xml | 2 +- hsweb-system/hsweb-system-dictionary/pom.xml | 2 +- .../hsweb-system-dynamic-form-api/pom.xml | 2 +- .../hsweb-system-dynamic-form-local/pom.xml | 2 +- .../hsweb-system-dynamic-form-starter/pom.xml | 2 +- .../hsweb-system-dynamic-form-web/pom.xml | 2 +- .../hsweb-system-dynamic-form/pom.xml | 2 +- .../hsweb-system-file-api/pom.xml | 2 +- .../hsweb-system-file-local/pom.xml | 2 +- .../hsweb-system-file-oauth2/pom.xml | 2 +- .../hsweb-system-file-starter/pom.xml | 2 +- .../hsweb-system-file-web/pom.xml | 2 +- hsweb-system/hsweb-system-file/pom.xml | 2 +- .../hsweb-system-oauth2-client-api/pom.xml | 2 +- .../hsweb-system-oauth2-client-local/pom.xml | 2 +- .../pom.xml | 2 +- .../hsweb-system-oauth2-client-web/pom.xml | 2 +- .../hsweb-system-oauth2-client/pom.xml | 2 +- .../hsweb-system-oauth2-server-local/pom.xml | 2 +- .../pom.xml | 2 +- .../hsweb-system-oauth2-server-web/pom.xml | 2 +- .../hsweb-system-oauth2-server/pom.xml | 2 +- .../hsweb-system-organizational-api/pom.xml | 2 +- .../pom.xml | 2 +- .../hsweb-system-organizational-local/pom.xml | 2 +- .../pom.xml | 2 +- .../hsweb-system-organizational-web/pom.xml | 2 +- .../hsweb-system-organizational/pom.xml | 2 +- .../hsweb-system-schedule-api/pom.xml | 2 +- .../hsweb-system-schedule-local/pom.xml | 2 +- .../hsweb-system-schedule-starter/pom.xml | 2 +- .../hsweb-system-schedule-web/pom.xml | 2 +- hsweb-system/hsweb-system-schedule/pom.xml | 2 +- .../hsweb-system-script-api/pom.xml | 2 +- .../hsweb-system-script-local/pom.xml | 2 +- .../hsweb-system-script-starter/pom.xml | 2 +- .../hsweb-system-script-web/pom.xml | 2 +- hsweb-system/hsweb-system-script/pom.xml | 2 +- .../hsweb-system-template-api/pom.xml | 2 +- .../hsweb-system-template-local/pom.xml | 2 +- .../hsweb-system-template-starter/pom.xml | 2 +- .../hsweb-system-template-web/pom.xml | 2 +- hsweb-system/hsweb-system-template/pom.xml | 2 +- .../hsweb-system-workflow-local/pom.xml | 2 +- .../hsweb-system-workflow-starter/pom.xml | 2 +- hsweb-system/hsweb-system-workflow/pom.xml | 2 +- hsweb-system/pom.xml | 2 +- hsweb-tests/pom.xml | 2 +- .../hsweb-thirdparty-ueditor/pom.xml | 2 +- hsweb-thirdparty/pom.xml | 2 +- pom.xml | 2 +- 132 files changed, 130 insertions(+), 210 deletions(-) delete mode 100644 hsweb-authorization/hsweb-authorization-api/src/main/java/org/hswebframework/web/authorization/listener/AuthorizationListener.java delete mode 100644 hsweb-authorization/hsweb-authorization-api/src/main/java/org/hswebframework/web/authorization/listener/AuthorizationListenerDispatcher.java diff --git a/hsweb-authorization/hsweb-authorization-api/pom.xml b/hsweb-authorization/hsweb-authorization-api/pom.xml index 9eb904914..2b832f0f2 100644 --- a/hsweb-authorization/hsweb-authorization-api/pom.xml +++ b/hsweb-authorization/hsweb-authorization-api/pom.xml @@ -5,7 +5,7 @@ hsweb-authorization org.hswebframework.web - 3.0.1-SNAPSHOT + 3.0.1 4.0.0 diff --git a/hsweb-authorization/hsweb-authorization-api/src/main/java/org/hswebframework/web/authorization/listener/AuthorizationListener.java b/hsweb-authorization/hsweb-authorization-api/src/main/java/org/hswebframework/web/authorization/listener/AuthorizationListener.java deleted file mode 100644 index 5ff18934d..000000000 --- a/hsweb-authorization/hsweb-authorization-api/src/main/java/org/hswebframework/web/authorization/listener/AuthorizationListener.java +++ /dev/null @@ -1,18 +0,0 @@ - -package org.hswebframework.web.authorization.listener; - - -import org.hswebframework.web.authorization.listener.event.AuthorizationEvent; - -/** - * 授权监听器,用于监听授权过程,以及自定义授权逻辑 - * 已弃用,请使用{@link org.springframework.context.ApplicationListener} - * - * @author zhouhao - * @see AuthorizationEvent - * @since 3.0 - */ -@Deprecated -public interface AuthorizationListener { - void on(E event); -} diff --git a/hsweb-authorization/hsweb-authorization-api/src/main/java/org/hswebframework/web/authorization/listener/AuthorizationListenerDispatcher.java b/hsweb-authorization/hsweb-authorization-api/src/main/java/org/hswebframework/web/authorization/listener/AuthorizationListenerDispatcher.java deleted file mode 100644 index 0ad5f54a6..000000000 --- a/hsweb-authorization/hsweb-authorization-api/src/main/java/org/hswebframework/web/authorization/listener/AuthorizationListenerDispatcher.java +++ /dev/null @@ -1,62 +0,0 @@ -/* - * Copyright 2016 http://www.hswebframework.org - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * - * - */ - -package org.hswebframework.web.authorization.listener; - -import org.hswebframework.web.authorization.listener.event.AuthorizationEvent; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.context.ApplicationEventPublisher; - -import java.util.*; - -/** - * {@link org.springframework.context.ApplicationEventPublisher} - * @author zhouhao - */ -@Deprecated -public class AuthorizationListenerDispatcher { - - @Autowired - private ApplicationEventPublisher eventPublisher; - - - private Map, List> listenerStore = new HashMap<>(); - - public void addListener(Class eventClass, AuthorizationListener listener) { - listenerStore.computeIfAbsent(eventClass, (k) -> new LinkedList<>()) - .add(listener); - } - - @SuppressWarnings("unchecked") - public int doEvent(Class eventType, E event) { - eventPublisher.publishEvent(event); -// List> store = (List) listenerStore.get(eventType); -// if (null != store) { -// store.forEach(listener -> listener.on(event)); -// return store.size(); -// } - return 1; - } - - @SuppressWarnings("unchecked") - public int doEvent(E event) { - eventPublisher.publishEvent(event); - return 1; - //return doEvent((Class) event.getClass(), event); - } -} diff --git a/hsweb-authorization/hsweb-authorization-basic/pom.xml b/hsweb-authorization/hsweb-authorization-basic/pom.xml index 27d9d1871..a0dc2878c 100644 --- a/hsweb-authorization/hsweb-authorization-basic/pom.xml +++ b/hsweb-authorization/hsweb-authorization-basic/pom.xml @@ -5,7 +5,7 @@ hsweb-authorization org.hswebframework.web - 3.0.1-SNAPSHOT + 3.0.1 4.0.0 diff --git a/hsweb-authorization/hsweb-authorization-jwt/pom.xml b/hsweb-authorization/hsweb-authorization-jwt/pom.xml index 7ed6220e9..b35a8c307 100644 --- a/hsweb-authorization/hsweb-authorization-jwt/pom.xml +++ b/hsweb-authorization/hsweb-authorization-jwt/pom.xml @@ -5,7 +5,7 @@ hsweb-authorization org.hswebframework.web - 3.0.1-SNAPSHOT + 3.0.1 4.0.0 diff --git a/hsweb-authorization/hsweb-authorization-oauth2/hsweb-authorization-oauth2-auth-server/pom.xml b/hsweb-authorization/hsweb-authorization-oauth2/hsweb-authorization-oauth2-auth-server/pom.xml index 18b85add3..84607848a 100644 --- a/hsweb-authorization/hsweb-authorization-oauth2/hsweb-authorization-oauth2-auth-server/pom.xml +++ b/hsweb-authorization/hsweb-authorization-oauth2/hsweb-authorization-oauth2-auth-server/pom.xml @@ -23,7 +23,7 @@ hsweb-authorization-oauth2 org.hswebframework.web - 3.0.1-SNAPSHOT + 3.0.1 4.0.0 diff --git a/hsweb-authorization/hsweb-authorization-oauth2/hsweb-authorization-oauth2-client/pom.xml b/hsweb-authorization/hsweb-authorization-oauth2/hsweb-authorization-oauth2-client/pom.xml index 7856a33ca..3d4f55715 100644 --- a/hsweb-authorization/hsweb-authorization-oauth2/hsweb-authorization-oauth2-client/pom.xml +++ b/hsweb-authorization/hsweb-authorization-oauth2/hsweb-authorization-oauth2-client/pom.xml @@ -23,7 +23,7 @@ hsweb-authorization-oauth2 org.hswebframework.web - 3.0.1-SNAPSHOT + 3.0.1 4.0.0 diff --git a/hsweb-authorization/hsweb-authorization-oauth2/hsweb-authorization-oauth2-core/pom.xml b/hsweb-authorization/hsweb-authorization-oauth2/hsweb-authorization-oauth2-core/pom.xml index a3b3f286b..0a75454f5 100644 --- a/hsweb-authorization/hsweb-authorization-oauth2/hsweb-authorization-oauth2-core/pom.xml +++ b/hsweb-authorization/hsweb-authorization-oauth2/hsweb-authorization-oauth2-core/pom.xml @@ -23,7 +23,7 @@ hsweb-authorization-oauth2 org.hswebframework.web - 3.0.1-SNAPSHOT + 3.0.1 4.0.0 diff --git a/hsweb-authorization/hsweb-authorization-oauth2/pom.xml b/hsweb-authorization/hsweb-authorization-oauth2/pom.xml index 75ea22cd2..0d24e3349 100644 --- a/hsweb-authorization/hsweb-authorization-oauth2/pom.xml +++ b/hsweb-authorization/hsweb-authorization-oauth2/pom.xml @@ -5,7 +5,7 @@ hsweb-authorization org.hswebframework.web - 3.0.1-SNAPSHOT + 3.0.1 4.0.0 diff --git a/hsweb-authorization/pom.xml b/hsweb-authorization/pom.xml index 03691fa50..0f800adff 100644 --- a/hsweb-authorization/pom.xml +++ b/hsweb-authorization/pom.xml @@ -5,7 +5,7 @@ hsweb-framework org.hswebframework.web - 3.0.1-SNAPSHOT + 3.0.1 4.0.0 diff --git a/hsweb-boost/hsweb-boost-aop/pom.xml b/hsweb-boost/hsweb-boost-aop/pom.xml index a0f23020c..1aed148b6 100644 --- a/hsweb-boost/hsweb-boost-aop/pom.xml +++ b/hsweb-boost/hsweb-boost-aop/pom.xml @@ -23,7 +23,7 @@ hsweb-boost org.hswebframework.web - 3.0.1-SNAPSHOT + 3.0.1 4.0.0 diff --git a/hsweb-boost/hsweb-boost-excel/pom.xml b/hsweb-boost/hsweb-boost-excel/pom.xml index c4ea533b3..54b214fd1 100644 --- a/hsweb-boost/hsweb-boost-excel/pom.xml +++ b/hsweb-boost/hsweb-boost-excel/pom.xml @@ -5,7 +5,7 @@ hsweb-boost org.hswebframework.web - 3.0.1-SNAPSHOT + 3.0.1 4.0.0 diff --git a/hsweb-boost/hsweb-boost-ftp/pom.xml b/hsweb-boost/hsweb-boost-ftp/pom.xml index d370efc98..65b6986a3 100644 --- a/hsweb-boost/hsweb-boost-ftp/pom.xml +++ b/hsweb-boost/hsweb-boost-ftp/pom.xml @@ -5,7 +5,7 @@ hsweb-boost org.hswebframework.web - 3.0.1-SNAPSHOT + 3.0.1 4.0.0 diff --git a/hsweb-boost/pom.xml b/hsweb-boost/pom.xml index bfea823f9..de658633a 100644 --- a/hsweb-boost/pom.xml +++ b/hsweb-boost/pom.xml @@ -23,7 +23,7 @@ hsweb-framework org.hswebframework.web - 3.0.1-SNAPSHOT + 3.0.1 4.0.0 diff --git a/hsweb-commons/hsweb-commons-bean/pom.xml b/hsweb-commons/hsweb-commons-bean/pom.xml index 0ffee620b..e14f9cc94 100644 --- a/hsweb-commons/hsweb-commons-bean/pom.xml +++ b/hsweb-commons/hsweb-commons-bean/pom.xml @@ -5,7 +5,7 @@ hsweb-commons org.hswebframework.web - 3.0.1-SNAPSHOT + 3.0.1 ../pom.xml 4.0.0 diff --git a/hsweb-commons/hsweb-commons-controller/pom.xml b/hsweb-commons/hsweb-commons-controller/pom.xml index e8331e16c..0a499b227 100644 --- a/hsweb-commons/hsweb-commons-controller/pom.xml +++ b/hsweb-commons/hsweb-commons-controller/pom.xml @@ -23,7 +23,7 @@ hsweb-commons org.hswebframework.web - 3.0.1-SNAPSHOT + 3.0.1 ../pom.xml 4.0.0 diff --git a/hsweb-commons/hsweb-commons-dao/hsweb-commons-dao-api/pom.xml b/hsweb-commons/hsweb-commons-dao/hsweb-commons-dao-api/pom.xml index cef209929..4ec9a13c1 100644 --- a/hsweb-commons/hsweb-commons-dao/hsweb-commons-dao-api/pom.xml +++ b/hsweb-commons/hsweb-commons-dao/hsweb-commons-dao-api/pom.xml @@ -23,7 +23,7 @@ hsweb-commons-dao org.hswebframework.web - 3.0.1-SNAPSHOT + 3.0.1 ../pom.xml 4.0.0 diff --git a/hsweb-commons/hsweb-commons-dao/hsweb-commons-dao-mybatis/pom.xml b/hsweb-commons/hsweb-commons-dao/hsweb-commons-dao-mybatis/pom.xml index f459d6196..eba726218 100644 --- a/hsweb-commons/hsweb-commons-dao/hsweb-commons-dao-mybatis/pom.xml +++ b/hsweb-commons/hsweb-commons-dao/hsweb-commons-dao-mybatis/pom.xml @@ -23,7 +23,7 @@ hsweb-commons-dao org.hswebframework.web - 3.0.1-SNAPSHOT + 3.0.1 ../pom.xml 4.0.0 diff --git a/hsweb-commons/hsweb-commons-dao/pom.xml b/hsweb-commons/hsweb-commons-dao/pom.xml index ec3e07fcc..a3e2c0d26 100644 --- a/hsweb-commons/hsweb-commons-dao/pom.xml +++ b/hsweb-commons/hsweb-commons-dao/pom.xml @@ -23,7 +23,7 @@ hsweb-commons org.hswebframework.web - 3.0.1-SNAPSHOT + 3.0.1 ../pom.xml 4.0.0 diff --git a/hsweb-commons/hsweb-commons-entity/pom.xml b/hsweb-commons/hsweb-commons-entity/pom.xml index 6ade6f479..41e9e4066 100644 --- a/hsweb-commons/hsweb-commons-entity/pom.xml +++ b/hsweb-commons/hsweb-commons-entity/pom.xml @@ -23,7 +23,7 @@ hsweb-commons org.hswebframework.web - 3.0.1-SNAPSHOT + 3.0.1 4.0.0 diff --git a/hsweb-commons/hsweb-commons-model/pom.xml b/hsweb-commons/hsweb-commons-model/pom.xml index 4bef32df8..198627af5 100644 --- a/hsweb-commons/hsweb-commons-model/pom.xml +++ b/hsweb-commons/hsweb-commons-model/pom.xml @@ -23,7 +23,7 @@ hsweb-commons org.hswebframework.web - 3.0.1-SNAPSHOT + 3.0.1 4.0.0 diff --git a/hsweb-commons/hsweb-commons-service/hsweb-commons-service-api/pom.xml b/hsweb-commons/hsweb-commons-service/hsweb-commons-service-api/pom.xml index b9e9ccfa8..49f6d272d 100644 --- a/hsweb-commons/hsweb-commons-service/hsweb-commons-service-api/pom.xml +++ b/hsweb-commons/hsweb-commons-service/hsweb-commons-service-api/pom.xml @@ -23,7 +23,7 @@ hsweb-commons-service org.hswebframework.web - 3.0.1-SNAPSHOT + 3.0.1 ../pom.xml 4.0.0 diff --git a/hsweb-commons/hsweb-commons-service/hsweb-commons-service-oauth2/pom.xml b/hsweb-commons/hsweb-commons-service/hsweb-commons-service-oauth2/pom.xml index c34f72f3e..097c6fb0f 100644 --- a/hsweb-commons/hsweb-commons-service/hsweb-commons-service-oauth2/pom.xml +++ b/hsweb-commons/hsweb-commons-service/hsweb-commons-service-oauth2/pom.xml @@ -5,7 +5,7 @@ hsweb-commons-service org.hswebframework.web - 3.0.1-SNAPSHOT + 3.0.1 ../pom.xml diff --git a/hsweb-commons/hsweb-commons-service/hsweb-commons-service-simple/pom.xml b/hsweb-commons/hsweb-commons-service/hsweb-commons-service-simple/pom.xml index 3e6065cb0..8e06293b8 100644 --- a/hsweb-commons/hsweb-commons-service/hsweb-commons-service-simple/pom.xml +++ b/hsweb-commons/hsweb-commons-service/hsweb-commons-service-simple/pom.xml @@ -23,7 +23,7 @@ hsweb-commons-service org.hswebframework.web - 3.0.1-SNAPSHOT + 3.0.1 ../pom.xml diff --git a/hsweb-commons/hsweb-commons-service/pom.xml b/hsweb-commons/hsweb-commons-service/pom.xml index 1c1d6fb5c..20193d6df 100644 --- a/hsweb-commons/hsweb-commons-service/pom.xml +++ b/hsweb-commons/hsweb-commons-service/pom.xml @@ -23,7 +23,7 @@ hsweb-commons org.hswebframework.web - 3.0.1-SNAPSHOT + 3.0.1 ../pom.xml diff --git a/hsweb-commons/hsweb-commons-utils/pom.xml b/hsweb-commons/hsweb-commons-utils/pom.xml index 7c36e959e..a60993065 100644 --- a/hsweb-commons/hsweb-commons-utils/pom.xml +++ b/hsweb-commons/hsweb-commons-utils/pom.xml @@ -23,7 +23,7 @@ hsweb-commons org.hswebframework.web - 3.0.1-SNAPSHOT + 3.0.1 ../pom.xml 4.0.0 diff --git a/hsweb-commons/pom.xml b/hsweb-commons/pom.xml index a72aaa0ec..9d43959ee 100644 --- a/hsweb-commons/pom.xml +++ b/hsweb-commons/pom.xml @@ -23,7 +23,7 @@ hsweb-framework org.hswebframework.web - 3.0.1-SNAPSHOT + 3.0.1 ../pom.xml 4.0.0 diff --git a/hsweb-concurrent/hsweb-concurrent-async-job/pom.xml b/hsweb-concurrent/hsweb-concurrent-async-job/pom.xml index 42d511912..b03837bcc 100644 --- a/hsweb-concurrent/hsweb-concurrent-async-job/pom.xml +++ b/hsweb-concurrent/hsweb-concurrent-async-job/pom.xml @@ -5,7 +5,7 @@ hsweb-concurrent org.hswebframework.web - 3.0.1-SNAPSHOT + 3.0.1 4.0.0 diff --git a/hsweb-concurrent/hsweb-concurrent-cache/pom.xml b/hsweb-concurrent/hsweb-concurrent-cache/pom.xml index c2df16a69..bfc94c89e 100644 --- a/hsweb-concurrent/hsweb-concurrent-cache/pom.xml +++ b/hsweb-concurrent/hsweb-concurrent-cache/pom.xml @@ -22,7 +22,7 @@ hsweb-concurrent org.hswebframework.web - 3.0.1-SNAPSHOT + 3.0.1 4.0.0 diff --git a/hsweb-concurrent/hsweb-concurrent-counter/hsweb-concurrent-counter-api/pom.xml b/hsweb-concurrent/hsweb-concurrent-counter/hsweb-concurrent-counter-api/pom.xml index daa4e5d40..7d8fbbb7f 100644 --- a/hsweb-concurrent/hsweb-concurrent-counter/hsweb-concurrent-counter-api/pom.xml +++ b/hsweb-concurrent/hsweb-concurrent-counter/hsweb-concurrent-counter-api/pom.xml @@ -22,7 +22,7 @@ hsweb-concurrent-counter org.hswebframework.web - 3.0.1-SNAPSHOT + 3.0.1 4.0.0 diff --git a/hsweb-concurrent/hsweb-concurrent-counter/hsweb-concurrent-counter-redis/pom.xml b/hsweb-concurrent/hsweb-concurrent-counter/hsweb-concurrent-counter-redis/pom.xml index e6dc88a1a..8c09c6338 100644 --- a/hsweb-concurrent/hsweb-concurrent-counter/hsweb-concurrent-counter-redis/pom.xml +++ b/hsweb-concurrent/hsweb-concurrent-counter/hsweb-concurrent-counter-redis/pom.xml @@ -5,7 +5,7 @@ hsweb-concurrent-counter org.hswebframework.web - 3.0.1-SNAPSHOT + 3.0.1 4.0.0 diff --git a/hsweb-concurrent/hsweb-concurrent-counter/pom.xml b/hsweb-concurrent/hsweb-concurrent-counter/pom.xml index bbdbd9746..8e0e173cd 100644 --- a/hsweb-concurrent/hsweb-concurrent-counter/pom.xml +++ b/hsweb-concurrent/hsweb-concurrent-counter/pom.xml @@ -22,7 +22,7 @@ hsweb-concurrent org.hswebframework.web - 3.0.1-SNAPSHOT + 3.0.1 4.0.0 diff --git a/hsweb-concurrent/hsweb-concurrent-lock/hsweb-concurrent-lock-api/pom.xml b/hsweb-concurrent/hsweb-concurrent-lock/hsweb-concurrent-lock-api/pom.xml index 03d338bdd..438b80b2a 100644 --- a/hsweb-concurrent/hsweb-concurrent-lock/hsweb-concurrent-lock-api/pom.xml +++ b/hsweb-concurrent/hsweb-concurrent-lock/hsweb-concurrent-lock-api/pom.xml @@ -5,7 +5,7 @@ hsweb-concurrent-lock org.hswebframework.web - 3.0.1-SNAPSHOT + 3.0.1 4.0.0 diff --git a/hsweb-concurrent/hsweb-concurrent-lock/hsweb-concurrent-lock-redis/pom.xml b/hsweb-concurrent/hsweb-concurrent-lock/hsweb-concurrent-lock-redis/pom.xml index 962403ac5..a7c7994b5 100644 --- a/hsweb-concurrent/hsweb-concurrent-lock/hsweb-concurrent-lock-redis/pom.xml +++ b/hsweb-concurrent/hsweb-concurrent-lock/hsweb-concurrent-lock-redis/pom.xml @@ -5,7 +5,7 @@ hsweb-concurrent-lock org.hswebframework.web - 3.0.1-SNAPSHOT + 3.0.1 4.0.0 diff --git a/hsweb-concurrent/hsweb-concurrent-lock/hsweb-concurrent-lock-starter/pom.xml b/hsweb-concurrent/hsweb-concurrent-lock/hsweb-concurrent-lock-starter/pom.xml index ba6c6f992..aba641cd2 100644 --- a/hsweb-concurrent/hsweb-concurrent-lock/hsweb-concurrent-lock-starter/pom.xml +++ b/hsweb-concurrent/hsweb-concurrent-lock/hsweb-concurrent-lock-starter/pom.xml @@ -5,7 +5,7 @@ hsweb-concurrent-lock org.hswebframework.web - 3.0.1-SNAPSHOT + 3.0.1 4.0.0 diff --git a/hsweb-concurrent/hsweb-concurrent-lock/pom.xml b/hsweb-concurrent/hsweb-concurrent-lock/pom.xml index 571fc549f..9556c1f50 100644 --- a/hsweb-concurrent/hsweb-concurrent-lock/pom.xml +++ b/hsweb-concurrent/hsweb-concurrent-lock/pom.xml @@ -22,7 +22,7 @@ hsweb-concurrent org.hswebframework.web - 3.0.1-SNAPSHOT + 3.0.1 4.0.0 diff --git a/hsweb-concurrent/pom.xml b/hsweb-concurrent/pom.xml index 7faf14e26..938d10e4a 100644 --- a/hsweb-concurrent/pom.xml +++ b/hsweb-concurrent/pom.xml @@ -22,7 +22,7 @@ hsweb-framework org.hswebframework.web - 3.0.1-SNAPSHOT + 3.0.1 4.0.0 diff --git a/hsweb-core/pom.xml b/hsweb-core/pom.xml index e802db824..2a11d56e3 100644 --- a/hsweb-core/pom.xml +++ b/hsweb-core/pom.xml @@ -5,7 +5,7 @@ hsweb-framework org.hswebframework.web - 3.0.1-SNAPSHOT + 3.0.1 ../pom.xml 4.0.0 diff --git a/hsweb-datasource/hsweb-datasource-api/pom.xml b/hsweb-datasource/hsweb-datasource-api/pom.xml index 3c8f840b8..4f94013f0 100644 --- a/hsweb-datasource/hsweb-datasource-api/pom.xml +++ b/hsweb-datasource/hsweb-datasource-api/pom.xml @@ -5,7 +5,7 @@ hsweb-datasource org.hswebframework.web - 3.0.1-SNAPSHOT + 3.0.1 ../pom.xml diff --git a/hsweb-datasource/hsweb-datasource-jta/pom.xml b/hsweb-datasource/hsweb-datasource-jta/pom.xml index b3be409ac..d125b80fc 100644 --- a/hsweb-datasource/hsweb-datasource-jta/pom.xml +++ b/hsweb-datasource/hsweb-datasource-jta/pom.xml @@ -5,7 +5,7 @@ hsweb-datasource org.hswebframework.web - 3.0.1-SNAPSHOT + 3.0.1 ../pom.xml diff --git a/hsweb-datasource/hsweb-datasource-web/pom.xml b/hsweb-datasource/hsweb-datasource-web/pom.xml index 387d32212..2c9fec927 100644 --- a/hsweb-datasource/hsweb-datasource-web/pom.xml +++ b/hsweb-datasource/hsweb-datasource-web/pom.xml @@ -5,7 +5,7 @@ hsweb-datasource org.hswebframework.web - 3.0.1-SNAPSHOT + 3.0.1 ../pom.xml diff --git a/hsweb-datasource/pom.xml b/hsweb-datasource/pom.xml index 8d05a6df4..b0ca74131 100644 --- a/hsweb-datasource/pom.xml +++ b/hsweb-datasource/pom.xml @@ -5,7 +5,7 @@ hsweb-framework org.hswebframework.web - 3.0.1-SNAPSHOT + 3.0.1 ../pom.xml diff --git a/hsweb-logging/hsweb-access-logging-aop/pom.xml b/hsweb-logging/hsweb-access-logging-aop/pom.xml index bc7681d01..b47b29d01 100644 --- a/hsweb-logging/hsweb-access-logging-aop/pom.xml +++ b/hsweb-logging/hsweb-access-logging-aop/pom.xml @@ -5,7 +5,7 @@ hsweb-logging org.hswebframework.web - 3.0.1-SNAPSHOT + 3.0.1 ../pom.xml 4.0.0 diff --git a/hsweb-logging/hsweb-access-logging-api/pom.xml b/hsweb-logging/hsweb-access-logging-api/pom.xml index 45f343948..32d5b7784 100644 --- a/hsweb-logging/hsweb-access-logging-api/pom.xml +++ b/hsweb-logging/hsweb-access-logging-api/pom.xml @@ -5,7 +5,7 @@ hsweb-logging org.hswebframework.web - 3.0.1-SNAPSHOT + 3.0.1 ../pom.xml 4.0.0 diff --git a/hsweb-logging/pom.xml b/hsweb-logging/pom.xml index ab4417aa1..10508c396 100644 --- a/hsweb-logging/pom.xml +++ b/hsweb-logging/pom.xml @@ -23,7 +23,7 @@ hsweb-framework org.hswebframework.web - 3.0.1-SNAPSHOT + 3.0.1 ../pom.xml 4.0.0 diff --git a/hsweb-message/hsweb-message-api/pom.xml b/hsweb-message/hsweb-message-api/pom.xml index 7b3a065ce..074bec534 100644 --- a/hsweb-message/hsweb-message-api/pom.xml +++ b/hsweb-message/hsweb-message-api/pom.xml @@ -5,7 +5,7 @@ hsweb-message org.hswebframework.web - 3.0.1-SNAPSHOT + 3.0.1 4.0.0 diff --git a/hsweb-message/hsweb-message-jms/pom.xml b/hsweb-message/hsweb-message-jms/pom.xml index 1b941db4f..ab23e9b15 100644 --- a/hsweb-message/hsweb-message-jms/pom.xml +++ b/hsweb-message/hsweb-message-jms/pom.xml @@ -5,7 +5,7 @@ hsweb-message org.hswebframework.web - 3.0.1-SNAPSHOT + 3.0.1 4.0.0 diff --git a/hsweb-message/hsweb-message-redis/pom.xml b/hsweb-message/hsweb-message-redis/pom.xml index bc0761f32..8401981df 100644 --- a/hsweb-message/hsweb-message-redis/pom.xml +++ b/hsweb-message/hsweb-message-redis/pom.xml @@ -5,7 +5,7 @@ hsweb-message org.hswebframework.web - 3.0.1-SNAPSHOT + 3.0.1 4.0.0 diff --git a/hsweb-message/hsweb-message-websocket/pom.xml b/hsweb-message/hsweb-message-websocket/pom.xml index ce3d7606b..34d20f66b 100644 --- a/hsweb-message/hsweb-message-websocket/pom.xml +++ b/hsweb-message/hsweb-message-websocket/pom.xml @@ -5,7 +5,7 @@ hsweb-message org.hswebframework.web - 3.0.1-SNAPSHOT + 3.0.1 4.0.0 diff --git a/hsweb-message/pom.xml b/hsweb-message/pom.xml index ffbdd25d0..480bd9431 100644 --- a/hsweb-message/pom.xml +++ b/hsweb-message/pom.xml @@ -5,7 +5,7 @@ hsweb-framework org.hswebframework.web - 3.0.1-SNAPSHOT + 3.0.1 4.0.0 diff --git a/hsweb-starter/hsweb-spring-boot-starter/pom.xml b/hsweb-starter/hsweb-spring-boot-starter/pom.xml index 84114070f..aab132367 100644 --- a/hsweb-starter/hsweb-spring-boot-starter/pom.xml +++ b/hsweb-starter/hsweb-spring-boot-starter/pom.xml @@ -23,7 +23,7 @@ hsweb-starter org.hswebframework.web - 3.0.1-SNAPSHOT + 3.0.1 4.0.0 diff --git a/hsweb-starter/pom.xml b/hsweb-starter/pom.xml index f164bf9aa..a8bcad0da 100644 --- a/hsweb-starter/pom.xml +++ b/hsweb-starter/pom.xml @@ -5,7 +5,7 @@ hsweb-framework org.hswebframework.web - 3.0.1-SNAPSHOT + 3.0.1 4.0.0 diff --git a/hsweb-system/hsweb-system-authorization/hsweb-system-authorization-api/pom.xml b/hsweb-system/hsweb-system-authorization/hsweb-system-authorization-api/pom.xml index c25b3b836..a707f30d1 100644 --- a/hsweb-system/hsweb-system-authorization/hsweb-system-authorization-api/pom.xml +++ b/hsweb-system/hsweb-system-authorization/hsweb-system-authorization-api/pom.xml @@ -5,7 +5,7 @@ hsweb-system-authorization org.hswebframework.web - 3.0.1-SNAPSHOT + 3.0.1 4.0.0 diff --git a/hsweb-system/hsweb-system-authorization/hsweb-system-authorization-local/pom.xml b/hsweb-system/hsweb-system-authorization/hsweb-system-authorization-local/pom.xml index 89db5b55f..3c8db5d6a 100644 --- a/hsweb-system/hsweb-system-authorization/hsweb-system-authorization-local/pom.xml +++ b/hsweb-system/hsweb-system-authorization/hsweb-system-authorization-local/pom.xml @@ -5,7 +5,7 @@ hsweb-system-authorization org.hswebframework.web - 3.0.1-SNAPSHOT + 3.0.1 4.0.0 diff --git a/hsweb-system/hsweb-system-authorization/hsweb-system-authorization-starter/pom.xml b/hsweb-system/hsweb-system-authorization/hsweb-system-authorization-starter/pom.xml index 0374d68ab..3477dd527 100644 --- a/hsweb-system/hsweb-system-authorization/hsweb-system-authorization-starter/pom.xml +++ b/hsweb-system/hsweb-system-authorization/hsweb-system-authorization-starter/pom.xml @@ -22,7 +22,7 @@ hsweb-system-authorization org.hswebframework.web - 3.0.1-SNAPSHOT + 3.0.1 4.0.0 diff --git a/hsweb-system/hsweb-system-authorization/hsweb-system-authorization-web/pom.xml b/hsweb-system/hsweb-system-authorization/hsweb-system-authorization-web/pom.xml index 74999b4a0..684c438db 100644 --- a/hsweb-system/hsweb-system-authorization/hsweb-system-authorization-web/pom.xml +++ b/hsweb-system/hsweb-system-authorization/hsweb-system-authorization-web/pom.xml @@ -5,7 +5,7 @@ hsweb-system-authorization org.hswebframework.web - 3.0.1-SNAPSHOT + 3.0.1 4.0.0 diff --git a/hsweb-system/hsweb-system-authorization/pom.xml b/hsweb-system/hsweb-system-authorization/pom.xml index a062007f0..62fb7c645 100644 --- a/hsweb-system/hsweb-system-authorization/pom.xml +++ b/hsweb-system/hsweb-system-authorization/pom.xml @@ -5,7 +5,7 @@ hsweb-system org.hswebframework.web - 3.0.1-SNAPSHOT + 3.0.1 4.0.0 diff --git a/hsweb-system/hsweb-system-config/hsweb-system-config-api/pom.xml b/hsweb-system/hsweb-system-config/hsweb-system-config-api/pom.xml index 53c882529..918d2066c 100644 --- a/hsweb-system/hsweb-system-config/hsweb-system-config-api/pom.xml +++ b/hsweb-system/hsweb-system-config/hsweb-system-config-api/pom.xml @@ -23,7 +23,7 @@ hsweb-system-config org.hswebframework.web - 3.0.1-SNAPSHOT + 3.0.1 ../pom.xml diff --git a/hsweb-system/hsweb-system-config/hsweb-system-config-local/pom.xml b/hsweb-system/hsweb-system-config/hsweb-system-config-local/pom.xml index fba8d7fce..e4c01bee0 100644 --- a/hsweb-system/hsweb-system-config/hsweb-system-config-local/pom.xml +++ b/hsweb-system/hsweb-system-config/hsweb-system-config-local/pom.xml @@ -23,7 +23,7 @@ hsweb-system-config org.hswebframework.web - 3.0.1-SNAPSHOT + 3.0.1 ../pom.xml 4.0.0 diff --git a/hsweb-system/hsweb-system-config/hsweb-system-config-starter/pom.xml b/hsweb-system/hsweb-system-config/hsweb-system-config-starter/pom.xml index 849ee2089..4610977e6 100644 --- a/hsweb-system/hsweb-system-config/hsweb-system-config-starter/pom.xml +++ b/hsweb-system/hsweb-system-config/hsweb-system-config-starter/pom.xml @@ -5,7 +5,7 @@ hsweb-system-config org.hswebframework.web - 3.0.1-SNAPSHOT + 3.0.1 ../pom.xml 4.0.0 diff --git a/hsweb-system/hsweb-system-config/hsweb-system-config-web/pom.xml b/hsweb-system/hsweb-system-config/hsweb-system-config-web/pom.xml index 54867026f..6317696be 100644 --- a/hsweb-system/hsweb-system-config/hsweb-system-config-web/pom.xml +++ b/hsweb-system/hsweb-system-config/hsweb-system-config-web/pom.xml @@ -23,7 +23,7 @@ hsweb-system-config org.hswebframework.web - 3.0.1-SNAPSHOT + 3.0.1 ../pom.xml 4.0.0 diff --git a/hsweb-system/hsweb-system-config/pom.xml b/hsweb-system/hsweb-system-config/pom.xml index 131645151..15c9080e5 100644 --- a/hsweb-system/hsweb-system-config/pom.xml +++ b/hsweb-system/hsweb-system-config/pom.xml @@ -23,7 +23,7 @@ hsweb-system org.hswebframework.web - 3.0.1-SNAPSHOT + 3.0.1 4.0.0 diff --git a/hsweb-system/hsweb-system-dashboard/hsweb-system-dashboard-api/pom.xml b/hsweb-system/hsweb-system-dashboard/hsweb-system-dashboard-api/pom.xml index ebbf26e6d..f817be5f9 100644 --- a/hsweb-system/hsweb-system-dashboard/hsweb-system-dashboard-api/pom.xml +++ b/hsweb-system/hsweb-system-dashboard/hsweb-system-dashboard-api/pom.xml @@ -5,7 +5,7 @@ hsweb-system-dashboard org.hswebframework.web - 3.0.1-SNAPSHOT + 3.0.1 4.0.0 diff --git a/hsweb-system/hsweb-system-dashboard/hsweb-system-dashboard-local/pom.xml b/hsweb-system/hsweb-system-dashboard/hsweb-system-dashboard-local/pom.xml index bf5501f5a..1c00e298a 100644 --- a/hsweb-system/hsweb-system-dashboard/hsweb-system-dashboard-local/pom.xml +++ b/hsweb-system/hsweb-system-dashboard/hsweb-system-dashboard-local/pom.xml @@ -5,7 +5,7 @@ hsweb-system-dashboard org.hswebframework.web - 3.0.1-SNAPSHOT + 3.0.1 4.0.0 diff --git a/hsweb-system/hsweb-system-dashboard/hsweb-system-dashboard-starter/pom.xml b/hsweb-system/hsweb-system-dashboard/hsweb-system-dashboard-starter/pom.xml index 399135d9d..f7fc7a49f 100644 --- a/hsweb-system/hsweb-system-dashboard/hsweb-system-dashboard-starter/pom.xml +++ b/hsweb-system/hsweb-system-dashboard/hsweb-system-dashboard-starter/pom.xml @@ -5,7 +5,7 @@ hsweb-system-dashboard org.hswebframework.web - 3.0.1-SNAPSHOT + 3.0.1 4.0.0 diff --git a/hsweb-system/hsweb-system-dashboard/hsweb-system-dashboard-web/pom.xml b/hsweb-system/hsweb-system-dashboard/hsweb-system-dashboard-web/pom.xml index 025677874..cfea2ee9e 100644 --- a/hsweb-system/hsweb-system-dashboard/hsweb-system-dashboard-web/pom.xml +++ b/hsweb-system/hsweb-system-dashboard/hsweb-system-dashboard-web/pom.xml @@ -5,7 +5,7 @@ hsweb-system-dashboard org.hswebframework.web - 3.0.1-SNAPSHOT + 3.0.1 4.0.0 diff --git a/hsweb-system/hsweb-system-dashboard/pom.xml b/hsweb-system/hsweb-system-dashboard/pom.xml index 1852de2a1..127a9f089 100644 --- a/hsweb-system/hsweb-system-dashboard/pom.xml +++ b/hsweb-system/hsweb-system-dashboard/pom.xml @@ -5,7 +5,7 @@ hsweb-system org.hswebframework.web - 3.0.1-SNAPSHOT + 3.0.1 4.0.0 diff --git a/hsweb-system/hsweb-system-database-manager/hsweb-system-database-manager-api/pom.xml b/hsweb-system/hsweb-system-database-manager/hsweb-system-database-manager-api/pom.xml index 8658008a3..d11ea1919 100644 --- a/hsweb-system/hsweb-system-database-manager/hsweb-system-database-manager-api/pom.xml +++ b/hsweb-system/hsweb-system-database-manager/hsweb-system-database-manager-api/pom.xml @@ -5,7 +5,7 @@ hsweb-system-database-manager org.hswebframework.web - 3.0.1-SNAPSHOT + 3.0.1 4.0.0 diff --git a/hsweb-system/hsweb-system-database-manager/hsweb-system-database-manager-local/pom.xml b/hsweb-system/hsweb-system-database-manager/hsweb-system-database-manager-local/pom.xml index d3e16fa71..7ecd619b8 100644 --- a/hsweb-system/hsweb-system-database-manager/hsweb-system-database-manager-local/pom.xml +++ b/hsweb-system/hsweb-system-database-manager/hsweb-system-database-manager-local/pom.xml @@ -5,7 +5,7 @@ hsweb-system-database-manager org.hswebframework.web - 3.0.1-SNAPSHOT + 3.0.1 4.0.0 diff --git a/hsweb-system/hsweb-system-database-manager/hsweb-system-database-manager-starter/pom.xml b/hsweb-system/hsweb-system-database-manager/hsweb-system-database-manager-starter/pom.xml index 7f9025c88..6c6538f75 100644 --- a/hsweb-system/hsweb-system-database-manager/hsweb-system-database-manager-starter/pom.xml +++ b/hsweb-system/hsweb-system-database-manager/hsweb-system-database-manager-starter/pom.xml @@ -5,7 +5,7 @@ hsweb-system-database-manager org.hswebframework.web - 3.0.1-SNAPSHOT + 3.0.1 4.0.0 diff --git a/hsweb-system/hsweb-system-database-manager/hsweb-system-database-manager-web/pom.xml b/hsweb-system/hsweb-system-database-manager/hsweb-system-database-manager-web/pom.xml index de34034b7..1d998ec5b 100644 --- a/hsweb-system/hsweb-system-database-manager/hsweb-system-database-manager-web/pom.xml +++ b/hsweb-system/hsweb-system-database-manager/hsweb-system-database-manager-web/pom.xml @@ -5,7 +5,7 @@ hsweb-system-database-manager org.hswebframework.web - 3.0.1-SNAPSHOT + 3.0.1 4.0.0 diff --git a/hsweb-system/hsweb-system-database-manager/pom.xml b/hsweb-system/hsweb-system-database-manager/pom.xml index b30816663..70a0c0181 100644 --- a/hsweb-system/hsweb-system-database-manager/pom.xml +++ b/hsweb-system/hsweb-system-database-manager/pom.xml @@ -5,7 +5,7 @@ hsweb-system org.hswebframework.web - 3.0.1-SNAPSHOT + 3.0.1 4.0.0 diff --git a/hsweb-system/hsweb-system-datasource/hsweb-system-datasource-api/pom.xml b/hsweb-system/hsweb-system-datasource/hsweb-system-datasource-api/pom.xml index 4df3591f1..9d0d8c1a3 100644 --- a/hsweb-system/hsweb-system-datasource/hsweb-system-datasource-api/pom.xml +++ b/hsweb-system/hsweb-system-datasource/hsweb-system-datasource-api/pom.xml @@ -5,7 +5,7 @@ hsweb-system-datasource org.hswebframework.web - 3.0.1-SNAPSHOT + 3.0.1 ../pom.xml 4.0.0 diff --git a/hsweb-system/hsweb-system-datasource/hsweb-system-datasource-local/pom.xml b/hsweb-system/hsweb-system-datasource/hsweb-system-datasource-local/pom.xml index 0bcac46e0..82ee85741 100644 --- a/hsweb-system/hsweb-system-datasource/hsweb-system-datasource-local/pom.xml +++ b/hsweb-system/hsweb-system-datasource/hsweb-system-datasource-local/pom.xml @@ -5,7 +5,7 @@ hsweb-system-datasource org.hswebframework.web - 3.0.1-SNAPSHOT + 3.0.1 ../pom.xml 4.0.0 diff --git a/hsweb-system/hsweb-system-datasource/hsweb-system-datasource-starter/pom.xml b/hsweb-system/hsweb-system-datasource/hsweb-system-datasource-starter/pom.xml index 9b105b115..fe9915b81 100644 --- a/hsweb-system/hsweb-system-datasource/hsweb-system-datasource-starter/pom.xml +++ b/hsweb-system/hsweb-system-datasource/hsweb-system-datasource-starter/pom.xml @@ -5,7 +5,7 @@ hsweb-system-datasource org.hswebframework.web - 3.0.1-SNAPSHOT + 3.0.1 ../pom.xml 4.0.0 diff --git a/hsweb-system/hsweb-system-datasource/hsweb-system-datasource-web/pom.xml b/hsweb-system/hsweb-system-datasource/hsweb-system-datasource-web/pom.xml index fc8251fd1..5a25324da 100644 --- a/hsweb-system/hsweb-system-datasource/hsweb-system-datasource-web/pom.xml +++ b/hsweb-system/hsweb-system-datasource/hsweb-system-datasource-web/pom.xml @@ -5,7 +5,7 @@ hsweb-system-datasource org.hswebframework.web - 3.0.1-SNAPSHOT + 3.0.1 ../pom.xml 4.0.0 diff --git a/hsweb-system/hsweb-system-datasource/pom.xml b/hsweb-system/hsweb-system-datasource/pom.xml index 8597d2b8c..220e839cc 100644 --- a/hsweb-system/hsweb-system-datasource/pom.xml +++ b/hsweb-system/hsweb-system-datasource/pom.xml @@ -5,7 +5,7 @@ hsweb-system org.hswebframework.web - 3.0.1-SNAPSHOT + 3.0.1 ../pom.xml diff --git a/hsweb-system/hsweb-system-dev-tools/pom.xml b/hsweb-system/hsweb-system-dev-tools/pom.xml index 28ea70528..fa11a10bb 100644 --- a/hsweb-system/hsweb-system-dev-tools/pom.xml +++ b/hsweb-system/hsweb-system-dev-tools/pom.xml @@ -5,7 +5,7 @@ hsweb-system org.hswebframework.web - 3.0.1-SNAPSHOT + 3.0.1 4.0.0 diff --git a/hsweb-system/hsweb-system-dictionary/hsweb-system-dictionary-api/pom.xml b/hsweb-system/hsweb-system-dictionary/hsweb-system-dictionary-api/pom.xml index e63f75ef7..1e3d44ac0 100644 --- a/hsweb-system/hsweb-system-dictionary/hsweb-system-dictionary-api/pom.xml +++ b/hsweb-system/hsweb-system-dictionary/hsweb-system-dictionary-api/pom.xml @@ -5,7 +5,7 @@ hsweb-system-dictionary org.hswebframework.web - 3.0.1-SNAPSHOT + 3.0.1 4.0.0 diff --git a/hsweb-system/hsweb-system-dictionary/hsweb-system-dictionary-local/pom.xml b/hsweb-system/hsweb-system-dictionary/hsweb-system-dictionary-local/pom.xml index a35c204f0..9fbd3ad2b 100644 --- a/hsweb-system/hsweb-system-dictionary/hsweb-system-dictionary-local/pom.xml +++ b/hsweb-system/hsweb-system-dictionary/hsweb-system-dictionary-local/pom.xml @@ -5,7 +5,7 @@ hsweb-system-dictionary org.hswebframework.web - 3.0.1-SNAPSHOT + 3.0.1 4.0.0 diff --git a/hsweb-system/hsweb-system-dictionary/hsweb-system-dictionary-starter/pom.xml b/hsweb-system/hsweb-system-dictionary/hsweb-system-dictionary-starter/pom.xml index 71821d100..42d05ff4a 100644 --- a/hsweb-system/hsweb-system-dictionary/hsweb-system-dictionary-starter/pom.xml +++ b/hsweb-system/hsweb-system-dictionary/hsweb-system-dictionary-starter/pom.xml @@ -22,7 +22,7 @@ hsweb-system-dictionary org.hswebframework.web - 3.0.1-SNAPSHOT + 3.0.1 4.0.0 diff --git a/hsweb-system/hsweb-system-dictionary/hsweb-system-dictionary-web/pom.xml b/hsweb-system/hsweb-system-dictionary/hsweb-system-dictionary-web/pom.xml index 9c76b7d0e..b0217f0be 100644 --- a/hsweb-system/hsweb-system-dictionary/hsweb-system-dictionary-web/pom.xml +++ b/hsweb-system/hsweb-system-dictionary/hsweb-system-dictionary-web/pom.xml @@ -5,7 +5,7 @@ hsweb-system-dictionary org.hswebframework.web - 3.0.1-SNAPSHOT + 3.0.1 4.0.0 diff --git a/hsweb-system/hsweb-system-dictionary/pom.xml b/hsweb-system/hsweb-system-dictionary/pom.xml index 546a4f0f3..557d62baf 100644 --- a/hsweb-system/hsweb-system-dictionary/pom.xml +++ b/hsweb-system/hsweb-system-dictionary/pom.xml @@ -22,7 +22,7 @@ hsweb-system org.hswebframework.web - 3.0.1-SNAPSHOT + 3.0.1 4.0.0 diff --git a/hsweb-system/hsweb-system-dynamic-form/hsweb-system-dynamic-form-api/pom.xml b/hsweb-system/hsweb-system-dynamic-form/hsweb-system-dynamic-form-api/pom.xml index 3bee2cde5..dc88f3244 100644 --- a/hsweb-system/hsweb-system-dynamic-form/hsweb-system-dynamic-form-api/pom.xml +++ b/hsweb-system/hsweb-system-dynamic-form/hsweb-system-dynamic-form-api/pom.xml @@ -5,7 +5,7 @@ hsweb-system-dynamic-form org.hswebframework.web - 3.0.1-SNAPSHOT + 3.0.1 ../pom.xml 4.0.0 diff --git a/hsweb-system/hsweb-system-dynamic-form/hsweb-system-dynamic-form-local/pom.xml b/hsweb-system/hsweb-system-dynamic-form/hsweb-system-dynamic-form-local/pom.xml index d685547b3..97ae69591 100644 --- a/hsweb-system/hsweb-system-dynamic-form/hsweb-system-dynamic-form-local/pom.xml +++ b/hsweb-system/hsweb-system-dynamic-form/hsweb-system-dynamic-form-local/pom.xml @@ -5,7 +5,7 @@ hsweb-system-dynamic-form org.hswebframework.web - 3.0.1-SNAPSHOT + 3.0.1 ../pom.xml 4.0.0 diff --git a/hsweb-system/hsweb-system-dynamic-form/hsweb-system-dynamic-form-starter/pom.xml b/hsweb-system/hsweb-system-dynamic-form/hsweb-system-dynamic-form-starter/pom.xml index ca029770b..4fa5e2a09 100644 --- a/hsweb-system/hsweb-system-dynamic-form/hsweb-system-dynamic-form-starter/pom.xml +++ b/hsweb-system/hsweb-system-dynamic-form/hsweb-system-dynamic-form-starter/pom.xml @@ -5,7 +5,7 @@ hsweb-system-dynamic-form org.hswebframework.web - 3.0.1-SNAPSHOT + 3.0.1 ../pom.xml 4.0.0 diff --git a/hsweb-system/hsweb-system-dynamic-form/hsweb-system-dynamic-form-web/pom.xml b/hsweb-system/hsweb-system-dynamic-form/hsweb-system-dynamic-form-web/pom.xml index aa75fe27e..443811019 100644 --- a/hsweb-system/hsweb-system-dynamic-form/hsweb-system-dynamic-form-web/pom.xml +++ b/hsweb-system/hsweb-system-dynamic-form/hsweb-system-dynamic-form-web/pom.xml @@ -5,7 +5,7 @@ hsweb-system-dynamic-form org.hswebframework.web - 3.0.1-SNAPSHOT + 3.0.1 ../pom.xml 4.0.0 diff --git a/hsweb-system/hsweb-system-dynamic-form/pom.xml b/hsweb-system/hsweb-system-dynamic-form/pom.xml index 6d235f8ec..2dcd80bd8 100644 --- a/hsweb-system/hsweb-system-dynamic-form/pom.xml +++ b/hsweb-system/hsweb-system-dynamic-form/pom.xml @@ -5,7 +5,7 @@ hsweb-system org.hswebframework.web - 3.0.1-SNAPSHOT + 3.0.1 ../pom.xml 4.0.0 diff --git a/hsweb-system/hsweb-system-file/hsweb-system-file-api/pom.xml b/hsweb-system/hsweb-system-file/hsweb-system-file-api/pom.xml index c8d6843c5..a38bf5582 100644 --- a/hsweb-system/hsweb-system-file/hsweb-system-file-api/pom.xml +++ b/hsweb-system/hsweb-system-file/hsweb-system-file-api/pom.xml @@ -5,7 +5,7 @@ hsweb-system-file org.hswebframework.web - 3.0.1-SNAPSHOT + 3.0.1 ../pom.xml 4.0.0 diff --git a/hsweb-system/hsweb-system-file/hsweb-system-file-local/pom.xml b/hsweb-system/hsweb-system-file/hsweb-system-file-local/pom.xml index 7c18eae82..3df26c614 100644 --- a/hsweb-system/hsweb-system-file/hsweb-system-file-local/pom.xml +++ b/hsweb-system/hsweb-system-file/hsweb-system-file-local/pom.xml @@ -5,7 +5,7 @@ hsweb-system-file org.hswebframework.web - 3.0.1-SNAPSHOT + 3.0.1 ../pom.xml 4.0.0 diff --git a/hsweb-system/hsweb-system-file/hsweb-system-file-oauth2/pom.xml b/hsweb-system/hsweb-system-file/hsweb-system-file-oauth2/pom.xml index 3dff516e2..85034f078 100644 --- a/hsweb-system/hsweb-system-file/hsweb-system-file-oauth2/pom.xml +++ b/hsweb-system/hsweb-system-file/hsweb-system-file-oauth2/pom.xml @@ -5,7 +5,7 @@ hsweb-system-file org.hswebframework.web - 3.0.1-SNAPSHOT + 3.0.1 ../pom.xml 4.0.0 diff --git a/hsweb-system/hsweb-system-file/hsweb-system-file-starter/pom.xml b/hsweb-system/hsweb-system-file/hsweb-system-file-starter/pom.xml index d9ac2905a..b88984b37 100644 --- a/hsweb-system/hsweb-system-file/hsweb-system-file-starter/pom.xml +++ b/hsweb-system/hsweb-system-file/hsweb-system-file-starter/pom.xml @@ -5,7 +5,7 @@ hsweb-system-file org.hswebframework.web - 3.0.1-SNAPSHOT + 3.0.1 ../pom.xml 4.0.0 diff --git a/hsweb-system/hsweb-system-file/hsweb-system-file-web/pom.xml b/hsweb-system/hsweb-system-file/hsweb-system-file-web/pom.xml index 6b7e10d02..a86b1ce44 100644 --- a/hsweb-system/hsweb-system-file/hsweb-system-file-web/pom.xml +++ b/hsweb-system/hsweb-system-file/hsweb-system-file-web/pom.xml @@ -5,7 +5,7 @@ hsweb-system-file org.hswebframework.web - 3.0.1-SNAPSHOT + 3.0.1 ../pom.xml 4.0.0 diff --git a/hsweb-system/hsweb-system-file/pom.xml b/hsweb-system/hsweb-system-file/pom.xml index 5fdd4c0c4..456f3723f 100644 --- a/hsweb-system/hsweb-system-file/pom.xml +++ b/hsweb-system/hsweb-system-file/pom.xml @@ -5,7 +5,7 @@ hsweb-system org.hswebframework.web - 3.0.1-SNAPSHOT + 3.0.1 4.0.0 diff --git a/hsweb-system/hsweb-system-oauth2-client/hsweb-system-oauth2-client-api/pom.xml b/hsweb-system/hsweb-system-oauth2-client/hsweb-system-oauth2-client-api/pom.xml index 2875dc6f7..eb0142c61 100644 --- a/hsweb-system/hsweb-system-oauth2-client/hsweb-system-oauth2-client-api/pom.xml +++ b/hsweb-system/hsweb-system-oauth2-client/hsweb-system-oauth2-client-api/pom.xml @@ -5,7 +5,7 @@ hsweb-system-oauth2-client org.hswebframework.web - 3.0.1-SNAPSHOT + 3.0.1 4.0.0 diff --git a/hsweb-system/hsweb-system-oauth2-client/hsweb-system-oauth2-client-local/pom.xml b/hsweb-system/hsweb-system-oauth2-client/hsweb-system-oauth2-client-local/pom.xml index a49d559c4..7b48cb938 100644 --- a/hsweb-system/hsweb-system-oauth2-client/hsweb-system-oauth2-client-local/pom.xml +++ b/hsweb-system/hsweb-system-oauth2-client/hsweb-system-oauth2-client-local/pom.xml @@ -5,7 +5,7 @@ hsweb-system-oauth2-client org.hswebframework.web - 3.0.1-SNAPSHOT + 3.0.1 4.0.0 diff --git a/hsweb-system/hsweb-system-oauth2-client/hsweb-system-oauth2-client-starter/pom.xml b/hsweb-system/hsweb-system-oauth2-client/hsweb-system-oauth2-client-starter/pom.xml index ef9323b5a..030dd9cdc 100644 --- a/hsweb-system/hsweb-system-oauth2-client/hsweb-system-oauth2-client-starter/pom.xml +++ b/hsweb-system/hsweb-system-oauth2-client/hsweb-system-oauth2-client-starter/pom.xml @@ -22,7 +22,7 @@ hsweb-system-oauth2-client org.hswebframework.web - 3.0.1-SNAPSHOT + 3.0.1 4.0.0 diff --git a/hsweb-system/hsweb-system-oauth2-client/hsweb-system-oauth2-client-web/pom.xml b/hsweb-system/hsweb-system-oauth2-client/hsweb-system-oauth2-client-web/pom.xml index 9df9e7076..d40945c25 100644 --- a/hsweb-system/hsweb-system-oauth2-client/hsweb-system-oauth2-client-web/pom.xml +++ b/hsweb-system/hsweb-system-oauth2-client/hsweb-system-oauth2-client-web/pom.xml @@ -5,7 +5,7 @@ hsweb-system-oauth2-client org.hswebframework.web - 3.0.1-SNAPSHOT + 3.0.1 4.0.0 diff --git a/hsweb-system/hsweb-system-oauth2-client/pom.xml b/hsweb-system/hsweb-system-oauth2-client/pom.xml index 71c3aa555..b4ed57096 100644 --- a/hsweb-system/hsweb-system-oauth2-client/pom.xml +++ b/hsweb-system/hsweb-system-oauth2-client/pom.xml @@ -23,7 +23,7 @@ hsweb-system org.hswebframework.web - 3.0.1-SNAPSHOT + 3.0.1 4.0.0 diff --git a/hsweb-system/hsweb-system-oauth2-server/hsweb-system-oauth2-server-local/pom.xml b/hsweb-system/hsweb-system-oauth2-server/hsweb-system-oauth2-server-local/pom.xml index 078dd7000..0e23d4584 100644 --- a/hsweb-system/hsweb-system-oauth2-server/hsweb-system-oauth2-server-local/pom.xml +++ b/hsweb-system/hsweb-system-oauth2-server/hsweb-system-oauth2-server-local/pom.xml @@ -5,7 +5,7 @@ hsweb-system-oauth2-server org.hswebframework.web - 3.0.1-SNAPSHOT + 3.0.1 ../pom.xml 4.0.0 diff --git a/hsweb-system/hsweb-system-oauth2-server/hsweb-system-oauth2-server-starter/pom.xml b/hsweb-system/hsweb-system-oauth2-server/hsweb-system-oauth2-server-starter/pom.xml index 5ce9fe918..29591903b 100644 --- a/hsweb-system/hsweb-system-oauth2-server/hsweb-system-oauth2-server-starter/pom.xml +++ b/hsweb-system/hsweb-system-oauth2-server/hsweb-system-oauth2-server-starter/pom.xml @@ -23,7 +23,7 @@ hsweb-system-oauth2-server org.hswebframework.web - 3.0.1-SNAPSHOT + 3.0.1 ../pom.xml 4.0.0 diff --git a/hsweb-system/hsweb-system-oauth2-server/hsweb-system-oauth2-server-web/pom.xml b/hsweb-system/hsweb-system-oauth2-server/hsweb-system-oauth2-server-web/pom.xml index dcd61f6d3..ee0e714b3 100644 --- a/hsweb-system/hsweb-system-oauth2-server/hsweb-system-oauth2-server-web/pom.xml +++ b/hsweb-system/hsweb-system-oauth2-server/hsweb-system-oauth2-server-web/pom.xml @@ -5,7 +5,7 @@ hsweb-system-oauth2-server org.hswebframework.web - 3.0.1-SNAPSHOT + 3.0.1 ../pom.xml 4.0.0 diff --git a/hsweb-system/hsweb-system-oauth2-server/pom.xml b/hsweb-system/hsweb-system-oauth2-server/pom.xml index 3e3f223bf..40205ed48 100644 --- a/hsweb-system/hsweb-system-oauth2-server/pom.xml +++ b/hsweb-system/hsweb-system-oauth2-server/pom.xml @@ -23,7 +23,7 @@ hsweb-system org.hswebframework.web - 3.0.1-SNAPSHOT + 3.0.1 ../pom.xml 4.0.0 diff --git a/hsweb-system/hsweb-system-organizational/hsweb-system-organizational-api/pom.xml b/hsweb-system/hsweb-system-organizational/hsweb-system-organizational-api/pom.xml index 32e837bb1..08b18ec07 100644 --- a/hsweb-system/hsweb-system-organizational/hsweb-system-organizational-api/pom.xml +++ b/hsweb-system/hsweb-system-organizational/hsweb-system-organizational-api/pom.xml @@ -5,7 +5,7 @@ hsweb-system-organizational org.hswebframework.web - 3.0.1-SNAPSHOT + 3.0.1 4.0.0 diff --git a/hsweb-system/hsweb-system-organizational/hsweb-system-organizational-authorization/pom.xml b/hsweb-system/hsweb-system-organizational/hsweb-system-organizational-authorization/pom.xml index e66c128ef..81a2ef586 100644 --- a/hsweb-system/hsweb-system-organizational/hsweb-system-organizational-authorization/pom.xml +++ b/hsweb-system/hsweb-system-organizational/hsweb-system-organizational-authorization/pom.xml @@ -5,7 +5,7 @@ hsweb-system-organizational org.hswebframework.web - 3.0.1-SNAPSHOT + 3.0.1 4.0.0 diff --git a/hsweb-system/hsweb-system-organizational/hsweb-system-organizational-local/pom.xml b/hsweb-system/hsweb-system-organizational/hsweb-system-organizational-local/pom.xml index 04497ad72..e73cbd9eb 100644 --- a/hsweb-system/hsweb-system-organizational/hsweb-system-organizational-local/pom.xml +++ b/hsweb-system/hsweb-system-organizational/hsweb-system-organizational-local/pom.xml @@ -5,7 +5,7 @@ hsweb-system-organizational org.hswebframework.web - 3.0.1-SNAPSHOT + 3.0.1 4.0.0 diff --git a/hsweb-system/hsweb-system-organizational/hsweb-system-organizational-starter/pom.xml b/hsweb-system/hsweb-system-organizational/hsweb-system-organizational-starter/pom.xml index e60f72d0b..12ea2f166 100644 --- a/hsweb-system/hsweb-system-organizational/hsweb-system-organizational-starter/pom.xml +++ b/hsweb-system/hsweb-system-organizational/hsweb-system-organizational-starter/pom.xml @@ -22,7 +22,7 @@ hsweb-system-organizational org.hswebframework.web - 3.0.1-SNAPSHOT + 3.0.1 4.0.0 diff --git a/hsweb-system/hsweb-system-organizational/hsweb-system-organizational-web/pom.xml b/hsweb-system/hsweb-system-organizational/hsweb-system-organizational-web/pom.xml index 3ad306bd6..4ec6b9829 100644 --- a/hsweb-system/hsweb-system-organizational/hsweb-system-organizational-web/pom.xml +++ b/hsweb-system/hsweb-system-organizational/hsweb-system-organizational-web/pom.xml @@ -5,7 +5,7 @@ hsweb-system-organizational org.hswebframework.web - 3.0.1-SNAPSHOT + 3.0.1 4.0.0 diff --git a/hsweb-system/hsweb-system-organizational/pom.xml b/hsweb-system/hsweb-system-organizational/pom.xml index f0934888b..7402b10f2 100644 --- a/hsweb-system/hsweb-system-organizational/pom.xml +++ b/hsweb-system/hsweb-system-organizational/pom.xml @@ -22,7 +22,7 @@ hsweb-system org.hswebframework.web - 3.0.1-SNAPSHOT + 3.0.1 4.0.0 diff --git a/hsweb-system/hsweb-system-schedule/hsweb-system-schedule-api/pom.xml b/hsweb-system/hsweb-system-schedule/hsweb-system-schedule-api/pom.xml index eded6b922..8ea7dccda 100644 --- a/hsweb-system/hsweb-system-schedule/hsweb-system-schedule-api/pom.xml +++ b/hsweb-system/hsweb-system-schedule/hsweb-system-schedule-api/pom.xml @@ -5,7 +5,7 @@ hsweb-system-schedule org.hswebframework.web - 3.0.1-SNAPSHOT + 3.0.1 4.0.0 diff --git a/hsweb-system/hsweb-system-schedule/hsweb-system-schedule-local/pom.xml b/hsweb-system/hsweb-system-schedule/hsweb-system-schedule-local/pom.xml index 7b07481d1..f0cca4acc 100644 --- a/hsweb-system/hsweb-system-schedule/hsweb-system-schedule-local/pom.xml +++ b/hsweb-system/hsweb-system-schedule/hsweb-system-schedule-local/pom.xml @@ -5,7 +5,7 @@ hsweb-system-schedule org.hswebframework.web - 3.0.1-SNAPSHOT + 3.0.1 ../pom.xml 4.0.0 diff --git a/hsweb-system/hsweb-system-schedule/hsweb-system-schedule-starter/pom.xml b/hsweb-system/hsweb-system-schedule/hsweb-system-schedule-starter/pom.xml index ddd201875..4a16d8986 100644 --- a/hsweb-system/hsweb-system-schedule/hsweb-system-schedule-starter/pom.xml +++ b/hsweb-system/hsweb-system-schedule/hsweb-system-schedule-starter/pom.xml @@ -5,7 +5,7 @@ hsweb-system-schedule org.hswebframework.web - 3.0.1-SNAPSHOT + 3.0.1 4.0.0 diff --git a/hsweb-system/hsweb-system-schedule/hsweb-system-schedule-web/pom.xml b/hsweb-system/hsweb-system-schedule/hsweb-system-schedule-web/pom.xml index 5d0805be6..4361b966d 100644 --- a/hsweb-system/hsweb-system-schedule/hsweb-system-schedule-web/pom.xml +++ b/hsweb-system/hsweb-system-schedule/hsweb-system-schedule-web/pom.xml @@ -5,7 +5,7 @@ hsweb-system-schedule org.hswebframework.web - 3.0.1-SNAPSHOT + 3.0.1 4.0.0 diff --git a/hsweb-system/hsweb-system-schedule/pom.xml b/hsweb-system/hsweb-system-schedule/pom.xml index 26753b539..3001a243f 100644 --- a/hsweb-system/hsweb-system-schedule/pom.xml +++ b/hsweb-system/hsweb-system-schedule/pom.xml @@ -5,7 +5,7 @@ hsweb-system org.hswebframework.web - 3.0.1-SNAPSHOT + 3.0.1 4.0.0 pom diff --git a/hsweb-system/hsweb-system-script/hsweb-system-script-api/pom.xml b/hsweb-system/hsweb-system-script/hsweb-system-script-api/pom.xml index e21fb61d1..ac353a65f 100644 --- a/hsweb-system/hsweb-system-script/hsweb-system-script-api/pom.xml +++ b/hsweb-system/hsweb-system-script/hsweb-system-script-api/pom.xml @@ -5,7 +5,7 @@ hsweb-system-script org.hswebframework.web - 3.0.1-SNAPSHOT + 3.0.1 4.0.0 diff --git a/hsweb-system/hsweb-system-script/hsweb-system-script-local/pom.xml b/hsweb-system/hsweb-system-script/hsweb-system-script-local/pom.xml index 9507314b4..b7c2d5f1a 100644 --- a/hsweb-system/hsweb-system-script/hsweb-system-script-local/pom.xml +++ b/hsweb-system/hsweb-system-script/hsweb-system-script-local/pom.xml @@ -5,7 +5,7 @@ hsweb-system-script org.hswebframework.web - 3.0.1-SNAPSHOT + 3.0.1 4.0.0 diff --git a/hsweb-system/hsweb-system-script/hsweb-system-script-starter/pom.xml b/hsweb-system/hsweb-system-script/hsweb-system-script-starter/pom.xml index b635d3882..e4960d9d2 100644 --- a/hsweb-system/hsweb-system-script/hsweb-system-script-starter/pom.xml +++ b/hsweb-system/hsweb-system-script/hsweb-system-script-starter/pom.xml @@ -5,7 +5,7 @@ hsweb-system-script org.hswebframework.web - 3.0.1-SNAPSHOT + 3.0.1 4.0.0 diff --git a/hsweb-system/hsweb-system-script/hsweb-system-script-web/pom.xml b/hsweb-system/hsweb-system-script/hsweb-system-script-web/pom.xml index 0a7591959..31ca0a9ad 100644 --- a/hsweb-system/hsweb-system-script/hsweb-system-script-web/pom.xml +++ b/hsweb-system/hsweb-system-script/hsweb-system-script-web/pom.xml @@ -5,7 +5,7 @@ hsweb-system-script org.hswebframework.web - 3.0.1-SNAPSHOT + 3.0.1 4.0.0 diff --git a/hsweb-system/hsweb-system-script/pom.xml b/hsweb-system/hsweb-system-script/pom.xml index b0e11eae2..d011606e1 100644 --- a/hsweb-system/hsweb-system-script/pom.xml +++ b/hsweb-system/hsweb-system-script/pom.xml @@ -5,7 +5,7 @@ hsweb-system org.hswebframework.web - 3.0.1-SNAPSHOT + 3.0.1 4.0.0 diff --git a/hsweb-system/hsweb-system-template/hsweb-system-template-api/pom.xml b/hsweb-system/hsweb-system-template/hsweb-system-template-api/pom.xml index 4a7e7defc..939f66d11 100644 --- a/hsweb-system/hsweb-system-template/hsweb-system-template-api/pom.xml +++ b/hsweb-system/hsweb-system-template/hsweb-system-template-api/pom.xml @@ -5,7 +5,7 @@ hsweb-system-template org.hswebframework.web - 3.0.1-SNAPSHOT + 3.0.1 4.0.0 diff --git a/hsweb-system/hsweb-system-template/hsweb-system-template-local/pom.xml b/hsweb-system/hsweb-system-template/hsweb-system-template-local/pom.xml index 69b171fe8..b3b4a7ab5 100644 --- a/hsweb-system/hsweb-system-template/hsweb-system-template-local/pom.xml +++ b/hsweb-system/hsweb-system-template/hsweb-system-template-local/pom.xml @@ -5,7 +5,7 @@ hsweb-system-template org.hswebframework.web - 3.0.1-SNAPSHOT + 3.0.1 4.0.0 diff --git a/hsweb-system/hsweb-system-template/hsweb-system-template-starter/pom.xml b/hsweb-system/hsweb-system-template/hsweb-system-template-starter/pom.xml index cb6b940cd..d8d6cc66c 100644 --- a/hsweb-system/hsweb-system-template/hsweb-system-template-starter/pom.xml +++ b/hsweb-system/hsweb-system-template/hsweb-system-template-starter/pom.xml @@ -5,7 +5,7 @@ hsweb-system-template org.hswebframework.web - 3.0.1-SNAPSHOT + 3.0.1 4.0.0 diff --git a/hsweb-system/hsweb-system-template/hsweb-system-template-web/pom.xml b/hsweb-system/hsweb-system-template/hsweb-system-template-web/pom.xml index 78443c30c..fc113258f 100644 --- a/hsweb-system/hsweb-system-template/hsweb-system-template-web/pom.xml +++ b/hsweb-system/hsweb-system-template/hsweb-system-template-web/pom.xml @@ -5,7 +5,7 @@ hsweb-system-template org.hswebframework.web - 3.0.1-SNAPSHOT + 3.0.1 4.0.0 diff --git a/hsweb-system/hsweb-system-template/pom.xml b/hsweb-system/hsweb-system-template/pom.xml index a85c82e43..3201c4a20 100644 --- a/hsweb-system/hsweb-system-template/pom.xml +++ b/hsweb-system/hsweb-system-template/pom.xml @@ -5,7 +5,7 @@ hsweb-system org.hswebframework.web - 3.0.1-SNAPSHOT + 3.0.1 4.0.0 diff --git a/hsweb-system/hsweb-system-workflow/hsweb-system-workflow-local/pom.xml b/hsweb-system/hsweb-system-workflow/hsweb-system-workflow-local/pom.xml index dc777bae4..6d1177234 100644 --- a/hsweb-system/hsweb-system-workflow/hsweb-system-workflow-local/pom.xml +++ b/hsweb-system/hsweb-system-workflow/hsweb-system-workflow-local/pom.xml @@ -5,7 +5,7 @@ hsweb-system-workflow org.hswebframework.web - 3.0.1-SNAPSHOT + 3.0.1 ../pom.xml 4.0.0 diff --git a/hsweb-system/hsweb-system-workflow/hsweb-system-workflow-starter/pom.xml b/hsweb-system/hsweb-system-workflow/hsweb-system-workflow-starter/pom.xml index 189312839..49d023d43 100644 --- a/hsweb-system/hsweb-system-workflow/hsweb-system-workflow-starter/pom.xml +++ b/hsweb-system/hsweb-system-workflow/hsweb-system-workflow-starter/pom.xml @@ -5,7 +5,7 @@ hsweb-system-workflow org.hswebframework.web - 3.0.1-SNAPSHOT + 3.0.1 ../pom.xml 4.0.0 diff --git a/hsweb-system/hsweb-system-workflow/pom.xml b/hsweb-system/hsweb-system-workflow/pom.xml index 9f22bcb5d..d208440d3 100644 --- a/hsweb-system/hsweb-system-workflow/pom.xml +++ b/hsweb-system/hsweb-system-workflow/pom.xml @@ -5,7 +5,7 @@ hsweb-system org.hswebframework.web - 3.0.1-SNAPSHOT + 3.0.1 ../pom.xml 4.0.0 diff --git a/hsweb-system/pom.xml b/hsweb-system/pom.xml index faf779cd9..ed370d94a 100644 --- a/hsweb-system/pom.xml +++ b/hsweb-system/pom.xml @@ -5,7 +5,7 @@ hsweb-framework org.hswebframework.web - 3.0.1-SNAPSHOT + 3.0.1 ../pom.xml 4.0.0 diff --git a/hsweb-tests/pom.xml b/hsweb-tests/pom.xml index bde4252d7..435d2e180 100644 --- a/hsweb-tests/pom.xml +++ b/hsweb-tests/pom.xml @@ -5,7 +5,7 @@ hsweb-framework org.hswebframework.web - 3.0.1-SNAPSHOT + 3.0.1 4.0.0 diff --git a/hsweb-thirdparty/hsweb-thirdparty-ueditor/pom.xml b/hsweb-thirdparty/hsweb-thirdparty-ueditor/pom.xml index adaefc53b..2ccca1df1 100644 --- a/hsweb-thirdparty/hsweb-thirdparty-ueditor/pom.xml +++ b/hsweb-thirdparty/hsweb-thirdparty-ueditor/pom.xml @@ -5,7 +5,7 @@ hsweb-thirdparty org.hswebframework.web - 3.0.1-SNAPSHOT + 3.0.1 ../pom.xml 4.0.0 diff --git a/hsweb-thirdparty/pom.xml b/hsweb-thirdparty/pom.xml index 4ae440209..a61d31b33 100644 --- a/hsweb-thirdparty/pom.xml +++ b/hsweb-thirdparty/pom.xml @@ -5,7 +5,7 @@ hsweb-framework org.hswebframework.web - 3.0.1-SNAPSHOT + 3.0.1 4.0.0 diff --git a/pom.xml b/pom.xml index a8b42ec16..aaa1d152d 100644 --- a/pom.xml +++ b/pom.xml @@ -24,7 +24,7 @@ org.hswebframework.web hsweb-framework - 3.0.1-SNAPSHOT + 3.0.1 hsweb-starter hsweb-core From f34ae19a2f06063094fe20e84c0fb232c3bc7873 Mon Sep 17 00:00:00 2001 From: zhouhao Date: Wed, 10 Oct 2018 09:50:29 +0800 Subject: [PATCH 18/18] =?UTF-8?q?=E4=BF=AE=E5=A4=8D=E4=BE=9D=E8=B5=96?= =?UTF-8?q?=E9=94=99=E8=AF=AF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../hswebframework/web/authorization/basic/web/UserOnSignIn.java | 1 - 1 file changed, 1 deletion(-) diff --git a/hsweb-authorization/hsweb-authorization-basic/src/main/java/org/hswebframework/web/authorization/basic/web/UserOnSignIn.java b/hsweb-authorization/hsweb-authorization-basic/src/main/java/org/hswebframework/web/authorization/basic/web/UserOnSignIn.java index 4b26c57f4..927ba1117 100644 --- a/hsweb-authorization/hsweb-authorization-basic/src/main/java/org/hswebframework/web/authorization/basic/web/UserOnSignIn.java +++ b/hsweb-authorization/hsweb-authorization-basic/src/main/java/org/hswebframework/web/authorization/basic/web/UserOnSignIn.java @@ -1,6 +1,5 @@ package org.hswebframework.web.authorization.basic.web; -import org.hswebframework.web.authorization.listener.AuthorizationListener; import org.hswebframework.web.authorization.listener.event.AuthorizationSuccessEvent; import org.hswebframework.web.authorization.token.UserToken; import org.hswebframework.web.authorization.token.UserTokenHolder;