Java Spring如何在webapplicationinitializer中强制使用https ssl?

Rob*_*roj 8 java https spring spring-java-config

要在web.xml中强制https,我使用的是此代码段:

<security-constraint>
  <web-resource-collection>
      <url-pattern>/*</url-pattern>
  </web-resource-collection>
  <user-data-constraint>
      <transport-guarantee>CONFIDENTIAL</transport-guarantee>
  </user-data-constraint>
</security-constraint>
Run Code Online (Sandbox Code Playgroud)

在Spring Java Config中是否有相同的功能?我已经发现我需要一个ServletSecurityElement.但是我如何连接到其他人呢?

public class WebAppInitializer implements WebApplicationInitializer {
    @Override
    public void onStartup(ServletContext container) throws ServletException {
        AnnotationConfigWebApplicationContext context = new AnnotationConfigWebApplicationContext();
        container.addListener(new ContextLoaderListener(context));
        context.register(PersistenceJPAConfig.class);

        FilterRegistration filter = container.addFilter("wicket.myproject", WicketFilter.class);
        filter.setInitParameter("applicationClassName", WicketApplication.class.getName());
        filter.setInitParameter(WicketFilter.FILTER_MAPPING_PARAM, "/*");
        filter.addMappingForUrlPatterns(null, false, "/*");

        HttpConstraintElement forceHttpsConstraint = new HttpConstraintElement(ServletSecurity.TransportGuarantee.CONFIDENTIAL, "");
        ServletSecurityElement securityElement = new ServletSecurityElement(forceHttpsConstraint);
    }
}
Run Code Online (Sandbox Code Playgroud)

Joh*_*son 0

你是什​​么意思,将它连接到其余部分?看起来你应该已经设置好了。Spring将自动检测Java配置的WebApplicationInitializer的配置。

请记住,WebApplicationInitializer 实现是自动检测的——因此您可以根据需要将它们打包到您的应用程序中。

看:

http://docs.spring.io/spring-framework/docs/3.1.x/javadoc-api/org/springframework/web/WebApplicationInitializer.html#onStartup(javax.servlet.ServletContext)