本文先容如安在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; },劳务派遣管理系统