From aa7daafde90b6c6ca296531dae70c6b776e8f90f Mon Sep 17 00:00:00 2001 From: shimingxy Date: Thu, 27 Feb 2020 10:59:32 +0800 Subject: [PATCH] JKS update --- .../src/main/resources/application.properties | 2 +- .../config/applicationConfig.properties | 24 +++++++++--------- .../main/resources/config/clientKeystore.jks | Bin 2176 -> 0 bytes .../main/resources/config/connsecKeystore.jks | Bin 2154 -> 0 bytes .../resources/config/samlClientKeystore.jks | Bin 0 -> 2275 bytes .../resources/config/samlServerKeystore.jks | Bin 0 -> 2253 bytes .../src/main/resources/application.properties | 2 +- .../config/applicationSaml.properties | 24 +++++++++--------- .../main/resources/config/clientKeystore.jks | Bin 2176 -> 0 bytes .../main/resources/config/connsecKeystore.jks | Bin 2154 -> 0 bytes .../resources/config/samlClientKeystore.jks | Bin 0 -> 2275 bytes .../resources/config/samlServerKeystore.jks | Bin 0 -> 2253 bytes 12 files changed, 26 insertions(+), 26 deletions(-) delete mode 100644 maxkey-web-manage/src/main/resources/config/clientKeystore.jks delete mode 100644 maxkey-web-manage/src/main/resources/config/connsecKeystore.jks create mode 100644 maxkey-web-manage/src/main/resources/config/samlClientKeystore.jks create mode 100644 maxkey-web-manage/src/main/resources/config/samlServerKeystore.jks delete mode 100644 maxkey-web-maxkey/src/main/resources/config/clientKeystore.jks delete mode 100644 maxkey-web-maxkey/src/main/resources/config/connsecKeystore.jks create mode 100644 maxkey-web-maxkey/src/main/resources/config/samlClientKeystore.jks create mode 100644 maxkey-web-maxkey/src/main/resources/config/samlServerKeystore.jks diff --git a/maxkey-web-manage/src/main/resources/application.properties b/maxkey-web-manage/src/main/resources/application.properties index fbcc41b8..8f6564dc 100644 --- a/maxkey-web-manage/src/main/resources/application.properties +++ b/maxkey-web-manage/src/main/resources/application.properties @@ -6,7 +6,7 @@ server.port=9521 server.servlet.context-path=/maxkey-mgt application.name=MaxKey-Mgt -application.formatted-version=v1.2 GA +application.formatted-version=(v1.2 GA) #for freemarker spring.freemarker.template-loader-path=classpath:/templates/views diff --git a/maxkey-web-manage/src/main/resources/config/applicationConfig.properties b/maxkey-web-manage/src/main/resources/config/applicationConfig.properties index 234dbce2..504995db 100644 --- a/maxkey-web-manage/src/main/resources/config/applicationConfig.properties +++ b/maxkey-web-manage/src/main/resources/config/applicationConfig.properties @@ -72,21 +72,21 @@ config.saml.v20.replay.cache.life.in.millis=14400000 config.saml.v20.issue.instant.check.clock.skew.in.seconds=90 config.saml.v20.issue.instant.check.validity.time.in.seconds=300 - #saml idp keystore -config.saml.v20.idp.keystore.password=connsec -config.saml.v20.idp.keystore.private.key.password=connsec -config.saml.v20.idp.keystore=classpath\:config/connsecKeystore.jks -config.saml.v20.idp.issuing.entity.id=connsec.com -config.saml.v20.idp.issuer=http://connsec.com - -config.saml.v20.idp.receiver.endpoint=http://sso.maxkey.org/ +config.saml.v20.idp.keystore.password=maxkey +config.saml.v20.idp.keystore.private.key.password=maxkey +config.saml.v20.idp.keystore=classpath\:config/samlServerKeystore.jks +#keystore id for sec +config.saml.v20.idp.issuing.entity.id=maxkey.org +config.saml.v20.idp.issuer=https://sso.maxkey.org/maxkey/saml + +config.saml.v20.idp.receiver.endpoint=https\://sso.maxkey.org/ #saml sp keystore -config.saml.v20.sp.keystore.password=connsec -config.saml.v20.sp.keystore.private.key.password=connsec -config.saml.v20.sp.keystore=classpath\:config/clientKeystore.jks -config.saml.v20.sp.issuing.entity.id=client.connsec.com +config.saml.v20.sp.keystore.password=maxkey +config.saml.v20.sp.keystore.private.key.password=maxkey +config.saml.v20.sp.keystore=classpath\:config/samlClientKeystore.jks +config.saml.v20.sp.issuing.entity.id=client.maxkey.org ############################################################################ config.oidc.metadata.issuer=http://sso.maxkey.org diff --git a/maxkey-web-manage/src/main/resources/config/clientKeystore.jks b/maxkey-web-manage/src/main/resources/config/clientKeystore.jks deleted file mode 100644 index 45d6bf0d92bf18e8b51ad95d76b04dd6be7e7ec6..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2176 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