欢迎访问昆山宝鼎软件有限公司网站! 设为首页 | 网站地图 | XML | RSS订阅 | 宝鼎邮箱 | 后台管理


新闻资讯

MENU

软件开发知识

使用Http 昆山软件定制开发 s提供服务

点击: 次  来源:宝鼎软件 时间:2017-05-31

原文出处: 措施员赵鑫

本文先容如安在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;
}
软件开发