From e670b7962f093689d1f130070ea50124f219ecbf Mon Sep 17 00:00:00 2001 From: liurunyu <lry9898@163.com> Date: 星期六, 04 十一月 2023 15:59:19 +0800 Subject: [PATCH] 增加sso子模块,模块application.yml中端口号引用global.yml中统一配置的值,枚举类型标@EnumValue --- pipIrr-platform/pipIrr-web/pipIrr-web-sso/pom.xml | 39 + pipIrr-platform/pipIrr-web/pipIrr-web-sso/src/main/java/com/dy/sso/busi/UserVo.java | 22 pipIrr-platform/pipIrr-web/pipIrr-web-gis/src/main/resources/application.yml | 18 pipIrr-platform/pipIrr-web/pipIrr-web-sso/.gitignore | 33 + pipIrr-platform/pipIrr-web/pipIrr-web-demo/src/main/resources/application.yml | 4 pipIrr-platform/pipIrr-web/pipIrr-web-sso/src/main/java/com/dy/sso/config/WebListenerConfiguration.java | 50 ++ pipIrr-platform/pipIrr-web/pipIrr-web-sso/src/main/resources/config/config-sso.xml | 5 pipIrr-platform/pipIrr-web/pipIrr-web-statistics/src/main/resources/log4j2.yml | 79 +++ pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mybatis/envm/Deleted.java | 3 pipIrr-platform/pipIrr-web/pipIrr-web-sso/src/test/java/com/dy/sso/PipIrrWebSsoApplicationTests.java | 13 pipIrr-platform/pipIrr-web/pipIrr-web-sso/src/main/java/com/dy/sso/busi/SsoCtrl.java | 207 ++++++++ pipIrr-platform/pipIrr-web/pipIrr-web-sso/mvnw | 308 ++++++++++++ pipIrr-platform/pipIrr-web/pipIrr-web-demo/src/main/java/com/dy/pipIrrDemo/demo/DemoCtrl.java | 4 pipIrr-platform/pipIrr-web/pipIrr-web.iml | 2 pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mybatis/envm/Disabled.java | 3 pipIrr-platform/pipIrr-web/pipIrr-web-sso/.mvn/wrapper/maven-wrapper.properties | 2 pipIrr-platform/pipIrr-web/pipIrr-web-sso/src/main/resources/log4j2.yml | 79 +++ pipIrr-platform/pipIrr-web/pipIrr-web-sso/src/main/java/com/dy/sso/busi/CacheConstants.java | 8 pipIrr-platform/pipIrr-web/pipIrr-web-base/src/main/resources/application.yml | 4 pipIrr-platform/pipIrr-web/pipIrr-web-sso/src/main/java/com/dy/sso/busi/UserVoMapper.java | 23 pipIrr-platform/pipIrr-web/pom.xml | 2 pipIrr-platform/pipIrr-web/pipIrr-web-sso/mvnw.cmd | 205 ++++++++ pipIrr-platform/pipIrr-web/pipIrr-web-sso/src/main/java/com/dy/sso/PipIrrSsoApplication.java | 31 + pipIrr-platform/pipIrr-web/pipIrr-web-sso/src/main/java/com/dy/sso/config/CaffeineCacheConfiguration.java | 39 + pipIrr-platform/pipIrr-web/pipIrr-web-statistics/src/main/resources/application.yml | 18 pipIrr-platform/pipIrr-web/pipIrr-web-remote/src/main/resources/application.yml | 4 /dev/null | 1 pipIrr-platform/pipIrr-web/pipIrr-web-sso/.mvn/wrapper/maven-wrapper.jar | 0 pipIrr-platform/pipIrr-web/pipIrr-web-sso/src/main/java/com/dy/sso/busi/LoginVo.java | 32 + pipIrr-platform/pipIrr-web/pipIrr-web-sso/src/main/java/com/dy/sso/busi/SsoSv.java | 39 + pipIrr-platform/pipIrr-web/pipIrr-web-gis/src/main/resources/log4j2.yml | 73 +++ pipIrr-platform/pipIrr-global/src/main/resources/application-global.yml | 17 pipIrr-platform/pipIrr-web/pipIrr-web-sso/src/main/java/com/dy/sso/util/SsoListener.java | 22 pipIrr-platform/pipIrr-web/pipIrr-web-sso/src/main/resources/application.yml | 18 34 files changed, 1,397 insertions(+), 10 deletions(-) diff --git a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mybatis/envm/Deleted.java b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mybatis/envm/Deleted.java index e53c10e..6e073f7 100644 --- a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mybatis/envm/Deleted.java +++ b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mybatis/envm/Deleted.java @@ -1,10 +1,13 @@ package com.dy.common.mybatis.envm; +import com.baomidou.mybatisplus.annotation.EnumValue; + public enum Deleted implements IEnum{ YES((byte)1, "鏄�"), NO((byte)0, "鍚�"); + @EnumValue public Byte code ; public String name ; diff --git a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mybatis/envm/Disabled.java b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mybatis/envm/Disabled.java index fd8e9f4..b16444b 100644 --- a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mybatis/envm/Disabled.java +++ b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mybatis/envm/Disabled.java @@ -1,10 +1,13 @@ package com.dy.common.mybatis.envm; +import com.baomidou.mybatisplus.annotation.EnumValue; + public enum Disabled implements IEnum{ YES((byte)1, "鏄�"), NO((byte)0, "鍚�"); + @EnumValue public Byte code ; public String name ; diff --git a/pipIrr-platform/pipIrr-global/src/main/resources/application-global.yml b/pipIrr-platform/pipIrr-global/src/main/resources/application-global.yml index 61b092b..ac26181 100644 --- a/pipIrr-platform/pipIrr-global/src/main/resources/application-global.yml +++ b/pipIrr-platform/pipIrr-global/src/main/resources/application-global.yml @@ -70,5 +70,22 @@ default-enum-type-handler: com.dy.common.mybatis.envm.EnumCodeTypeHandler pipIrr: + demo: + webPort: 8000 + actutorPort: 9000 sso: checkUrl: http://127.0.0.1:8888/sso/sso/ssoCheck + webPort: 8080 + actutorPort: 9080 + base: + webPort: 8080 + actutorPort: 9080 + remote: + webPort: 8080 + actutorPort: 9080 + statistics: + webPort: 8080 + actutorPort: 9080 + gis: + webPort: 8080 + actutorPort: 9080 \ No newline at end of file diff --git a/pipIrr-platform/pipIrr-web/pipIrr-web-base/src/main/resources/application.yml b/pipIrr-platform/pipIrr-web/pipIrr-web-base/src/main/resources/application.yml index de87bf5..b7bb69a 100644 --- a/pipIrr-platform/pipIrr-web/pipIrr-web-base/src/main/resources/application.yml +++ b/pipIrr-platform/pipIrr-web/pipIrr-web-base/src/main/resources/application.yml @@ -5,10 +5,10 @@ #actutor鐨剋eb绔彛 management: server: - port: 9080 + port: ${pipIrr.base.actutorPort} #web鏈嶅姟绔彛锛宼omcat榛樿鏄�8080 server: - port: 8080 + port: ${pipIrr.base.webPort} servlet: context-path: /base #web璁块棶涓婁笅鏂囪矾寰� context-parameters: diff --git a/pipIrr-platform/pipIrr-web/pipIrr-web-demo/src/main/java/com/dy/pipIrrDemo/demo/DemoCtrl.java b/pipIrr-platform/pipIrr-web/pipIrr-web-demo/src/main/java/com/dy/pipIrrDemo/demo/DemoCtrl.java index c97b192..002e818 100644 --- a/pipIrr-platform/pipIrr-web/pipIrr-web-demo/src/main/java/com/dy/pipIrrDemo/demo/DemoCtrl.java +++ b/pipIrr-platform/pipIrr-web/pipIrr-web-demo/src/main/java/com/dy/pipIrrDemo/demo/DemoCtrl.java @@ -66,7 +66,7 @@ ) }) @GetMapping("info/{id}/") - //http://127.0.0.1:8080/base/demo/info/123234234/?name=寮犱笁 + //http://127.0.0.1:8000/demo/demo/info/123234234/?name=寮犱笁 @SsoAop(power="123456", ifAllPower = {"123", "456"}) public BaseResponse<String> info(@PathVariable String id, @RequestParam String name) throws GlException{ if(name == null || name.trim().equals("")){ @@ -96,7 +96,7 @@ )) @PostMapping(value = "test", consumes = "application/json") //@RequestMapping(value="test", method = RequestMethod.POST, consumes = "application/json") - //http://127.0.0.1:8080/base/demo/test/{"id":123456789,"age":12,"name":"test","tel":"1230987654"} + //http://127.0.0.1:8000/demo/demo/test/{"id":123456789,"age":12,"name":"test","tel":"1230987654"} public BaseResponse<DemoTest> test(@RequestBody DemoTestVo req){ DemoTest po = new DemoTest() ; po.id = System.currentTimeMillis() ; diff --git a/pipIrr-platform/pipIrr-web/pipIrr-web-demo/src/main/resources/application.yml b/pipIrr-platform/pipIrr-web/pipIrr-web-demo/src/main/resources/application.yml index 27e573a..a2ba7a3 100644 --- a/pipIrr-platform/pipIrr-web/pipIrr-web-demo/src/main/resources/application.yml +++ b/pipIrr-platform/pipIrr-web/pipIrr-web-demo/src/main/resources/application.yml @@ -5,10 +5,10 @@ #actutor鐨剋eb绔彛 management: server: - port: 9000 + port: ${pipIrr.demo.actutorPort} #web鏈嶅姟绔彛锛宼omcat榛樿鏄�8080 server: - port: 8000 + port: ${pipIrr.demo.webPort} servlet: context-path: /demo #web璁块棶涓婁笅鏂囪矾寰� context-parameters: diff --git a/pipIrr-platform/pipIrr-web/pipIrr-web-gis/src/main/resources/application.properties b/pipIrr-platform/pipIrr-web/pipIrr-web-gis/src/main/resources/application.properties deleted file mode 100644 index 8b13789..0000000 --- a/pipIrr-platform/pipIrr-web/pipIrr-web-gis/src/main/resources/application.properties +++ /dev/null @@ -1 +0,0 @@ - diff --git a/pipIrr-platform/pipIrr-web/pipIrr-web-gis/src/main/resources/application.yml b/pipIrr-platform/pipIrr-web/pipIrr-web-gis/src/main/resources/application.yml new file mode 100644 index 0000000..eab3c3a --- /dev/null +++ b/pipIrr-platform/pipIrr-web/pipIrr-web-gis/src/main/resources/application.yml @@ -0,0 +1,18 @@ +spring: + profiles: + include: global, database + +#actutor鐨剋eb绔彛 +management: + server: + port: ${pipIrr.gis.actutorPort} +#web鏈嶅姟绔彛锛宼omcat榛樿鏄�8080 +server: + port: ${pipIrr.gis.webPort} + servlet: + context-path: /gis #web璁块棶涓婁笅鏂囪矾寰� + context-parameters: + #GenerateIdSetSuffixListener涓簲鐢紝鍙栧�艰寖鍥存槸0-99 + idSuffix: 1 + #ConfigListener涓簲鐢� + #configFileNames: config-global.xml,config-demo.xml diff --git a/pipIrr-platform/pipIrr-web/pipIrr-web-gis/src/main/resources/log4j2.yml b/pipIrr-platform/pipIrr-web/pipIrr-web-gis/src/main/resources/log4j2.yml new file mode 100644 index 0000000..84295b1 --- /dev/null +++ b/pipIrr-platform/pipIrr-web/pipIrr-web-gis/src/main/resources/log4j2.yml @@ -0,0 +1,73 @@ +Configuration: + #status锛岃繖涓敤浜庤缃甽og4j2鑷韩鍐呴儴鐨勪俊鎭緭鍑猴紝鍙互涓嶈缃紝褰撹缃垚trace鏃讹紝浣犱細鐪嬪埌log4j2鍐呴儴鍚勭璇︾粏杈撳嚭锛涘彲浠ヨ缃垚Off(鍏抽棴)鎴朎rror(鍙緭鍑洪敊璇俊鎭�) + status: Error + + Properties: # 瀹氫箟鍏ㄥ眬鍙橀噺 + Property: + #鏃ュ織鏂囦欢瀛樺偍鐨勭洰褰� + - name: log.path + value: ./logs + #鏃ュ織鏂囦欢瀛樺偍鍚嶇О + - name: project.name + value: pipIrrGis + + #瀹氫箟杈撳嚭鍣紝鍙互杈撳嚭鍒版帶鍒跺彴鍜屾枃浠�. + Appenders: + #杈撳嚭鍒版帶鍒跺彴 + Console: + #Appender鍛藉悕 + name: CONSOLE + target: SYSTEM_OUT + ThresholdFilter: + level: debug #杈撳嚭鏃ュ織绾у埆锛岃緭鍑烘棩蹇楁椂锛岄鍏堢敱Loggers.Root.level鎴朙oggers.Logger.level鍒ゆ柇鏄惁杈撳嚭锛岀劧鍚庡啀鐢辨湰level鍒ゆ柇鏄惁杈撳嚭 + onMatch: ACCEPT #onMatch=ACCEPT 澶т簬绛変簬 "level" 閰嶇疆鐨勭瓑绾у湴鏃ュ織杈撳嚭 + onMismatch: DENY #onMismatch=DENY 灏忎簬 "level" 閰嶇疆鐨勭瓑绾у湴鏃ュ織涓嶈緭鍑� + #鏃ュ織鍐呭鏍峰紡 + PatternLayout: + #%n-鎹㈣ + #%m-鏃ュ織鍐呭锛岃緭鍑轰唬鐮佷腑鎸囧畾鐨勬棩蹇椾俊鎭� + #%p-杈撳嚭浼樺厛绾э紝鍗矰EBUG,INFO,WARN,ERROR,FATAL + #%r-绋嬪簭鍚姩鍒扮幇鍦ㄧ殑姣鏁� + #%%- 杈撳嚭涓�涓�"%" 瀛楃 + #%t-褰撳墠绾跨▼鍚� + #%d-鏃ユ湡鍜屾椂闂�, 甯哥敤鐨勬牸寮忔湁%d{DATE},%d{ABSOLUTE},%d{HH:mm:ss,SSS},%d{ddMMyyyyHH:mm:ss,SSS} + #%l-鍚�%F%L%C%M + #%F-java婧愭枃浠跺悕 + #%L-java婧愮爜琛屾暟 + #%C-java绫诲悕,%C{1}杈撳嚭鏈�鍚庝竴涓厓绱� + #%M-java鏂规硶鍚� + pattern: "%d{yyyy-MM-dd HH:mm:ss,SSS}:%4p %t (%C.%M:%L) - %m%n" + # 杈撳嚭鍒版枃浠讹紝瓒呰繃10MB褰掓。 + RollingFile: + - name: ROLLING_FILE + ignoreExceptions: false + fileName: ${log.path}/${project.name}.log + filePattern: "${log.path}/$${date:yyyy-MM}/${project.name}-%d{yyyy-MM-dd}-%i.log.gz" + ThresholdFilter: + level: error #杈撳嚭鏃ュ織绾у埆锛岃緭鍑烘棩蹇楁椂锛岄鍏堢敱Loggers.Root.level鎴朙oggers.Logger.level鍒ゆ柇鏄惁杈撳嚭锛岀劧鍚庡啀鐢辨湰level鍒ゆ柇鏄惁杈撳嚭 + onMatch: ACCEPT #onMatch=ACCEPT 澶т簬绛変簬 "level" 閰嶇疆鐨勭瓑绾у湴鏃ュ織杈撳嚭 + onMismatch: DENY #onMismatch=DENY 灏忎簬 "level" 閰嶇疆鐨勭瓑绾у湴鏃ュ織涓嶈緭鍑� + #鏃ュ織鍐呭鏍峰紡 + PatternLayout: + pattern: "%d{yyyy-MM-dd HH:mm:ss,SSS}:%4p %t (%C.%M:%L) - %m%n" + Policies: + SizeBasedTriggeringPolicy: + size: "10 MB" + DefaultRolloverStrategy: + max: 1000 + + Loggers: + Root: + level: info #鏃ュ織杈撳嚭绾у埆锛屽叡鏈�8涓骇鍒紝鎸夌収浠庝綆鍒伴珮涓猴細all < trace < debug < info < warn < error < fatal < off + AppenderRef: #Root鐨勫瓙鑺傜偣锛岀敤鏉ユ寚瀹氳鏃ュ織杈撳嚭鍒板摢涓狝ppender. + - ref: CONSOLE #杈撳嚭鏃ュ織鏃讹紝棣栧厛鐢辨湰level鍒ゆ柇鏄惁杈撳嚭锛岀劧鍚庡啀鐢变笂闈㈢殑Appenders.Console.ThresholdFilter.level鍒ゆ柇鏄惁杈撳嚭 + - ref: ROLLING_FILE #杈撳嚭鏃ュ織鏃讹紝棣栧厛鐢辨湰level鍒ゆ柇鏄惁杈撳嚭锛岀劧鍚庡啀鐢变笂闈㈢殑Appenders.RollingFile.ThresholdFilter.level鍒ゆ柇鏄惁杈撳嚭 + # 涓哄寘閰嶇疆鐗规畩鐨凩og绾у埆锛屾柟渚胯皟璇曪紝 + # 涓嶅彈Loggers.Root.level闄愬埗 + Logger: + - name: com.dy.pipIrrGlobal.daoBa + additivity: false #鍘婚櫎閲嶅鐨刲og + level: debug #杈撳嚭鏃ュ織绾у埆 + AppenderRef: + - ref: CONSOLE #杈撳嚭鏃ュ織鏃讹紝棣栧厛鐢辨湰.level鍒ゆ柇鏄惁杈撳嚭锛岀劧鍚庡啀鐢变笂闈㈢殑Appenders.Console.ThresholdFilter.level鍒ゆ柇鏄惁杈撳嚭 + - ref: ROLLING_FILE #杈撳嚭鏃ュ織鏃讹紝棣栧厛鐢辨湰level鍒ゆ柇鏄惁杈撳嚭锛岀劧鍚庡啀鐢变笂闈㈢殑Appenders.RollingFile.ThresholdFilter.level鍒ゆ柇鏄惁杈撳嚭 diff --git a/pipIrr-platform/pipIrr-web/pipIrr-web-remote/src/main/resources/application.yml b/pipIrr-platform/pipIrr-web/pipIrr-web-remote/src/main/resources/application.yml index 5cd58e7..895fc77 100644 --- a/pipIrr-platform/pipIrr-web/pipIrr-web-remote/src/main/resources/application.yml +++ b/pipIrr-platform/pipIrr-web/pipIrr-web-remote/src/main/resources/application.yml @@ -5,10 +5,10 @@ #actutor鐨剋eb绔彛 management: server: - port: 9081 + port: ${pipIrr.remote.actutorPort} #web鏈嶅姟绔彛锛宼omcat榛樿鏄�8080 server: - port: 8081 + port: ${pipIrr.remote.webPort} servlet: context-path: /remote #web璁块棶涓婁笅鏂囪矾寰� context-parameters: diff --git a/pipIrr-platform/pipIrr-web/pipIrr-web-sso/.gitignore b/pipIrr-platform/pipIrr-web/pipIrr-web-sso/.gitignore new file mode 100644 index 0000000..549e00a --- /dev/null +++ b/pipIrr-platform/pipIrr-web/pipIrr-web-sso/.gitignore @@ -0,0 +1,33 @@ +HELP.md +target/ +!.mvn/wrapper/maven-wrapper.jar +!**/src/main/**/target/ +!**/src/test/**/target/ + +### STS ### +.apt_generated +.classpath +.factorypath +.project +.settings +.springBeans +.sts4-cache + +### IntelliJ IDEA ### +.idea +*.iws +*.iml +*.ipr + +### NetBeans ### +/nbproject/private/ +/nbbuild/ +/dist/ +/nbdist/ +/.nb-gradle/ +build/ +!**/src/main/**/build/ +!**/src/test/**/build/ + +### VS Code ### +.vscode/ diff --git a/pipIrr-platform/pipIrr-web/pipIrr-web-sso/.mvn/wrapper/maven-wrapper.jar b/pipIrr-platform/pipIrr-web/pipIrr-web-sso/.mvn/wrapper/maven-wrapper.jar new file mode 100644 index 0000000..cb28b0e --- /dev/null +++ b/pipIrr-platform/pipIrr-web/pipIrr-web-sso/.mvn/wrapper/maven-wrapper.jar Binary files differ diff --git a/pipIrr-platform/pipIrr-web/pipIrr-web-sso/.mvn/wrapper/maven-wrapper.properties b/pipIrr-platform/pipIrr-web/pipIrr-web-sso/.mvn/wrapper/maven-wrapper.properties new file mode 100644 index 0000000..5f0536e --- /dev/null +++ b/pipIrr-platform/pipIrr-web/pipIrr-web-sso/.mvn/wrapper/maven-wrapper.properties @@ -0,0 +1,2 @@ +distributionUrl=https://repo.maven.apache.org/maven2/org/apache/maven/apache-maven/3.9.5/apache-maven-3.9.5-bin.zip +wrapperUrl=https://repo.maven.apache.org/maven2/org/apache/maven/wrapper/maven-wrapper/3.2.0/maven-wrapper-3.2.0.jar diff --git a/pipIrr-platform/pipIrr-web/pipIrr-web-sso/mvnw b/pipIrr-platform/pipIrr-web/pipIrr-web-sso/mvnw new file mode 100644 index 0000000..66df285 --- /dev/null +++ b/pipIrr-platform/pipIrr-web/pipIrr-web-sso/mvnw @@ -0,0 +1,308 @@ +#!/bin/sh +# ---------------------------------------------------------------------------- +# Licensed to the Apache Software Foundation (ASF) under one +# or more contributor license agreements. See the NOTICE file +# distributed with this work for additional information +# regarding copyright ownership. The ASF licenses this file +# to you 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 +# +# https://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. +# ---------------------------------------------------------------------------- + +# ---------------------------------------------------------------------------- +# Apache Maven Wrapper startup batch script, version 3.2.0 +# +# Required ENV vars: +# ------------------ +# JAVA_HOME - location of a JDK home dir +# +# Optional ENV vars +# ----------------- +# MAVEN_OPTS - parameters passed to the Java VM when running Maven +# e.g. to debug Maven itself, use +# set MAVEN_OPTS=-Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=8000 +# MAVEN_SKIP_RC - flag to disable loading of mavenrc files +# ---------------------------------------------------------------------------- + +if [ -z "$MAVEN_SKIP_RC" ] ; then + + if [ -f /usr/local/etc/mavenrc ] ; then + . /usr/local/etc/mavenrc + fi + + if [ -f /etc/mavenrc ] ; then + . /etc/mavenrc + fi + + if [ -f "$HOME/.mavenrc" ] ; then + . "$HOME/.mavenrc" + fi + +fi + +# OS specific support. $var _must_ be set to either true or false. +cygwin=false; +darwin=false; +mingw=false +case "$(uname)" in + CYGWIN*) cygwin=true ;; + MINGW*) mingw=true;; + Darwin*) darwin=true + # Use /usr/libexec/java_home if available, otherwise fall back to /Library/Java/Home + # See https://developer.apple.com/library/mac/qa/qa1170/_index.html + if [ -z "$JAVA_HOME" ]; then + if [ -x "/usr/libexec/java_home" ]; then + JAVA_HOME="$(/usr/libexec/java_home)"; export JAVA_HOME + else + JAVA_HOME="/Library/Java/Home"; export JAVA_HOME + fi + fi + ;; +esac + +if [ -z "$JAVA_HOME" ] ; then + if [ -r /etc/gentoo-release ] ; then + JAVA_HOME=$(java-config --jre-home) + fi +fi + +# For Cygwin, ensure paths are in UNIX format before anything is touched +if $cygwin ; then + [ -n "$JAVA_HOME" ] && + JAVA_HOME=$(cygpath --unix "$JAVA_HOME") + [ -n "$CLASSPATH" ] && + CLASSPATH=$(cygpath --path --unix "$CLASSPATH") +fi + +# For Mingw, ensure paths are in UNIX format before anything is touched +if $mingw ; then + [ -n "$JAVA_HOME" ] && [ -d "$JAVA_HOME" ] && + JAVA_HOME="$(cd "$JAVA_HOME" || (echo "cannot cd into $JAVA_HOME."; exit 1); pwd)" +fi + +if [ -z "$JAVA_HOME" ]; then + javaExecutable="$(which javac)" + if [ -n "$javaExecutable" ] && ! [ "$(expr "\"$javaExecutable\"" : '\([^ ]*\)')" = "no" ]; then + # readlink(1) is not available as standard on Solaris 10. + readLink=$(which readlink) + if [ ! "$(expr "$readLink" : '\([^ ]*\)')" = "no" ]; then + if $darwin ; then + javaHome="$(dirname "\"$javaExecutable\"")" + javaExecutable="$(cd "\"$javaHome\"" && pwd -P)/javac" + else + javaExecutable="$(readlink -f "\"$javaExecutable\"")" + fi + javaHome="$(dirname "\"$javaExecutable\"")" + javaHome=$(expr "$javaHome" : '\(.*\)/bin') + JAVA_HOME="$javaHome" + export JAVA_HOME + fi + fi +fi + +if [ -z "$JAVACMD" ] ; then + if [ -n "$JAVA_HOME" ] ; then + if [ -x "$JAVA_HOME/jre/sh/java" ] ; then + # IBM's JDK on AIX uses strange locations for the executables + JAVACMD="$JAVA_HOME/jre/sh/java" + else + JAVACMD="$JAVA_HOME/bin/java" + fi + else + JAVACMD="$(\unset -f command 2>/dev/null; \command -v java)" + fi +fi + +if [ ! -x "$JAVACMD" ] ; then + echo "Error: JAVA_HOME is not defined correctly." >&2 + echo " We cannot execute $JAVACMD" >&2 + exit 1 +fi + +if [ -z "$JAVA_HOME" ] ; then + echo "Warning: JAVA_HOME environment variable is not set." +fi + +# traverses directory structure from process work directory to filesystem root +# first directory with .mvn subdirectory is considered project base directory +find_maven_basedir() { + if [ -z "$1" ] + then + echo "Path not specified to find_maven_basedir" + return 1 + fi + + basedir="$1" + wdir="$1" + while [ "$wdir" != '/' ] ; do + if [ -d "$wdir"/.mvn ] ; then + basedir=$wdir + break + fi + # workaround for JBEAP-8937 (on Solaris 10/Sparc) + if [ -d "${wdir}" ]; then + wdir=$(cd "$wdir/.." || exit 1; pwd) + fi + # end of workaround + done + printf '%s' "$(cd "$basedir" || exit 1; pwd)" +} + +# concatenates all lines of a file +concat_lines() { + if [ -f "$1" ]; then + # Remove \r in case we run on Windows within Git Bash + # and check out the repository with auto CRLF management + # enabled. Otherwise, we may read lines that are delimited with + # \r\n and produce $'-Xarg\r' rather than -Xarg due to word + # splitting rules. + tr -s '\r\n' ' ' < "$1" + fi +} + +log() { + if [ "$MVNW_VERBOSE" = true ]; then + printf '%s\n' "$1" + fi +} + +BASE_DIR=$(find_maven_basedir "$(dirname "$0")") +if [ -z "$BASE_DIR" ]; then + exit 1; +fi + +MAVEN_PROJECTBASEDIR=${MAVEN_BASEDIR:-"$BASE_DIR"}; export MAVEN_PROJECTBASEDIR +log "$MAVEN_PROJECTBASEDIR" + +########################################################################################## +# Extension to allow automatically downloading the maven-wrapper.jar from Maven-central +# This allows using the maven wrapper in projects that prohibit checking in binary data. +########################################################################################## +wrapperJarPath="$MAVEN_PROJECTBASEDIR/.mvn/wrapper/maven-wrapper.jar" +if [ -r "$wrapperJarPath" ]; then + log "Found $wrapperJarPath" +else + log "Couldn't find $wrapperJarPath, downloading it ..." + + if [ -n "$MVNW_REPOURL" ]; then + wrapperUrl="$MVNW_REPOURL/org/apache/maven/wrapper/maven-wrapper/3.2.0/maven-wrapper-3.2.0.jar" + else + wrapperUrl="https://repo.maven.apache.org/maven2/org/apache/maven/wrapper/maven-wrapper/3.2.0/maven-wrapper-3.2.0.jar" + fi + while IFS="=" read -r key value; do + # Remove '\r' from value to allow usage on windows as IFS does not consider '\r' as a separator ( considers space, tab, new line ('\n'), and custom '=' ) + safeValue=$(echo "$value" | tr -d '\r') + case "$key" in (wrapperUrl) wrapperUrl="$safeValue"; break ;; + esac + done < "$MAVEN_PROJECTBASEDIR/.mvn/wrapper/maven-wrapper.properties" + log "Downloading from: $wrapperUrl" + + if $cygwin; then + wrapperJarPath=$(cygpath --path --windows "$wrapperJarPath") + fi + + if command -v wget > /dev/null; then + log "Found wget ... using wget" + [ "$MVNW_VERBOSE" = true ] && QUIET="" || QUIET="--quiet" + if [ -z "$MVNW_USERNAME" ] || [ -z "$MVNW_PASSWORD" ]; then + wget $QUIET "$wrapperUrl" -O "$wrapperJarPath" || rm -f "$wrapperJarPath" + else + wget $QUIET --http-user="$MVNW_USERNAME" --http-password="$MVNW_PASSWORD" "$wrapperUrl" -O "$wrapperJarPath" || rm -f "$wrapperJarPath" + fi + elif command -v curl > /dev/null; then + log "Found curl ... using curl" + [ "$MVNW_VERBOSE" = true ] && QUIET="" || QUIET="--silent" + if [ -z "$MVNW_USERNAME" ] || [ -z "$MVNW_PASSWORD" ]; then + curl $QUIET -o "$wrapperJarPath" "$wrapperUrl" -f -L || rm -f "$wrapperJarPath" + else + curl $QUIET --user "$MVNW_USERNAME:$MVNW_PASSWORD" -o "$wrapperJarPath" "$wrapperUrl" -f -L || rm -f "$wrapperJarPath" + fi + else + log "Falling back to using Java to download" + javaSource="$MAVEN_PROJECTBASEDIR/.mvn/wrapper/MavenWrapperDownloader.java" + javaClass="$MAVEN_PROJECTBASEDIR/.mvn/wrapper/MavenWrapperDownloader.class" + # For Cygwin, switch paths to Windows format before running javac + if $cygwin; then + javaSource=$(cygpath --path --windows "$javaSource") + javaClass=$(cygpath --path --windows "$javaClass") + fi + if [ -e "$javaSource" ]; then + if [ ! -e "$javaClass" ]; then + log " - Compiling MavenWrapperDownloader.java ..." + ("$JAVA_HOME/bin/javac" "$javaSource") + fi + if [ -e "$javaClass" ]; then + log " - Running MavenWrapperDownloader.java ..." + ("$JAVA_HOME/bin/java" -cp .mvn/wrapper MavenWrapperDownloader "$wrapperUrl" "$wrapperJarPath") || rm -f "$wrapperJarPath" + fi + fi + fi +fi +########################################################################################## +# End of extension +########################################################################################## + +# If specified, validate the SHA-256 sum of the Maven wrapper jar file +wrapperSha256Sum="" +while IFS="=" read -r key value; do + case "$key" in (wrapperSha256Sum) wrapperSha256Sum=$value; break ;; + esac +done < "$MAVEN_PROJECTBASEDIR/.mvn/wrapper/maven-wrapper.properties" +if [ -n "$wrapperSha256Sum" ]; then + wrapperSha256Result=false + if command -v sha256sum > /dev/null; then + if echo "$wrapperSha256Sum $wrapperJarPath" | sha256sum -c > /dev/null 2>&1; then + wrapperSha256Result=true + fi + elif command -v shasum > /dev/null; then + if echo "$wrapperSha256Sum $wrapperJarPath" | shasum -a 256 -c > /dev/null 2>&1; then + wrapperSha256Result=true + fi + else + echo "Checksum validation was requested but neither 'sha256sum' or 'shasum' are available." + echo "Please install either command, or disable validation by removing 'wrapperSha256Sum' from your maven-wrapper.properties." + exit 1 + fi + if [ $wrapperSha256Result = false ]; then + echo "Error: Failed to validate Maven wrapper SHA-256, your Maven wrapper might be compromised." >&2 + echo "Investigate or delete $wrapperJarPath to attempt a clean download." >&2 + echo "If you updated your Maven version, you need to update the specified wrapperSha256Sum property." >&2 + exit 1 + fi +fi + +MAVEN_OPTS="$(concat_lines "$MAVEN_PROJECTBASEDIR/.mvn/jvm.config") $MAVEN_OPTS" + +# For Cygwin, switch paths to Windows format before running java +if $cygwin; then + [ -n "$JAVA_HOME" ] && + JAVA_HOME=$(cygpath --path --windows "$JAVA_HOME") + [ -n "$CLASSPATH" ] && + CLASSPATH=$(cygpath --path --windows "$CLASSPATH") + [ -n "$MAVEN_PROJECTBASEDIR" ] && + MAVEN_PROJECTBASEDIR=$(cygpath --path --windows "$MAVEN_PROJECTBASEDIR") +fi + +# Provide a "standardized" way to retrieve the CLI args that will +# work with both Windows and non-Windows executions. +MAVEN_CMD_LINE_ARGS="$MAVEN_CONFIG $*" +export MAVEN_CMD_LINE_ARGS + +WRAPPER_LAUNCHER=org.apache.maven.wrapper.MavenWrapperMain + +# shellcheck disable=SC2086 # safe args +exec "$JAVACMD" \ + $MAVEN_OPTS \ + $MAVEN_DEBUG_OPTS \ + -classpath "$MAVEN_PROJECTBASEDIR/.mvn/wrapper/maven-wrapper.jar" \ + "-Dmaven.multiModuleProjectDirectory=${MAVEN_PROJECTBASEDIR}" \ + ${WRAPPER_LAUNCHER} $MAVEN_CONFIG "$@" diff --git a/pipIrr-platform/pipIrr-web/pipIrr-web-sso/mvnw.cmd b/pipIrr-platform/pipIrr-web/pipIrr-web-sso/mvnw.cmd new file mode 100644 index 0000000..95ba6f5 --- /dev/null +++ b/pipIrr-platform/pipIrr-web/pipIrr-web-sso/mvnw.cmd @@ -0,0 +1,205 @@ +@REM ---------------------------------------------------------------------------- +@REM Licensed to the Apache Software Foundation (ASF) under one +@REM or more contributor license agreements. See the NOTICE file +@REM distributed with this work for additional information +@REM regarding copyright ownership. The ASF licenses this file +@REM to you under the Apache License, Version 2.0 (the +@REM "License"); you may not use this file except in compliance +@REM with the License. You may obtain a copy of the License at +@REM +@REM https://www.apache.org/licenses/LICENSE-2.0 +@REM +@REM Unless required by applicable law or agreed to in writing, +@REM software distributed under the License is distributed on an +@REM "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY +@REM KIND, either express or implied. See the License for the +@REM specific language governing permissions and limitations +@REM under the License. +@REM ---------------------------------------------------------------------------- + +@REM ---------------------------------------------------------------------------- +@REM Apache Maven Wrapper startup batch script, version 3.2.0 +@REM +@REM Required ENV vars: +@REM JAVA_HOME - location of a JDK home dir +@REM +@REM Optional ENV vars +@REM MAVEN_BATCH_ECHO - set to 'on' to enable the echoing of the batch commands +@REM MAVEN_BATCH_PAUSE - set to 'on' to wait for a keystroke before ending +@REM MAVEN_OPTS - parameters passed to the Java VM when running Maven +@REM e.g. to debug Maven itself, use +@REM set MAVEN_OPTS=-Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=8000 +@REM MAVEN_SKIP_RC - flag to disable loading of mavenrc files +@REM ---------------------------------------------------------------------------- + +@REM Begin all REM lines with '@' in case MAVEN_BATCH_ECHO is 'on' +@echo off +@REM set title of command window +title %0 +@REM enable echoing by setting MAVEN_BATCH_ECHO to 'on' +@if "%MAVEN_BATCH_ECHO%" == "on" echo %MAVEN_BATCH_ECHO% + +@REM set %HOME% to equivalent of $HOME +if "%HOME%" == "" (set "HOME=%HOMEDRIVE%%HOMEPATH%") + +@REM Execute a user defined script before this one +if not "%MAVEN_SKIP_RC%" == "" goto skipRcPre +@REM check for pre script, once with legacy .bat ending and once with .cmd ending +if exist "%USERPROFILE%\mavenrc_pre.bat" call "%USERPROFILE%\mavenrc_pre.bat" %* +if exist "%USERPROFILE%\mavenrc_pre.cmd" call "%USERPROFILE%\mavenrc_pre.cmd" %* +:skipRcPre + +@setlocal + +set ERROR_CODE=0 + +@REM To isolate internal variables from possible post scripts, we use another setlocal +@setlocal + +@REM ==== START VALIDATION ==== +if not "%JAVA_HOME%" == "" goto OkJHome + +echo. +echo Error: JAVA_HOME not found in your environment. >&2 +echo Please set the JAVA_HOME variable in your environment to match the >&2 +echo location of your Java installation. >&2 +echo. +goto error + +:OkJHome +if exist "%JAVA_HOME%\bin\java.exe" goto init + +echo. +echo Error: JAVA_HOME is set to an invalid directory. >&2 +echo JAVA_HOME = "%JAVA_HOME%" >&2 +echo Please set the JAVA_HOME variable in your environment to match the >&2 +echo location of your Java installation. >&2 +echo. +goto error + +@REM ==== END VALIDATION ==== + +:init + +@REM Find the project base dir, i.e. the directory that contains the folder ".mvn". +@REM Fallback to current working directory if not found. + +set MAVEN_PROJECTBASEDIR=%MAVEN_BASEDIR% +IF NOT "%MAVEN_PROJECTBASEDIR%"=="" goto endDetectBaseDir + +set EXEC_DIR=%CD% +set WDIR=%EXEC_DIR% +:findBaseDir +IF EXIST "%WDIR%"\.mvn goto baseDirFound +cd .. +IF "%WDIR%"=="%CD%" goto baseDirNotFound +set WDIR=%CD% +goto findBaseDir + +:baseDirFound +set MAVEN_PROJECTBASEDIR=%WDIR% +cd "%EXEC_DIR%" +goto endDetectBaseDir + +:baseDirNotFound +set MAVEN_PROJECTBASEDIR=%EXEC_DIR% +cd "%EXEC_DIR%" + +:endDetectBaseDir + +IF NOT EXIST "%MAVEN_PROJECTBASEDIR%\.mvn\jvm.config" goto endReadAdditionalConfig + +@setlocal EnableExtensions EnableDelayedExpansion +for /F "usebackq delims=" %%a in ("%MAVEN_PROJECTBASEDIR%\.mvn\jvm.config") do set JVM_CONFIG_MAVEN_PROPS=!JVM_CONFIG_MAVEN_PROPS! %%a +@endlocal & set JVM_CONFIG_MAVEN_PROPS=%JVM_CONFIG_MAVEN_PROPS% + +:endReadAdditionalConfig + +SET MAVEN_JAVA_EXE="%JAVA_HOME%\bin\java.exe" +set WRAPPER_JAR="%MAVEN_PROJECTBASEDIR%\.mvn\wrapper\maven-wrapper.jar" +set WRAPPER_LAUNCHER=org.apache.maven.wrapper.MavenWrapperMain + +set WRAPPER_URL="https://repo.maven.apache.org/maven2/org/apache/maven/wrapper/maven-wrapper/3.2.0/maven-wrapper-3.2.0.jar" + +FOR /F "usebackq tokens=1,2 delims==" %%A IN ("%MAVEN_PROJECTBASEDIR%\.mvn\wrapper\maven-wrapper.properties") DO ( + IF "%%A"=="wrapperUrl" SET WRAPPER_URL=%%B +) + +@REM Extension to allow automatically downloading the maven-wrapper.jar from Maven-central +@REM This allows using the maven wrapper in projects that prohibit checking in binary data. +if exist %WRAPPER_JAR% ( + if "%MVNW_VERBOSE%" == "true" ( + echo Found %WRAPPER_JAR% + ) +) else ( + if not "%MVNW_REPOURL%" == "" ( + SET WRAPPER_URL="%MVNW_REPOURL%/org/apache/maven/wrapper/maven-wrapper/3.2.0/maven-wrapper-3.2.0.jar" + ) + if "%MVNW_VERBOSE%" == "true" ( + echo Couldn't find %WRAPPER_JAR%, downloading it ... + echo Downloading from: %WRAPPER_URL% + ) + + powershell -Command "&{"^ + "$webclient = new-object System.Net.WebClient;"^ + "if (-not ([string]::IsNullOrEmpty('%MVNW_USERNAME%') -and [string]::IsNullOrEmpty('%MVNW_PASSWORD%'))) {"^ + "$webclient.Credentials = new-object System.Net.NetworkCredential('%MVNW_USERNAME%', '%MVNW_PASSWORD%');"^ + "}"^ + "[Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12; $webclient.DownloadFile('%WRAPPER_URL%', '%WRAPPER_JAR%')"^ + "}" + if "%MVNW_VERBOSE%" == "true" ( + echo Finished downloading %WRAPPER_JAR% + ) +) +@REM End of extension + +@REM If specified, validate the SHA-256 sum of the Maven wrapper jar file +SET WRAPPER_SHA_256_SUM="" +FOR /F "usebackq tokens=1,2 delims==" %%A IN ("%MAVEN_PROJECTBASEDIR%\.mvn\wrapper\maven-wrapper.properties") DO ( + IF "%%A"=="wrapperSha256Sum" SET WRAPPER_SHA_256_SUM=%%B +) +IF NOT %WRAPPER_SHA_256_SUM%=="" ( + powershell -Command "&{"^ + "$hash = (Get-FileHash \"%WRAPPER_JAR%\" -Algorithm SHA256).Hash.ToLower();"^ + "If('%WRAPPER_SHA_256_SUM%' -ne $hash){"^ + " Write-Output 'Error: Failed to validate Maven wrapper SHA-256, your Maven wrapper might be compromised.';"^ + " Write-Output 'Investigate or delete %WRAPPER_JAR% to attempt a clean download.';"^ + " Write-Output 'If you updated your Maven version, you need to update the specified wrapperSha256Sum property.';"^ + " exit 1;"^ + "}"^ + "}" + if ERRORLEVEL 1 goto error +) + +@REM Provide a "standardized" way to retrieve the CLI args that will +@REM work with both Windows and non-Windows executions. +set MAVEN_CMD_LINE_ARGS=%* + +%MAVEN_JAVA_EXE% ^ + %JVM_CONFIG_MAVEN_PROPS% ^ + %MAVEN_OPTS% ^ + %MAVEN_DEBUG_OPTS% ^ + -classpath %WRAPPER_JAR% ^ + "-Dmaven.multiModuleProjectDirectory=%MAVEN_PROJECTBASEDIR%" ^ + %WRAPPER_LAUNCHER% %MAVEN_CONFIG% %* +if ERRORLEVEL 1 goto error +goto end + +:error +set ERROR_CODE=1 + +:end +@endlocal & set ERROR_CODE=%ERROR_CODE% + +if not "%MAVEN_SKIP_RC%"=="" goto skipRcPost +@REM check for post script, once with legacy .bat ending and once with .cmd ending +if exist "%USERPROFILE%\mavenrc_post.bat" call "%USERPROFILE%\mavenrc_post.bat" +if exist "%USERPROFILE%\mavenrc_post.cmd" call "%USERPROFILE%\mavenrc_post.cmd" +:skipRcPost + +@REM pause the script if MAVEN_BATCH_PAUSE is set to 'on' +if "%MAVEN_BATCH_PAUSE%"=="on" pause + +if "%MAVEN_TERMINATE_CMD%"=="on" exit %ERROR_CODE% + +cmd /C exit /B %ERROR_CODE% diff --git a/pipIrr-platform/pipIrr-web/pipIrr-web-sso/pom.xml b/pipIrr-platform/pipIrr-web/pipIrr-web-sso/pom.xml new file mode 100644 index 0000000..a9e19dc --- /dev/null +++ b/pipIrr-platform/pipIrr-web/pipIrr-web-sso/pom.xml @@ -0,0 +1,39 @@ +<?xml version="1.0" encoding="UTF-8"?> +<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" + xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd"> + <modelVersion>4.0.0</modelVersion> + + <parent> + <artifactId>pipIrr-web</artifactId> + <groupId>com.dy</groupId> + <version>1.0.0</version> + <relativePath>../pom.xml</relativePath> + </parent> + + <packaging>jar</packaging> + <artifactId>pipIrr-web-sso</artifactId> + <name>pipIrr-web-sso</name> + <description>web鍗曠偣鐧诲綍绯荤粺</description> + + <dependencies> + <!-- 缂撳瓨 --> + <dependency> + <groupId>org.springframework.boot</groupId> + <artifactId>spring-boot-starter-cache</artifactId> + <exclusions> + <!-- cache涓紩鐢ㄤ簡log4j2锛岃�屾湰绯荤粺parent鐨刾om涓紩鍏ヤ簡log4j2锛屼粠鑰岄噸澶嶅紩鍏ヤ簡锛屾墍浠ヨ繃婊ょ郴cache寮曞叆鐨刲og4j2 --> + <exclusion> + <groupId>org.springframework.boot</groupId> + <artifactId>spring-boot-starter-logging</artifactId> + </exclusion> + </exclusions> + </dependency> + + <!-- 缂撳瓨 --> + <dependency> + <groupId>com.github.ben-manes.caffeine</groupId> + <artifactId>caffeine</artifactId> + <!-- 鑷姩鍒ゆ柇浣跨敤涓巗pring boot鍏煎鐨勭増鏈� --> + </dependency> + </dependencies> +</project> \ No newline at end of file diff --git a/pipIrr-platform/pipIrr-web/pipIrr-web-sso/src/main/java/com/dy/sso/PipIrrSsoApplication.java b/pipIrr-platform/pipIrr-web/pipIrr-web-sso/src/main/java/com/dy/sso/PipIrrSsoApplication.java new file mode 100644 index 0000000..1774e26 --- /dev/null +++ b/pipIrr-platform/pipIrr-web/pipIrr-web-sso/src/main/java/com/dy/sso/PipIrrSsoApplication.java @@ -0,0 +1,31 @@ +package com.dy.sso; + +import com.dy.common.multiDataSource.EnableMultiDataSource; +import lombok.extern.slf4j.Slf4j; +import org.mybatis.spring.annotation.MapperScan; +import org.springframework.boot.SpringApplication; +import org.springframework.boot.autoconfigure.SpringBootApplication; +import org.springframework.cache.annotation.EnableCaching; +import org.springframework.context.annotation.ComponentScan; +import org.springframework.context.annotation.EnableAspectJAutoProxy; + +@SpringBootApplication +@EnableAspectJAutoProxy +@EnableMultiDataSource +@EnableCaching//寮�鍚娇鐢ㄧ紦瀛� +@ComponentScan(basePackages = {"com.dy.common", "com.dy.pipIrrGlobal", "com.dy.sso"}) +@MapperScan(basePackages={"com.dy.pipIrrGlobal.daoBa"}) +@Slf4j +public class PipIrrSsoApplication { + + public static void main(String[] args) { + SpringApplication.run(PipIrrSsoApplication.class, args); + log.info("瀹瑰櫒鍚姩鎴愬姛... "); + +// SpringCacheService springCacheService = SpringContextUtil.getBean(SpringCacheService.class); +// springCacheService.query(); + +// MyGuavaCacheService myGuavaCacheService = SpringContextUtil.getBean(MyGuavaCacheService.class); +// myGuavaCacheService.query(); + } +} diff --git a/pipIrr-platform/pipIrr-web/pipIrr-web-sso/src/main/java/com/dy/sso/busi/CacheConstants.java b/pipIrr-platform/pipIrr-web/pipIrr-web-sso/src/main/java/com/dy/sso/busi/CacheConstants.java new file mode 100644 index 0000000..b4d129a --- /dev/null +++ b/pipIrr-platform/pipIrr-web/pipIrr-web-sso/src/main/java/com/dy/sso/busi/CacheConstants.java @@ -0,0 +1,8 @@ +package com.dy.sso.busi; + +public class CacheConstants { + + public static final String cacheNames = "ssoCache" ; + + public static final String loginUserKeyPrefix = "loginUser_" ; +} diff --git a/pipIrr-platform/pipIrr-web/pipIrr-web-sso/src/main/java/com/dy/sso/busi/LoginVo.java b/pipIrr-platform/pipIrr-web/pipIrr-web-sso/src/main/java/com/dy/sso/busi/LoginVo.java new file mode 100644 index 0000000..253858b --- /dev/null +++ b/pipIrr-platform/pipIrr-web/pipIrr-web-sso/src/main/java/com/dy/sso/busi/LoginVo.java @@ -0,0 +1,32 @@ +package com.dy.sso.busi; + + +import io.swagger.v3.oas.annotations.media.Schema; +import jakarta.validation.constraints.NotEmpty; +import lombok.*; +import org.hibernate.validator.constraints.Length; + +@Data +@ToString +@NoArgsConstructor +@AllArgsConstructor +@Builder +@Schema(name = "鐢ㄦ埛鐧诲綍鍊煎璞�") +/* +妯″潡Controller绫绘柟娉曞弬鏁板紩鐢ㄤ簡璇ュ疄浣擄紙@RequestBody锛夛紝妯″潡Schemas API鏂囨。鎵嶄細鍑虹幇璇ュ疄浣撶殑API锛� +渚嬪鏈疄浣撳湪pipIrr-web-base妯″潡BaseDemoCtrl绫绘柟娉晅est(@RequestBody DemoTest req) +涓寮曠敤浜嗭紝璇ュ疄浣撴墠浼氬嚭鐜板湪璇ユā鍧楃殑API鏂囨。锛圵EB鐣岄潰锛変腑 + */ +public class LoginVo { + @Schema(description = "鎵嬫満鍙�", requiredMode = Schema.RequiredMode.REQUIRED) + @NotEmpty(message = "鎵嬫満鍙蜂笉鑳戒负绌�") //涓嶈兘涓虹┖涔熶笉鑳戒负null + //@NotNull(message = "鎵嬫満鍙蜂笉鑳戒负绌�") //涓嶈兘涓簄ull浣嗘槸鍙互涓虹┖ + @Length(message = "鎵嬫満鍙峰繀椤粄min}浣�", min = 11, max = 11) + public String phone ; + + @Schema(description = "瀵嗙爜", requiredMode = Schema.RequiredMode.REQUIRED) + @NotEmpty(message = "瀵嗙爜涓嶈兘涓虹┖") //涓嶈兘涓虹┖涔熶笉鑳戒负null + @Length(message = "瀵嗙爜蹇呴』{min}浣�", min = 6, max = 6) + public String password ; +} + diff --git a/pipIrr-platform/pipIrr-web/pipIrr-web-sso/src/main/java/com/dy/sso/busi/SsoCtrl.java b/pipIrr-platform/pipIrr-web/pipIrr-web-sso/src/main/java/com/dy/sso/busi/SsoCtrl.java new file mode 100644 index 0000000..321f2c2 --- /dev/null +++ b/pipIrr-platform/pipIrr-web/pipIrr-web-sso/src/main/java/com/dy/sso/busi/SsoCtrl.java @@ -0,0 +1,207 @@ +package com.dy.sso.busi; + +import com.dy.common.aop.SsoVo; +import com.dy.common.webUtil.BaseResponse; +import com.dy.common.webUtil.BaseResponseUtils; +import com.dy.common.webUtil.ResultCodeMsg; +import com.dy.pipIrrGlobal.pojoBa.BaUser; +import io.swagger.v3.oas.annotations.Hidden; +import io.swagger.v3.oas.annotations.Operation; +import io.swagger.v3.oas.annotations.Parameter; +import io.swagger.v3.oas.annotations.media.Content; +import io.swagger.v3.oas.annotations.media.Schema; +import io.swagger.v3.oas.annotations.responses.ApiResponse; +import io.swagger.v3.oas.annotations.responses.ApiResponses; +import io.swagger.v3.oas.annotations.tags.Tag; +import jakarta.servlet.http.HttpServletRequest; +import jakarta.validation.Valid; +import lombok.extern.slf4j.Slf4j; +import org.springframework.beans.factory.annotation.Autowired; +//import org.springframework.cache.CacheManager; +import org.springframework.http.MediaType; +import org.springframework.validation.BindingResult; +import org.springframework.web.bind.annotation.*; + +import java.util.Objects; +import java.util.UUID; + +/** + * 娉ㄨВTag 鍦ˋPI涓樉绀猴細 Tag 娉ㄨВ, 缁欐暣涓帴鍙h捣浜嗕釜鍚嶅瓧涓庢弿杩�" + * 娉ㄨВApiResponses 鍜� 娉ㄨВApiResponse 鐢ㄦ潵閰嶇疆鍝嶅簲锛� + * 娉ㄨВOperation 鐢ㄦ潵璁剧疆鎺ュ彛鍚嶇О鍜屾弿杩帮紱 + * 娉ㄨВParameter 鐢ㄦ潵璁剧疆璇锋眰鍙傛暟鐨勬弿杩般�佹槸鍚﹀繀濉拰绀轰緥銆� + */ +@Slf4j +@Tag(name = "鐢ㄦ埛鐧诲綍", description = "鍗曠偣鐧诲綍绯荤粺锛坰so锛�") +@RestController +@RequestMapping(path="sso") +@SuppressWarnings("unchecked")//java鐗堟湰瓒婇珮锛屽娉涘瀷绾︽潫瓒婁弗锛屾墍浠ラ厤缃甋uppressWarnings("unchecked") +public class SsoCtrl { + + //鍦ㄥ睘鎬т笂娉ㄨВ@Autowired鏃讹紝浼氳鍛� Field injection is not recommended锛堜笉鍐嶆帹鑽愪娇鐢ㄥ瓧娈垫敞鍏ワ級 + private SsoSv sv ; + + //@Autowired + //private CacheManager cacheManager ; + + + @Autowired + public void setSv(SsoSv sv ){ + this.sv = sv ; + } + + + /** + * 瀹㈡埛绔姹傜敤鎴风櫥褰曪紝瀹㈡埛绔彁浜son鏁版嵁 + * @param vo 鐢ㄦ埛鐧诲綍鍊煎璞� + * @return 鐧诲綍鐢ㄦ埛鍊煎璞� + */ + @Operation(summary = "鍗曠偣鐧诲綍", description = "鎻愪氦鐧诲綍鐢ㄦ埛鍊煎璞★紙json鏍煎紡锛夛紝杩涜鍗曠偣鐧诲綍") + /* + //涓嬮潰杩欎釜涓嶈捣浣滅敤锛岄�氳繃@RequestBody=鐩存帴鏄剧ずLoginVo鐨凙PI + @io.swagger.v3.oas.annotations.parameters.RequestBody( + //required = true, + description = "form鍊煎璞�", + content = {@Content(mediaType = "application/json", + schema = @Schema(implementation = LoginVo.class))} + ) + */ + @ApiResponses(value = { + @ApiResponse( + responseCode = ResultCodeMsg.RsCode.SUCCESS_CODE, + description = "杩斿洖鐧诲綍鐢ㄦ埛鍊煎璞★紙鏁版嵁鍩虹被鐨刢ontent锛�", + content = {@Content(mediaType = MediaType.APPLICATION_JSON_VALUE, + schema = @Schema(implementation = UserVo.class))} + ) + }) + @PostMapping(path = "loginJson", consumes = MediaType.APPLICATION_JSON_VALUE) + public BaseResponse<UserVo> loginJson(@Valid @RequestBody LoginVo vo, @Parameter(hidden = true) BindingResult bindingResult) { + if(bindingResult != null && bindingResult.hasErrors()){ + return BaseResponseUtils.buildFail(Objects.requireNonNull(bindingResult.getFieldError()).getDefaultMessage()); + } + + String uuid ; + BaUser userPo ; + try { + //Boolean flag = cacheManager.getCacheNames().isEmpty() ; + uuid = UUID.randomUUID().toString(); + userPo = this.sv.login(uuid, vo.phone, vo.password); + } catch (Exception e) { + log.error("鐢ㄦ埛鐧诲綍寮傚父", e); + return BaseResponseUtils.buildException(e.getMessage()) ; + } + + if(userPo != null){ + UserVo uVo = UserVoMapper.INSTANCT.po2vo(userPo); + uVo.token = uuid ; + return BaseResponseUtils.buildSuccess(uVo); + }else{ + return BaseResponseUtils.buildFail("鐧诲綍澶辫触"); + } + } + + /** + * 瀹㈡埛绔姹傜敤鎴风櫥褰曪紝瀹㈡埛绔彁浜orm琛ㄥ崟 + * @param vo 鐧诲綍鐢ㄦ埛form琛ㄥ崟瀵硅薄 + * @return 鐧诲綍鐢ㄦ埛鍊煎璞� + */ + @Operation(summary = "鍗曠偣鐧诲綍", description = "鎻愪氦鐧诲綍鐢ㄦ埛鏁版嵁锛坒orm琛ㄥ崟锛夛紝杩涜鍗曠偣鐧诲綍") + @ApiResponses(value = { + @ApiResponse( + responseCode = ResultCodeMsg.RsCode.SUCCESS_CODE, + description = "杩斿洖鐧诲綍鐢ㄦ埛鍊煎璞★紙鏁版嵁鍩虹被鐨刢ontent锛�", + content = {@Content(mediaType = MediaType.APPLICATION_JSON_VALUE, + schema = @Schema(implementation = UserVo.class))} + ) + }) + @PostMapping(path = "loginForm", consumes = MediaType.MULTIPART_FORM_DATA_VALUE) + public BaseResponse<UserVo> loginForm(@Parameter(description = "form琛ㄥ崟鏁版嵁", required = true) @Valid LoginVo vo, @Parameter(hidden = true) BindingResult bindingResult){ + if(bindingResult != null && bindingResult.hasErrors()){ + return BaseResponseUtils.buildFail(Objects.requireNonNull(bindingResult.getFieldError()).getDefaultMessage()); + } + + String uuid ; + BaUser userPo ; + try { + //Boolean flag = cacheManager.getCacheNames().isEmpty() ; + uuid = UUID.randomUUID().toString(); + userPo = this.sv.login(uuid, vo.phone, vo.password); + } catch (Exception e) { + log.error("鐢ㄦ埛鐧诲綍寮傚父", e); + return BaseResponseUtils.buildException(e.getMessage()) ; + } + + if(userPo != null){ + UserVo uVo = UserVoMapper.INSTANCT.po2vo(userPo); + uVo.token = uuid ; + return BaseResponseUtils.buildSuccess(uVo); + }else{ + return BaseResponseUtils.buildFail("鐧诲綍澶辫触"); + } + } + + /** + * 閫氳繃UUID閫�鍑虹櫥褰曪紝鍥犱负鍙傛暟鏄痷uid锛屾墍浠ユ璋冪敤蹇呴』鏄悗绔浉鍏充唬鐮佽皟鐢紝鍥犱负鍓嶇寰椾笉鍒癱ookie涓殑uuid + * @param hr HttpServletRequest + * @return 姝e父閫�鍑虹櫥褰曡繑鍥瀟rue锛屽惁鍒欒繑鍥瀎alse + */ + @Operation(summary = "鍗曠偣鐧诲嚭", description = "鎻愪氦token(鍦╤eader涓�)锛岃繘琛屽崟鐐圭櫥鍑�") + @ApiResponses(value = { + @ApiResponse( + responseCode = ResultCodeMsg.RsCode.SUCCESS_CODE, + description = "杩斿洖澶勭悊缁撴灉锛堟垚鍔焧rue锛屽け璐alse锛夛紙鏁版嵁鍩虹被鐨刢ontent锛�", + content = {@Content(mediaType = MediaType.TEXT_PLAIN_VALUE, + schema = @Schema(implementation = Boolean.class))} + ) + }) + @GetMapping(path = "logout") + public BaseResponse<Boolean> logout(@Parameter(hidden = true) HttpServletRequest hr){ + String token = hr.getHeader("token") ; + if(token != null){ + this.sv.logout(token) ; + return BaseResponseUtils.buildSuccess(true); + }else{ + return BaseResponseUtils.buildFail("鏈粠header涓緱鍒皌oken"); + } + } + + /** + * 姝ゆ柟娉曚緵瀛愭ā鍧楃郴缁熻皟鐢紝鎵�浠ヤ笉鍏紑鍦ˋPI鎺ュ彛涓� + * 鏂规硶鍔熻兘锛氬緱鍒扮櫥褰曠敤鎴穒d锛屽惁鍒欒繑鍥瀗ull + * @param token 鐧诲綍鐢ㄦ埛token + * @return 鐧诲綍鐢ㄦ埛ID + */ + @Hidden + @GetMapping(path = "loginUserId") + public Long loginUserId(String token){ + BaUser userPo = this.sv.getByUuid(token) ; + return userPo == null ? null : userPo.id ; + } + + /** + * 姝ゆ柟娉曚緵瀛愭ā鍧楃郴缁熻皟鐢紝鎵�浠ヤ笉鍏紑鍦ˋPI鎺ュ彛涓� + * 鏂规硶鍔熻兘锛氶獙璇佹槸鍚﹀凡缁忕櫥褰曪紝濡傛灉鐧诲綍浜嗭紝鍐嶉獙璇佹潈闄� + * @param token 鐧诲綍鐢ㄦ埛token + * @param power 楠岃瘉涓�涓潈闄� + * @param allPower 楠岃瘉鎵�鏈夋潈闄� + * @param anyPower 楠岃瘉浠讳綍涓�涓潈闄� + * @return SsoVo + */ + @Hidden + @GetMapping(path = "ssoCheck") + public SsoVo ssoCheck(String token, String power, String[] allPower, String[] anyPower){ + BaUser userPo = this.sv.getByUuid(token) ; + SsoVo vo = new SsoVo(); + if(userPo != null){ + vo.logined = true ; + vo.hasPower = true ; + vo.dataSourceName = userPo.getOrgTag() ; + }else{ + vo.logined = false ; + vo.hasPower = false ; + } + return vo ; + } + + +} diff --git a/pipIrr-platform/pipIrr-web/pipIrr-web-sso/src/main/java/com/dy/sso/busi/SsoSv.java b/pipIrr-platform/pipIrr-web/pipIrr-web-sso/src/main/java/com/dy/sso/busi/SsoSv.java new file mode 100644 index 0000000..249facb --- /dev/null +++ b/pipIrr-platform/pipIrr-web/pipIrr-web-sso/src/main/java/com/dy/sso/busi/SsoSv.java @@ -0,0 +1,39 @@ +package com.dy.sso.busi; + +import com.dy.pipIrrGlobal.daoBa.BaUserMapper; +import com.dy.pipIrrGlobal.pojoBa.BaUser; +import lombok.extern.slf4j.Slf4j; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.cache.annotation.CacheEvict; +import org.springframework.cache.annotation.Cacheable; +import org.springframework.stereotype.Service; + +@Slf4j +@Service +public class SsoSv { + + private BaUserMapper baUserMapper; + + @Autowired + private void setBaUserMapper(BaUserMapper baUserMapper){ + this.baUserMapper = baUserMapper ; + } + + //褰撴湭娉ㄨВ@Transactional鏃讹紝浼氳緭鍑烘棩蹇楋細SqlSession [org.apache.ibatis.session.defaults.DefaultSqlSession@46727a0c] was not registered for synchronization because synchronization is not active + //@Transactional + @Cacheable(cacheNames=CacheConstants.cacheNames, key="'" + CacheConstants.loginUserKeyPrefix + "' + #uuid", sync=true) + public BaUser login(String uuid, String phone, String password){ + return this.baUserMapper.login(phone, password) ; + } + + @CacheEvict(cacheNames=CacheConstants.cacheNames, key="'" + CacheConstants.loginUserKeyPrefix + "' + #uuid") + public void logout(String uuid){ + } + + @Cacheable(cacheNames=CacheConstants.cacheNames, key="'" + CacheConstants.loginUserKeyPrefix + "' + #uuid") + public BaUser getByUuid(String uuid){ + //姝ゆ柟娉曠洰鐨勬槸鐩存帴浠庣紦瀛樹腑璇诲彇锛屽鏋滅紦瀛樻棤姝ゅ�硷紝璇存槑鏁版嵁琚竻妤氫簡锛岃繑鍥瀗ull鍊硷紝闇�瑕侀噸鏂扮櫥褰� + return null ; + } + +} diff --git a/pipIrr-platform/pipIrr-web/pipIrr-web-sso/src/main/java/com/dy/sso/busi/UserVo.java b/pipIrr-platform/pipIrr-web/pipIrr-web-sso/src/main/java/com/dy/sso/busi/UserVo.java new file mode 100644 index 0000000..d4408db --- /dev/null +++ b/pipIrr-platform/pipIrr-web/pipIrr-web-sso/src/main/java/com/dy/sso/busi/UserVo.java @@ -0,0 +1,22 @@ +package com.dy.sso.busi; + + +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.*; + +@Data +@ToString +@NoArgsConstructor +@AllArgsConstructor +@Builder +@Schema(name = "鐧诲綍鐢ㄦ埛鍊煎璞�") +public class UserVo { + @Schema(description = "濮撳悕") + public String name ;//鐢ㄦ埛濮撳悕 + + @Schema(description = "鎵嬫満鍙�") + public String phone ;//鐢ㄦ埛鎵嬫満鍙� + + @Schema(description = "token") + public String token ;// +} diff --git a/pipIrr-platform/pipIrr-web/pipIrr-web-sso/src/main/java/com/dy/sso/busi/UserVoMapper.java b/pipIrr-platform/pipIrr-web/pipIrr-web-sso/src/main/java/com/dy/sso/busi/UserVoMapper.java new file mode 100644 index 0000000..f90c8f3 --- /dev/null +++ b/pipIrr-platform/pipIrr-web/pipIrr-web-sso/src/main/java/com/dy/sso/busi/UserVoMapper.java @@ -0,0 +1,23 @@ +package com.dy.sso.busi; + +import com.dy.pipIrrGlobal.pojoBa.BaUser; +import org.mapstruct.Mapper; +import org.mapstruct.Mapping; +import org.mapstruct.factory.Mappers; + +@Mapper +public interface UserVoMapper { + + UserVoMapper INSTANCT = Mappers.getMapper(UserVoMapper.class); + + /** + * po杞瑅o + * @param po + * @return + */ + @Mapping(target = "name", source = "name") + @Mapping(target = "phone", source = "phone") + @Mapping(target = "token", ignore=true) + UserVo po2vo(BaUser po); + +} diff --git a/pipIrr-platform/pipIrr-web/pipIrr-web-sso/src/main/java/com/dy/sso/config/CaffeineCacheConfiguration.java b/pipIrr-platform/pipIrr-web/pipIrr-web-sso/src/main/java/com/dy/sso/config/CaffeineCacheConfiguration.java new file mode 100644 index 0000000..d50a4e1 --- /dev/null +++ b/pipIrr-platform/pipIrr-web/pipIrr-web-sso/src/main/java/com/dy/sso/config/CaffeineCacheConfiguration.java @@ -0,0 +1,39 @@ +package com.dy.sso.config; + + +import com.github.benmanes.caffeine.cache.Caffeine; +import org.springframework.cache.CacheManager; +import org.springframework.cache.caffeine.CaffeineCacheManager; +import org.springframework.context.annotation.Bean; +import org.springframework.context.annotation.Configuration; +import java.util.concurrent.TimeUnit; + +@Configuration +public class CaffeineCacheConfiguration { + /* + initialCapacity=[integer]: 鍒濆鐨勭紦瀛樼┖闂村ぇ灏� + maximumSize=[long]: 缂撳瓨鐨勬渶澶ф潯鏁� + maximumWeight=[long]: 缂撳瓨鐨勬渶澶ф潈閲� + expireAfterAccess=[duration]: 鏈�鍚庝竴娆″啓鍏ユ垨璁块棶鍚庣粡杩囧浐瀹氭椂闂磋繃鏈� + expireAfterWrite=[duration]: 鏈�鍚庝竴娆″啓鍏ュ悗缁忚繃鍥哄畾鏃堕棿杩囨湡 + refreshAfterWrite=[duration]: 鍒涘缓缂撳瓨鎴栬�呮渶杩戜竴娆℃洿鏂扮紦瀛樺悗缁忚繃鍥哄畾鐨勬椂闂撮棿闅旓紝鍒锋柊缂撳瓨 + weakKeys: 鎵撳紑key鐨勫急寮曠敤 + weakValues锛氭墦寮�value鐨勫急寮曠敤 + softValues锛氭墦寮�value鐨勮蒋寮曠敤 + recordStats锛氬紑鍙戠粺璁″姛鑳� + 娉ㄦ剰锛� + expireAfterWrite鍜宔xpireAfterAccess鍚屾椂瀛樺湪鏃讹紝浠xpireAfterWrite涓哄噯銆� + maximumSize鍜宮aximumWeight涓嶅彲浠ュ悓鏃朵娇鐢� + weakValues鍜宻oftValues涓嶅彲浠ュ悓鏃朵娇鐢偡weakValues鍜宻oftValues涓嶅彲浠ュ悓鏃朵娇鐢� + */ + @Bean + public CacheManager cacheManager() { + CaffeineCacheManager cacheManager = new CaffeineCacheManager(); + cacheManager.setCaffeine(Caffeine.newBuilder() + .initialCapacity(10) + .maximumSize(10000) + .expireAfterAccess(30, TimeUnit.MINUTES)); + + return cacheManager; + } +} diff --git a/pipIrr-platform/pipIrr-web/pipIrr-web-sso/src/main/java/com/dy/sso/config/WebListenerConfiguration.java b/pipIrr-platform/pipIrr-web/pipIrr-web-sso/src/main/java/com/dy/sso/config/WebListenerConfiguration.java new file mode 100644 index 0000000..f0bfc9b --- /dev/null +++ b/pipIrr-platform/pipIrr-web/pipIrr-web-sso/src/main/java/com/dy/sso/config/WebListenerConfiguration.java @@ -0,0 +1,50 @@ +package com.dy.sso.config; + +import com.dy.common.webListener.ConfigListener; +import com.dy.sso.util.SsoListener; +import jakarta.servlet.ServletContextListener; +import org.springframework.boot.web.servlet.ServletListenerRegistrationBean; +import org.springframework.context.annotation.Bean; +import org.springframework.context.annotation.Configuration; + +@Configuration +@SuppressWarnings("unchecked")//涓嶅姞缂栬緫鏃惰鍛婏細鈥滀娇鐢ㄤ簡鏈粡妫�鏌ユ垨涓嶅畨鍏ㄧ殑鎿嶄綔銆傗�� +public class WebListenerConfiguration { + + /** + * 鍚姩椤哄簭 + */ + private static final int order_config = 1 ; + private static final int order_sso = 2 ; + + @Bean + public ConfigListener getGlConfigListener(){ + return new ConfigListener() ; + } + + /** + * 澶栭儴鎻愪緵Listener + * @param listener 澶栭儴鎻愪緵Listener + * @return 娉ㄥ唽Bean + */ + @Bean + public ServletListenerRegistrationBean<? extends ServletContextListener> regConfigListener(ConfigListener listener) { + ServletListenerRegistrationBean<ConfigListener> listenerRegistrationBean = new ServletListenerRegistrationBean<>(); + listenerRegistrationBean.setListener(listener); + listenerRegistrationBean.setOrder(order_config); + return listenerRegistrationBean; + } + + /** + * 鍐呴儴鎻愪緵listener + * @return 娉ㄥ唽Bean + */ + @Bean + public ServletListenerRegistrationBean<? extends ServletContextListener> reqSsoListener() { + ServletListenerRegistrationBean<SsoListener> listenerRegistrationBean = new ServletListenerRegistrationBean<>(); + SsoListener listener = new SsoListener(); + listenerRegistrationBean.setListener(listener); + listenerRegistrationBean.setOrder(order_sso); + return listenerRegistrationBean; + } +} diff --git a/pipIrr-platform/pipIrr-web/pipIrr-web-sso/src/main/java/com/dy/sso/util/SsoListener.java b/pipIrr-platform/pipIrr-web/pipIrr-web-sso/src/main/java/com/dy/sso/util/SsoListener.java new file mode 100644 index 0000000..9098e5b --- /dev/null +++ b/pipIrr-platform/pipIrr-web/pipIrr-web-sso/src/main/java/com/dy/sso/util/SsoListener.java @@ -0,0 +1,22 @@ +package com.dy.sso.util; + +import jakarta.servlet.ServletContext; +import jakarta.servlet.ServletContextEvent; +import jakarta.servlet.ServletContextListener; +import lombok.extern.slf4j.Slf4j; + +@Slf4j +public class SsoListener implements ServletContextListener { + + @Override + public void contextInitialized(ServletContextEvent event) { + ServletContextListener.super.contextInitialized(event); + ServletContext con = event.getServletContext(); + } + + @Override + public void contextDestroyed(ServletContextEvent event) { + ServletContextListener.super.contextDestroyed(event); + } + +} \ No newline at end of file diff --git a/pipIrr-platform/pipIrr-web/pipIrr-web-sso/src/main/resources/application.yml b/pipIrr-platform/pipIrr-web/pipIrr-web-sso/src/main/resources/application.yml new file mode 100644 index 0000000..f934893 --- /dev/null +++ b/pipIrr-platform/pipIrr-web/pipIrr-web-sso/src/main/resources/application.yml @@ -0,0 +1,18 @@ +spring: + profiles: + include: global, database + +#actutor鐨剋eb绔彛 +management: + server: + port: ${pipIrr.sso.actutorPort} +#web鏈嶅姟绔彛锛宼omcat榛樿鏄�8080 +server: + port: ${pipIrr.sso.webPort} + servlet: + context-path: /sso #web璁块棶涓婁笅鏂囪矾寰� + context-parameters: + #GenerateIdSetSuffixListener涓簲鐢紝鍙栧�艰寖鍥存槸0-99 + IdSuffix: 0 + #ConfigListener涓簲鐢� + configFileNames: config-global.xml,config-sso.xml diff --git a/pipIrr-platform/pipIrr-web/pipIrr-web-sso/src/main/resources/config/config-sso.xml b/pipIrr-platform/pipIrr-web/pipIrr-web-sso/src/main/resources/config/config-sso.xml new file mode 100644 index 0000000..5046a1a --- /dev/null +++ b/pipIrr-platform/pipIrr-web/pipIrr-web-sso/src/main/resources/config/config-sso.xml @@ -0,0 +1,5 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!DOCTYPE config> +<config> + <sso.test>鍗犱綅</sso.test> +</config> \ No newline at end of file diff --git a/pipIrr-platform/pipIrr-web/pipIrr-web-sso/src/main/resources/log4j2.yml b/pipIrr-platform/pipIrr-web/pipIrr-web-sso/src/main/resources/log4j2.yml new file mode 100644 index 0000000..5d27744 --- /dev/null +++ b/pipIrr-platform/pipIrr-web/pipIrr-web-sso/src/main/resources/log4j2.yml @@ -0,0 +1,79 @@ +Configuration: + #status锛岃繖涓敤浜庤缃甽og4j2鑷韩鍐呴儴鐨勪俊鎭緭鍑猴紝鍙互涓嶈缃紝褰撹缃垚trace鏃讹紝浣犱細鐪嬪埌log4j2鍐呴儴鍚勭璇︾粏杈撳嚭锛涘彲浠ヨ缃垚Off(鍏抽棴)鎴朎rror(鍙緭鍑洪敊璇俊鎭�) + status: Error + + Properties: # 瀹氫箟鍏ㄥ眬鍙橀噺 + Property: + #鏃ュ織鏂囦欢瀛樺偍鐨勭洰褰� + - name: log.path + value: ./logs + #鏃ュ織鏂囦欢瀛樺偍鍚嶇О + - name: project.name + value: pipIrrSso + + #瀹氫箟杈撳嚭鍣紝鍙互杈撳嚭鍒版帶鍒跺彴鍜屾枃浠�. + Appenders: + #杈撳嚭鍒版帶鍒跺彴 + Console: + #Appender鍛藉悕 + name: CONSOLE + target: SYSTEM_OUT + ThresholdFilter: + level: debug #杈撳嚭鏃ュ織绾у埆锛岃緭鍑烘棩蹇楁椂锛岄鍏堢敱Loggers.Root.level鎴朙oggers.Logger.level鍒ゆ柇鏄惁杈撳嚭锛岀劧鍚庡啀鐢辨湰level鍒ゆ柇鏄惁杈撳嚭 + onMatch: ACCEPT #onMatch=ACCEPT 澶т簬绛変簬 "level" 閰嶇疆鐨勭瓑绾у湴鏃ュ織杈撳嚭 + onMismatch: DENY #onMismatch=DENY 灏忎簬 "level" 閰嶇疆鐨勭瓑绾у湴鏃ュ織涓嶈緭鍑� + #鏃ュ織鍐呭鏍峰紡 + PatternLayout: + #%n-鎹㈣ + #%m-鏃ュ織鍐呭锛岃緭鍑轰唬鐮佷腑鎸囧畾鐨勬棩蹇椾俊鎭� + #%p-杈撳嚭浼樺厛绾э紝鍗矰EBUG,INFO,WARN,ERROR,FATAL + #%r-绋嬪簭鍚姩鍒扮幇鍦ㄧ殑姣鏁� + #%%- 杈撳嚭涓�涓�"%" 瀛楃 + #%t-褰撳墠绾跨▼鍚� + #%d-鏃ユ湡鍜屾椂闂�, 甯哥敤鐨勬牸寮忔湁%d{DATE},%d{ABSOLUTE},%d{HH:mm:ss,SSS},%d{ddMMyyyyHH:mm:ss,SSS} + #%l-鍚�%F%L%C%M + #%F-java婧愭枃浠跺悕 + #%L-java婧愮爜琛屾暟 + #%C-java绫诲悕,%C{1}杈撳嚭鏈�鍚庝竴涓厓绱� + #%M-java鏂规硶鍚� + pattern: "%d{yyyy-MM-dd HH:mm:ss,SSS}:%4p %t (%C.%M:%L) - %m%n" + # 杈撳嚭鍒版枃浠讹紝瓒呰繃10MB褰掓。 + RollingFile: + - name: ROLLING_FILE + ignoreExceptions: false + fileName: ${log.path}/${project.name}.log + filePattern: "${log.path}/$${date:yyyy-MM}/${project.name}-%d{yyyy-MM-dd}-%i.log.gz" + ThresholdFilter: + level: error #杈撳嚭鏃ュ織绾у埆锛岃緭鍑烘棩蹇楁椂锛岄鍏堢敱Loggers.Root.level鎴朙oggers.Logger.level鍒ゆ柇鏄惁杈撳嚭锛岀劧鍚庡啀鐢辨湰level鍒ゆ柇鏄惁杈撳嚭 + onMatch: ACCEPT #onMatch=ACCEPT 澶т簬绛変簬 "level" 閰嶇疆鐨勭瓑绾у湴鏃ュ織杈撳嚭 + onMismatch: DENY #onMismatch=DENY 灏忎簬 "level" 閰嶇疆鐨勭瓑绾у湴鏃ュ織涓嶈緭鍑� + #鏃ュ織鍐呭鏍峰紡 + PatternLayout: + pattern: "%d{yyyy-MM-dd HH:mm:ss,SSS}:%4p %t (%C.%M:%L) - %m%n" + Policies: + SizeBasedTriggeringPolicy: + size: "10 MB" + DefaultRolloverStrategy: + max: 1000 + + Loggers: + Root: + level: info #鏃ュ織杈撳嚭绾у埆锛屽叡鏈�8涓骇鍒紝鎸夌収浠庝綆鍒伴珮涓猴細all < trace < debug < info < warn < error < fatal < off + AppenderRef: #Root鐨勫瓙鑺傜偣锛岀敤鏉ユ寚瀹氳鏃ュ織杈撳嚭鍒板摢涓狝ppender. + - ref: CONSOLE #杈撳嚭鏃ュ織鏃讹紝棣栧厛鐢辨湰level鍒ゆ柇鏄惁杈撳嚭锛岀劧鍚庡啀鐢变笂闈㈢殑Appenders.Console.ThresholdFilter.level鍒ゆ柇鏄惁杈撳嚭 + - ref: ROLLING_FILE #杈撳嚭鏃ュ織鏃讹紝棣栧厛鐢辨湰level鍒ゆ柇鏄惁杈撳嚭锛岀劧鍚庡啀鐢变笂闈㈢殑Appenders.RollingFile.ThresholdFilter.level鍒ゆ柇鏄惁杈撳嚭 + # 涓哄寘閰嶇疆鐗规畩鐨凩og绾у埆锛屾柟渚胯皟璇曪紝 + # 涓嶅彈Loggers.Root.level闄愬埗 + Logger: + - name: com.dy.sso.busi #鏍规嵁鍖呭悕绉� 閰嶇疆 + additivity: false #鍘婚櫎閲嶅鐨刲og + level: debug #杈撳嚭鏃ュ織绾у埆 + AppenderRef: + - ref: CONSOLE #杈撳嚭鏃ュ織鏃讹紝棣栧厛鐢辨湰.level鍒ゆ柇鏄惁杈撳嚭锛岀劧鍚庡啀鐢变笂闈㈢殑Appenders.Console.ThresholdFilter.level鍒ゆ柇鏄惁杈撳嚭 + - ref: ROLLING_FILE #杈撳嚭鏃ュ織鏃讹紝棣栧厛鐢辨湰level鍒ゆ柇鏄惁杈撳嚭锛岀劧鍚庡啀鐢变笂闈㈢殑Appenders.RollingFile.ThresholdFilter.level鍒ゆ柇鏄惁杈撳嚭 + - name: com.dy.pipIrrGlobal.daoBa + additivity: false #鍘婚櫎閲嶅鐨刲og + level: debug #杈撳嚭鏃ュ織绾у埆 + AppenderRef: + - ref: CONSOLE #杈撳嚭鏃ュ織鏃讹紝棣栧厛鐢辨湰.level鍒ゆ柇鏄惁杈撳嚭锛岀劧鍚庡啀鐢变笂闈㈢殑Appenders.Console.ThresholdFilter.level鍒ゆ柇鏄惁杈撳嚭 + - ref: ROLLING_FILE #杈撳嚭鏃ュ織鏃讹紝棣栧厛鐢辨湰level鍒ゆ柇鏄惁杈撳嚭锛岀劧鍚庡啀鐢变笂闈㈢殑Appenders.RollingFile.ThresholdFilter.level鍒ゆ柇鏄惁杈撳嚭 diff --git a/pipIrr-platform/pipIrr-web/pipIrr-web-sso/src/test/java/com/dy/sso/PipIrrWebSsoApplicationTests.java b/pipIrr-platform/pipIrr-web/pipIrr-web-sso/src/test/java/com/dy/sso/PipIrrWebSsoApplicationTests.java new file mode 100644 index 0000000..b7e5f32 --- /dev/null +++ b/pipIrr-platform/pipIrr-web/pipIrr-web-sso/src/test/java/com/dy/sso/PipIrrWebSsoApplicationTests.java @@ -0,0 +1,13 @@ +package com.dy.sso; + +import org.junit.jupiter.api.Test; +import org.springframework.boot.test.context.SpringBootTest; + +@SpringBootTest +class PipIrrWebSsoApplicationTests { + + @Test + void contextLoads() { + } + +} diff --git a/pipIrr-platform/pipIrr-web/pipIrr-web-statistics/src/main/resources/application.properties b/pipIrr-platform/pipIrr-web/pipIrr-web-statistics/src/main/resources/application.properties deleted file mode 100644 index 8b13789..0000000 --- a/pipIrr-platform/pipIrr-web/pipIrr-web-statistics/src/main/resources/application.properties +++ /dev/null @@ -1 +0,0 @@ - diff --git a/pipIrr-platform/pipIrr-web/pipIrr-web-statistics/src/main/resources/application.yml b/pipIrr-platform/pipIrr-web/pipIrr-web-statistics/src/main/resources/application.yml new file mode 100644 index 0000000..71047d4 --- /dev/null +++ b/pipIrr-platform/pipIrr-web/pipIrr-web-statistics/src/main/resources/application.yml @@ -0,0 +1,18 @@ +spring: + profiles: + include: global, database + +#actutor鐨剋eb绔彛 +management: + server: + port: ${pipIrr.statistics.actutorPort} +#web鏈嶅姟绔彛锛宼omcat榛樿鏄�8080 +server: + port: ${pipIrr.statistics.webPort} + servlet: + context-path: /sso #web璁块棶涓婁笅鏂囪矾寰� + context-parameters: + #GenerateIdSetSuffixListener涓簲鐢紝鍙栧�艰寖鍥存槸0-99 + IdSuffix: 0 + #ConfigListener涓簲鐢� + configFileNames: config-global.xml,config-sso.xml diff --git a/pipIrr-platform/pipIrr-web/pipIrr-web-statistics/src/main/resources/log4j2.yml b/pipIrr-platform/pipIrr-web/pipIrr-web-statistics/src/main/resources/log4j2.yml new file mode 100644 index 0000000..2d840a9 --- /dev/null +++ b/pipIrr-platform/pipIrr-web/pipIrr-web-statistics/src/main/resources/log4j2.yml @@ -0,0 +1,79 @@ +Configuration: + #status锛岃繖涓敤浜庤缃甽og4j2鑷韩鍐呴儴鐨勪俊鎭緭鍑猴紝鍙互涓嶈缃紝褰撹缃垚trace鏃讹紝浣犱細鐪嬪埌log4j2鍐呴儴鍚勭璇︾粏杈撳嚭锛涘彲浠ヨ缃垚Off(鍏抽棴)鎴朎rror(鍙緭鍑洪敊璇俊鎭�) + status: Error + + Properties: # 瀹氫箟鍏ㄥ眬鍙橀噺 + Property: + #鏃ュ織鏂囦欢瀛樺偍鐨勭洰褰� + - name: log.path + value: ./logs + #鏃ュ織鏂囦欢瀛樺偍鍚嶇О + - name: project.name + value: pipIrrStatistics + + #瀹氫箟杈撳嚭鍣紝鍙互杈撳嚭鍒版帶鍒跺彴鍜屾枃浠�. + Appenders: + #杈撳嚭鍒版帶鍒跺彴 + Console: + #Appender鍛藉悕 + name: CONSOLE + target: SYSTEM_OUT + ThresholdFilter: + level: debug #杈撳嚭鏃ュ織绾у埆锛岃緭鍑烘棩蹇楁椂锛岄鍏堢敱Loggers.Root.level鎴朙oggers.Logger.level鍒ゆ柇鏄惁杈撳嚭锛岀劧鍚庡啀鐢辨湰level鍒ゆ柇鏄惁杈撳嚭 + onMatch: ACCEPT #onMatch=ACCEPT 澶т簬绛変簬 "level" 閰嶇疆鐨勭瓑绾у湴鏃ュ織杈撳嚭 + onMismatch: DENY #onMismatch=DENY 灏忎簬 "level" 閰嶇疆鐨勭瓑绾у湴鏃ュ織涓嶈緭鍑� + #鏃ュ織鍐呭鏍峰紡 + PatternLayout: + #%n-鎹㈣ + #%m-鏃ュ織鍐呭锛岃緭鍑轰唬鐮佷腑鎸囧畾鐨勬棩蹇椾俊鎭� + #%p-杈撳嚭浼樺厛绾э紝鍗矰EBUG,INFO,WARN,ERROR,FATAL + #%r-绋嬪簭鍚姩鍒扮幇鍦ㄧ殑姣鏁� + #%%- 杈撳嚭涓�涓�"%" 瀛楃 + #%t-褰撳墠绾跨▼鍚� + #%d-鏃ユ湡鍜屾椂闂�, 甯哥敤鐨勬牸寮忔湁%d{DATE},%d{ABSOLUTE},%d{HH:mm:ss,SSS},%d{ddMMyyyyHH:mm:ss,SSS} + #%l-鍚�%F%L%C%M + #%F-java婧愭枃浠跺悕 + #%L-java婧愮爜琛屾暟 + #%C-java绫诲悕,%C{1}杈撳嚭鏈�鍚庝竴涓厓绱� + #%M-java鏂规硶鍚� + pattern: "%d{yyyy-MM-dd HH:mm:ss,SSS}:%4p %t (%C.%M:%L) - %m%n" + # 杈撳嚭鍒版枃浠讹紝瓒呰繃10MB褰掓。 + RollingFile: + - name: ROLLING_FILE + ignoreExceptions: false + fileName: ${log.path}/${project.name}.log + filePattern: "${log.path}/$${date:yyyy-MM}/${project.name}-%d{yyyy-MM-dd}-%i.log.gz" + ThresholdFilter: + level: error #杈撳嚭鏃ュ織绾у埆锛岃緭鍑烘棩蹇楁椂锛岄鍏堢敱Loggers.Root.level鎴朙oggers.Logger.level鍒ゆ柇鏄惁杈撳嚭锛岀劧鍚庡啀鐢辨湰level鍒ゆ柇鏄惁杈撳嚭 + onMatch: ACCEPT #onMatch=ACCEPT 澶т簬绛変簬 "level" 閰嶇疆鐨勭瓑绾у湴鏃ュ織杈撳嚭 + onMismatch: DENY #onMismatch=DENY 灏忎簬 "level" 閰嶇疆鐨勭瓑绾у湴鏃ュ織涓嶈緭鍑� + #鏃ュ織鍐呭鏍峰紡 + PatternLayout: + pattern: "%d{yyyy-MM-dd HH:mm:ss,SSS}:%4p %t (%C.%M:%L) - %m%n" + Policies: + SizeBasedTriggeringPolicy: + size: "10 MB" + DefaultRolloverStrategy: + max: 1000 + + Loggers: + Root: + level: info #鏃ュ織杈撳嚭绾у埆锛屽叡鏈�8涓骇鍒紝鎸夌収浠庝綆鍒伴珮涓猴細all < trace < debug < info < warn < error < fatal < off + AppenderRef: #Root鐨勫瓙鑺傜偣锛岀敤鏉ユ寚瀹氳鏃ュ織杈撳嚭鍒板摢涓狝ppender. + - ref: CONSOLE #杈撳嚭鏃ュ織鏃讹紝棣栧厛鐢辨湰level鍒ゆ柇鏄惁杈撳嚭锛岀劧鍚庡啀鐢变笂闈㈢殑Appenders.Console.ThresholdFilter.level鍒ゆ柇鏄惁杈撳嚭 + - ref: ROLLING_FILE #杈撳嚭鏃ュ織鏃讹紝棣栧厛鐢辨湰level鍒ゆ柇鏄惁杈撳嚭锛岀劧鍚庡啀鐢变笂闈㈢殑Appenders.RollingFile.ThresholdFilter.level鍒ゆ柇鏄惁杈撳嚭 + # 涓哄寘閰嶇疆鐗规畩鐨凩og绾у埆锛屾柟渚胯皟璇曪紝 + # 涓嶅彈Loggers.Root.level闄愬埗 + Logger: + - name: com.dy.sso.busi #鏍规嵁鍖呭悕绉� 閰嶇疆 + additivity: false #鍘婚櫎閲嶅鐨刲og + level: debug #杈撳嚭鏃ュ織绾у埆 + AppenderRef: + - ref: CONSOLE #杈撳嚭鏃ュ織鏃讹紝棣栧厛鐢辨湰.level鍒ゆ柇鏄惁杈撳嚭锛岀劧鍚庡啀鐢变笂闈㈢殑Appenders.Console.ThresholdFilter.level鍒ゆ柇鏄惁杈撳嚭 + - ref: ROLLING_FILE #杈撳嚭鏃ュ織鏃讹紝棣栧厛鐢辨湰level鍒ゆ柇鏄惁杈撳嚭锛岀劧鍚庡啀鐢变笂闈㈢殑Appenders.RollingFile.ThresholdFilter.level鍒ゆ柇鏄惁杈撳嚭 + - name: com.dy.pipIrrGlobal.daoBa + additivity: false #鍘婚櫎閲嶅鐨刲og + level: debug #杈撳嚭鏃ュ織绾у埆 + AppenderRef: + - ref: CONSOLE #杈撳嚭鏃ュ織鏃讹紝棣栧厛鐢辨湰.level鍒ゆ柇鏄惁杈撳嚭锛岀劧鍚庡啀鐢变笂闈㈢殑Appenders.Console.ThresholdFilter.level鍒ゆ柇鏄惁杈撳嚭 + - ref: ROLLING_FILE #杈撳嚭鏃ュ織鏃讹紝棣栧厛鐢辨湰level鍒ゆ柇鏄惁杈撳嚭锛岀劧鍚庡啀鐢变笂闈㈢殑Appenders.RollingFile.ThresholdFilter.level鍒ゆ柇鏄惁杈撳嚭 diff --git a/pipIrr-platform/pipIrr-web/pipIrr-web.iml b/pipIrr-platform/pipIrr-web/pipIrr-web.iml index 7b1573f..86d6a00 100644 --- a/pipIrr-platform/pipIrr-web/pipIrr-web.iml +++ b/pipIrr-platform/pipIrr-web/pipIrr-web.iml @@ -81,7 +81,7 @@ <orderEntry type="library" name="Maven: io.swagger.core.v3:swagger-models:2.2.9" level="project" /> <orderEntry type="library" name="Maven: org.springframework.security:spring-security-core:6.1.2" level="project" /> <orderEntry type="library" name="Maven: org.springframework.security:spring-security-crypto:6.1.2" level="project" /> - <orderEntry type="library" name="Maven: mysql:mysql-connector-java:5.1.48" level="project" /> + <orderEntry type="library" name="Maven: com.mysql:mysql-connector-j:8.0.33" level="project" /> <orderEntry type="library" name="Maven: com.alibaba:druid-spring-boot-starter:1.2.20" level="project" /> <orderEntry type="library" name="Maven: com.alibaba:druid:1.2.20" level="project" /> <orderEntry type="library" name="Maven: org.slf4j:slf4j-api:2.0.7" level="project" /> diff --git a/pipIrr-platform/pipIrr-web/pom.xml b/pipIrr-platform/pipIrr-web/pom.xml index 10b9f31..865fb08 100644 --- a/pipIrr-platform/pipIrr-web/pom.xml +++ b/pipIrr-platform/pipIrr-web/pom.xml @@ -19,6 +19,7 @@ <modules> <module>pipIrr-web-demo</module> + <module>pipIrr-web-sso</module> <module>pipIrr-web-base</module> <module>pipIrr-web-remote</module> <module>pipIrr-web-statistics</module> @@ -106,6 +107,7 @@ <dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> + <version>8.0.33</version> </dependency> <!--druid-spring-boot杩炴帴姹�--> <dependency> -- Gitblit v1.8.0