From f7b8c67039700d6ffe99db92be77162f2966e9d4 Mon Sep 17 00:00:00 2001 From: zer0Black <694429613@qq.com> Date: Sat, 9 Jul 2022 17:38:21 +0800 Subject: [PATCH 1/2] =?UTF-8?q?=E5=8D=95=E7=8B=AC=E5=90=AF=E5=8A=A8http?= =?UTF-8?q?=E5=92=8Chttps?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../jero/config/init/TomcatFactoryConfig.java | 76 ------------------ .../config/TomcatSslConnectorProperties.java | 46 +++++++++++ .../jero/config/TomcatWebConfiguration.java | 28 +++++++ .../src/main/resources/application-dev.yml | 15 ++-- .../src/main/resources/bxxt.hzwlsoft.com.jks | Bin 6166 -> 0 bytes .../src/main/resources/filename.jks | Bin 2547 -> 0 bytes .../src/main/resources/grp.jks | Bin 0 -> 2561 bytes 7 files changed, 83 insertions(+), 82 deletions(-) delete mode 100644 jero-boot/jero-boot-module-system/src/main/java/com/jero/config/init/TomcatFactoryConfig.java create mode 100644 jero-boot/jero-boot-single-startup/src/main/java/com/jero/config/TomcatSslConnectorProperties.java create mode 100644 jero-boot/jero-boot-single-startup/src/main/java/com/jero/config/TomcatWebConfiguration.java delete mode 100644 jero-boot/jero-boot-single-startup/src/main/resources/bxxt.hzwlsoft.com.jks delete mode 100644 jero-boot/jero-boot-single-startup/src/main/resources/filename.jks create mode 100644 jero-boot/jero-boot-single-startup/src/main/resources/grp.jks diff --git a/jero-boot/jero-boot-module-system/src/main/java/com/jero/config/init/TomcatFactoryConfig.java b/jero-boot/jero-boot-module-system/src/main/java/com/jero/config/init/TomcatFactoryConfig.java deleted file mode 100644 index f6e81ff7c..000000000 --- a/jero-boot/jero-boot-module-system/src/main/java/com/jero/config/init/TomcatFactoryConfig.java +++ /dev/null @@ -1,76 +0,0 @@ -package com.jero.config.init; - -import org.apache.catalina.Context; -import org.apache.catalina.connector.Connector; -import org.apache.coyote.http11.Http11NioProtocol; -import org.apache.tomcat.util.descriptor.web.SecurityCollection; -import org.apache.tomcat.util.descriptor.web.SecurityConstraint; -import org.apache.tomcat.util.scan.StandardJarScanner; -import org.springframework.beans.factory.annotation.Value; -import org.springframework.boot.web.embedded.tomcat.TomcatServletWebServerFactory; -import org.springframework.context.annotation.Bean; -import org.springframework.context.annotation.Configuration; - -/** - * @Description: TomcatFactoryConfig - * @author: scott - * @date: 2021年01月25日 11:40 - */ -@Configuration -public class TomcatFactoryConfig { - - /** - * tomcat-embed-jasper引用后提示jar找不到的问题 - */ - @Bean - public TomcatServletWebServerFactory tomcatFactory() { - TomcatServletWebServerFactory factory = new TomcatServletWebServerFactory() { - @Override - protected void postProcessContext(Context context) { - ((StandardJarScanner) context.getJarScanner()).setScanManifest(false); - } - }; - factory.addConnectorCustomizers(connector -> { - connector.setProperty("relaxedPathChars", "[]{}"); - connector.setProperty("relaxedQueryChars", "[]{}"); - }); - return factory; - } - - //TODO 配置https证书 部署服务器的时候解开。 - /* @Value("${server.port}") - private String serverPortHttp; - @Value("${server.port-https}") - private String serverPortHttps; - @Bean - public TomcatServletWebServerFactory tomcatFactory() { - TomcatServletWebServerFactory factory = new TomcatServletWebServerFactory() { - @Override - protected void postProcessContext(Context context) { - ((StandardJarScanner) context.getJarScanner()).setScanManifest(false); - - SecurityConstraint securityConstraint = new SecurityConstraint(); - securityConstraint.setUserConstraint("CONFIDENTIAL"); - SecurityCollection securityCollection = new SecurityCollection(); - securityCollection.addPattern("/*"); - securityConstraint.addCollection(securityCollection); - context.addConstraint(securityConstraint); - } - }; - factory.addConnectorCustomizers(connector -> { - connector.setProperty("relaxedPathChars", "[]{}"); - connector.setProperty("relaxedQueryChars", "[]{}"); - }); - factory.addAdditionalTomcatConnectors(redirectConnector()); - return factory; - } - - private Connector redirectConnector() { - Connector connector = new Connector(Http11NioProtocol.class.getName()); - connector.setScheme("http"); - connector.setPort(Integer.parseInt(serverPortHttp)); - connector.setSecure(false); - connector.setRedirectPort(Integer.parseInt(serverPortHttps)); - return connector; - }*/ -} diff --git a/jero-boot/jero-boot-single-startup/src/main/java/com/jero/config/TomcatSslConnectorProperties.java b/jero-boot/jero-boot-single-startup/src/main/java/com/jero/config/TomcatSslConnectorProperties.java new file mode 100644 index 000000000..204e17a35 --- /dev/null +++ b/jero-boot/jero-boot-single-startup/src/main/java/com/jero/config/TomcatSslConnectorProperties.java @@ -0,0 +1,46 @@ +package com.jero.config; + +import lombok.Data; +import org.apache.catalina.connector.Connector; +import org.springframework.beans.factory.annotation.Value; +import org.springframework.boot.context.properties.ConfigurationProperties; +import org.springframework.context.annotation.PropertySource; + +import java.io.File; + +//@PropertySource("classpath:config/tomcat.https.properties") +@ConfigurationProperties(prefix = "jero.tomcat.https") +@Data +public class TomcatSslConnectorProperties { + + private Integer port; + private Boolean ssl = true; + private Boolean secure = true; + private String scheme = "https"; + private File keystore; + private String keystorePassword; + private String keystoreType; + //这里为了节省空间,省略了getters和setters,读者在实践的时候要加上 + + public void configureConnector(Connector connector) { + if (port != null) { + connector.setPort(port); + } + if (secure != null) { + connector.setSecure(secure); + } + if (scheme != null) { + connector.setScheme(scheme); + } + if (ssl != null) { + connector.setProperty("SSLEnabled", ssl.toString()); + } + + if (keystore != null && keystore.exists()) { + connector.setProperty("keystoreFile", keystore.getAbsolutePath()); + connector.setProperty("keystorePass", keystorePassword); + connector.setProperty("keystoreType", keystoreType); + } + } + +} diff --git a/jero-boot/jero-boot-single-startup/src/main/java/com/jero/config/TomcatWebConfiguration.java b/jero-boot/jero-boot-single-startup/src/main/java/com/jero/config/TomcatWebConfiguration.java new file mode 100644 index 000000000..2a6e8f839 --- /dev/null +++ b/jero-boot/jero-boot-single-startup/src/main/java/com/jero/config/TomcatWebConfiguration.java @@ -0,0 +1,28 @@ +package com.jero.config; + +import org.apache.catalina.connector.Connector; +import org.springframework.boot.context.properties.EnableConfigurationProperties; +import org.springframework.boot.web.embedded.tomcat.TomcatServletWebServerFactory; +import org.springframework.context.annotation.Bean; +import org.springframework.context.annotation.Configuration; +import org.springframework.context.annotation.PropertySource; +import org.springframework.web.servlet.config.annotation.WebMvcConfigurerAdapter; + +@Configuration +@EnableConfigurationProperties(TomcatSslConnectorProperties.class) +public class TomcatWebConfiguration extends WebMvcConfigurerAdapter { + + @Bean + public TomcatServletWebServerFactory servletContainer(TomcatSslConnectorProperties properties) { + TomcatServletWebServerFactory factory = new TomcatServletWebServerFactory(); + factory.addAdditionalTomcatConnectors(createSslConnector(properties)); + return factory; + } + + private Connector createSslConnector(TomcatSslConnectorProperties properties) { + Connector connector = new Connector(); + properties.configureConnector(connector); + return connector; + } + +} diff --git a/jero-boot/jero-boot-single-startup/src/main/resources/application-dev.yml b/jero-boot/jero-boot-single-startup/src/main/resources/application-dev.yml index 61a634c68..73617b813 100644 --- a/jero-boot/jero-boot-single-startup/src/main/resources/application-dev.yml +++ b/jero-boot/jero-boot-single-startup/src/main/resources/application-dev.yml @@ -12,12 +12,6 @@ server: enabled: true min-response-size: 1024 mime-types: application/javascript,application/json,application/xml,text/html,text/xml,text/plain,text/css,image/* -##配置https证书 部署服务器的时候解开。 -# port-https: 8089 #自定义https端口 -# ssl: -# key-store: classpath:bxxt.hzwlsoft.com.jks -# key-store-password: w933m5y1kz0xj8w -# key-store-type: JKS management: endpoints: web: @@ -209,6 +203,15 @@ jero : exportPdfTempPath: D://opt//exportPdfTemp/ #仿宋体字体文件路径 设置 simfangFontFilePath: D://opt//simfangFontFilePath//simfang.ttf + tomcat: + https: + port: 8089 + secure: true + scheme: https + ssl: true + keystore: classpath:grp.jks + keystorePassword: 501937 + keystoreType: JKS shiro: excludeUrls: /test/jeroDemo/demo3,/test/jeroDemo/redisDemo/**,/category/**,/visual/**,/map/**,/jmreport/bigscreen2/** #阿里云oss存储配置 diff --git a/jero-boot/jero-boot-single-startup/src/main/resources/bxxt.hzwlsoft.com.jks b/jero-boot/jero-boot-single-startup/src/main/resources/bxxt.hzwlsoft.com.jks deleted file mode 100644 index 38bbfad141812c52e08a0b72ec1b7dfb67f8e34b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 6166 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 W>T$`E59+*tz!fNNl)4$J;Qv2YOj!2- diff --git a/jero-boot/jero-boot-single-startup/src/main/resources/filename.jks b/jero-boot/jero-boot-single-startup/src/main/resources/filename.jks deleted file mode 100644 index 2f9db442b18a5bf985dd336264c464f1445e2dad..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2547 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 Date: Sat, 9 Jul 2022 18:16:26 +0800 Subject: [PATCH 2/2] =?UTF-8?q?=E8=A7=A3=E5=86=B3=E6=89=93=E5=8C=85?= =?UTF-8?q?=E5=90=8E=E6=89=BE=E4=B8=8D=E5=88=B0jks=E6=96=87=E4=BB=B6?= =?UTF-8?q?=E7=9A=84=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../config/TomcatSslConnectorProperties.java | 25 ++++++++++++++++--- .../src/main/resources/application-dev.yml | 2 +- 2 files changed, 23 insertions(+), 4 deletions(-) diff --git a/jero-boot/jero-boot-single-startup/src/main/java/com/jero/config/TomcatSslConnectorProperties.java b/jero-boot/jero-boot-single-startup/src/main/java/com/jero/config/TomcatSslConnectorProperties.java index 204e17a35..13658cad2 100644 --- a/jero-boot/jero-boot-single-startup/src/main/java/com/jero/config/TomcatSslConnectorProperties.java +++ b/jero-boot/jero-boot-single-startup/src/main/java/com/jero/config/TomcatSslConnectorProperties.java @@ -1,23 +1,30 @@ package com.jero.config; +import com.jero.modules.project.service.impl.ProjectLawsInventoryEOServiceImpl; import lombok.Data; import org.apache.catalina.connector.Connector; +import org.apache.commons.io.FileUtils; import org.springframework.beans.factory.annotation.Value; import org.springframework.boot.context.properties.ConfigurationProperties; import org.springframework.context.annotation.PropertySource; import java.io.File; +import java.io.IOException; +import java.io.InputStream; //@PropertySource("classpath:config/tomcat.https.properties") @ConfigurationProperties(prefix = "jero.tomcat.https") @Data public class TomcatSslConnectorProperties { + @Value("${jero.path.upload}") + private String tempStoreJks; + private Integer port; private Boolean ssl = true; private Boolean secure = true; private String scheme = "https"; - private File keystore; + private String keystore; private String keystorePassword; private String keystoreType; //这里为了节省空间,省略了getters和setters,读者在实践的时候要加上 @@ -36,8 +43,20 @@ public class TomcatSslConnectorProperties { connector.setProperty("SSLEnabled", ssl.toString()); } - if (keystore != null && keystore.exists()) { - connector.setProperty("keystoreFile", keystore.getAbsolutePath()); + InputStream inputStream = ProjectLawsInventoryEOServiceImpl.class.getClassLoader().getResourceAsStream(keystore); + + String keystorePath = tempStoreJks + File.separator + keystore; + File keystoreFile = new File(keystorePath); + if (!keystoreFile.exists()){ + try { + FileUtils.copyInputStreamToFile(inputStream, keystoreFile); + } catch (IOException e) { + e.printStackTrace(); + } + } + + if (keystoreFile != null && keystoreFile.exists()) { + connector.setProperty("keystoreFile", keystorePath); connector.setProperty("keystorePass", keystorePassword); connector.setProperty("keystoreType", keystoreType); } diff --git a/jero-boot/jero-boot-single-startup/src/main/resources/application-dev.yml b/jero-boot/jero-boot-single-startup/src/main/resources/application-dev.yml index 73617b813..05c434846 100644 --- a/jero-boot/jero-boot-single-startup/src/main/resources/application-dev.yml +++ b/jero-boot/jero-boot-single-startup/src/main/resources/application-dev.yml @@ -209,7 +209,7 @@ jero : secure: true scheme: https ssl: true - keystore: classpath:grp.jks + keystore: grp.jks keystorePassword: 501937 keystoreType: JKS shiro: