【问题标题】:Spring Boot Enable SSL for private pagesSpring Boot 为私有页面启用 SSL
【发布时间】:2015-09-10 11:50:59
【问题描述】:

在我的 Spring Boot Web 应用程序中,我有一些公共页面和一些管理页面。管理页面由 spring security 保护。 我需要为登录页面启用 SSL/HTTPS 并发布登录管理页面。 公共页面不需要 SSL。

我在 application.properties 中启用了 ssl,如下所示

server.port = 8444
server.ssl.key-store = classpath:keystore.jks
server.ssl.key-store-password = secret
server.ssl.key-password = another-secret

并在配置类中添加了另一个连接器

@Bean
public EmbeddedServletContainerFactory servletContainer() {
    TomcatEmbeddedServletContainerFactory tomcat = new TomcatEmbeddedServletContainerFactory();
    tomcat.addAdditionalTomcatConnectors(initiateHttpConnector());
    return tomcat;
}

private Connector initiateHttpConnector() {
    Connector connector = new Connector("org.apache.coyote.http11.Http11NioProtocol");
    connector.setScheme("http");
    connector.setPort(80);
    connector.setSecure(false);
    connector.setRedirectPort(8444);
    return connector;
}

以及我的安全配置的一部分

    @Override
        protected void configure(HttpSecurity http) throws Exception {
           String[] securedUrls = { "/app/**" };
    http.authorizeRequests().antMatchers(securedUrls).hasAnyRole("SYSADMIN")
.and().requiresChannel().antMatchers(securedUrls).requiresSecure().and()
    .requiresChannel().antMatchers("/login").requiresSecure();
                            http.formLogin().loginPage("/login").defaultSuccessUrl("/app", true).successHandler(myAuthenticationSuccessHandler)
.failureHandler(myAuthenticationFailureHandler).and().logout();
    }

我可以浏览公共页面,一旦我加载登录页面,我在 chrome 中收到错误,因为“此网页有重定向循环 ERR_TOO_MANY_REDIRECTS”

【问题讨论】:

    标签: spring-mvc ssl https spring-security spring-boot


    【解决方案1】:

    当我的域名被引用时没有前面的“www”时,我收到了同样的错误。

    【讨论】:

      猜你喜欢
      • 2020-01-07
      • 1970-01-01
      • 2016-12-01
      • 2016-03-15
      • 2018-09-07
      • 2021-04-07
      • 1970-01-01
      • 2018-03-22
      • 1970-01-01
      相关资源
      最近更新 更多