Skip to content

Commit

Permalink
SpringBoot开发Web项目并且添加HTTPS支持案例
Browse files Browse the repository at this point in the history
  • Loading branch information
lenve committed Dec 21, 2016
1 parent 3fddd8a commit 490edeb
Show file tree
Hide file tree
Showing 3 changed files with 60 additions and 49 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@
public class CustomServletContainer implements EmbeddedServletContainerCustomizer {
@Override
public void customize(ConfigurableEmbeddedServletContainer container) {
container.setPort(8080);
container.setPort(8443);
container.addErrorPages(new ErrorPage(HttpStatus.NOT_FOUND,"/404.html"));
container.setSessionTimeout(10, TimeUnit.MINUTES);
}
Expand Down
Original file line number Diff line number Diff line change
@@ -1,61 +1,71 @@
package org.sang;

import org.apache.catalina.Context;
import org.apache.catalina.connector.Connector;
import org.apache.tomcat.util.descriptor.web.SecurityCollection;
import org.apache.tomcat.util.descriptor.web.SecurityConstraint;
import org.sang.bean.Person;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.boot.context.embedded.EmbeddedServletContainerFactory;
import org.springframework.boot.context.embedded.tomcat.TomcatEmbeddedServletContainerFactory;
import org.springframework.context.annotation.Bean;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.RequestMapping;

import java.util.ArrayList;
import java.util.List;

@Controller
@SpringBootApplication
public class Test20Thymeleaf1Application {

public static void main(String[] args) {
SpringApplication.run(Test20Thymeleaf1Application.class, args);
}
public static void main(String[] args) {
SpringApplication.run(Test20Thymeleaf1Application.class, args);
}

@RequestMapping("/")
public String index(Model model) {
Person single = new Person("aa", 11);
List<Person> people = new ArrayList<>();
Person p1 = new Person("zhangsan", 11);
Person p2 = new Person("lisi", 22);
Person p3 = new Person("wangwu", 33);
people.add(p1);
people.add(p2);
people.add(p3);
model.addAttribute("singlePerson", single);
model.addAttribute("people", people);
return "index";
}

@Bean
public EmbeddedServletContainerFactory servletContainer() {
TomcatEmbeddedServletContainerFactory tomcat = new TomcatEmbeddedServletContainerFactory() {
@Override
protected void postProcessContext(Context context) {
SecurityConstraint constraint = new SecurityConstraint();
constraint.setUserConstraint("CONFIDENTIAL");
SecurityCollection collection = new SecurityCollection();
collection.addPattern("/*");
constraint.addCollection(collection);
context.addConstraint(constraint);
}
};
tomcat.addAdditionalTomcatConnectors(httpConnector());
return tomcat;
}

@RequestMapping("/")
public String index(Model model) {
Person single = new Person("aa", 11);
List<Person> people = new ArrayList<>();
Person p1 = new Person("zhangsan", 11);
Person p2 = new Person("lisi", 22);
Person p3 = new Person("wangwu", 33);
people.add(p1);
people.add(p2);
people.add(p3);
model.addAttribute("singlePerson", single);
model.addAttribute("people", people);
return "index";
}
// @Bean
// public EmbeddedServletContainerFactory servletContainer(){
// TomcatEmbeddedServletContainerFactory tomcat = new TomcatEmbeddedServletContainerFactory(){
// @Override

This comment has been minimized.

Copy link
@pengzhetech

pengzhetech Oct 22, 2017

...

// protected void postProcessContext(Context context) {
// SecurityConstraint constraint = new SecurityConstraint();

This comment has been minimized.

Copy link
@pengzhetech

pengzhetech Oct 22, 2017

..

// constraint.setUserConstraint("CONFIDENTIAL");
// SecurityCollection collection = new SecurityCollection();
// collection.addPattern("/*");
// constraint.addCollection(collection);
// context.addConstraint(constraint);
// }
// };
// tomcat.addAdditionalTomcatConnectors(httpConnector());
// return tomcat;
// }
// @Bean
// public Connector httpConnector(){
// Connector connector = new Connector("org.apache.coyote.http11.Http11NioProtocol");
// connector.setScheme("http");
// //Connector监听的http的端口号
// connector.setPort(8081);
// connector.setSecure(false);
// //监听到http的端口号后转向到的https的端口号
// connector.setRedirectPort(8080);
// return connector;
// }
@Bean
public Connector httpConnector() {
Connector connector = new Connector("org.apache.coyote.http11.Http11NioProtocol");
connector.setScheme("http");
//Connector监听的http的端口号
connector.setPort(8080);
connector.setSecure(false);
//监听到http的端口号后转向到的https的端口号
connector.setRedirectPort(8443);
return connector;
}
}
9 changes: 5 additions & 4 deletions Test20-Thymeleaf1/src/main/resources/application.properties
Original file line number Diff line number Diff line change
Expand Up @@ -4,8 +4,9 @@
#
#server.tomcat.uri-encoding=UTF-8#配置Tomcat编码,默认为UTF-8
#server.tomcat.compression=on#Tomcat是否开启压缩,默认为关闭
#-storetype 选项指定密钥仓库类型
#keytool -genkey -alias tomcat -storetype PKCS12 -keyalg RSA -keysize 2048 -keystore keystore.p12 -validity 3650
#server.ssl.key-store=keystore.p12
#server.ssl.key-store-password=111111
#server.ssl.keyStoreType=PKCS12
#server.ssl.keyAlias:tomcat
server.ssl.key-store=keystore.p12
server.ssl.key-store-password=111111
server.ssl.keyStoreType=PKCS12
server.ssl.keyAlias:tomcat

0 comments on commit 490edeb

Please sign in to comment.