本文先容如安在Spring Boot中,利用Https提供处事,并将Http请求自动重定向到Https。
Https证书
巧妇难为无米之炊,开始的开始,软件开发,要先取得Https证书。你可以向证书机构申请证书,也可以本身建造根证书。假如你对付Https的道理和证书建造还不清楚,可以看一下Https道理先容和廉价Https证书。
建设Web设置类
在代码中建设一个利用了Configuration注解的类,劳务派遣管理系统,就像下面这段代码一样:
@Configuration
public class WebConfig {
//Bean 界说...
}
设置Https
在设置类中添加EmbeddedServletContainerCustomizer Bean,并在个中设置Https证书和端标语。
@Bean
public EmbeddedServletContainerCustomizer containerCustomizer() {
return new EmbeddedServletContainerCustomizer() {
@Override
public void customize(ConfigurableEmbeddedServletContainer container) {
Ssl ssl = new Ssl();
//Server.jks中包括处事器私钥和证书
ssl.setKeyStore("server.jks");
ssl.setKeyStorePassword("123456");
container.setSsl(ssl);
container.setPort(8443);
}
};
}
设置Http使其自动重定向到Https
Embedded默认只有一个Connector,要在提供Https处事的同时支持Http,需要添加一个Connector。在设置类中添加如下设置:
@Bean
public EmbeddedServletContainerFactory servletContainerFactory() {
TomcatEmbeddedServletContainerFactory factory =
new TomcatEmbeddedServletContainerFactory() {
@Override
protected void postProcessContext(Context context) {
//SecurityConstraint必需存在,可以通过其为差异的URL配置差异的重定向计策。
SecurityConstraint securityConstraint = new SecurityConstraint();
securityConstraint.setUserConstraint("CONFIDENTIAL");
SecurityCollection collection = new SecurityCollection();
collection.addPattern("/*");
securityConstraint.addCollection(collection);
context.addConstraint(securityConstraint);
}
};
factory.addAdditionalTomcatConnectors(createHttpConnector());
return factory;
}
private Connector createHttpConnector() {
Connector connector = new Connector("org.apache.coyote.http11.Http11NioProtocol");
connector.setScheme("http");
connector.setSecure(false);
connector.setPort(8080);
connector.setRedirectPort(8443);
return connector;
},劳务派遣管理系统