java - 如何使用 Spring Security Java 配置将 HTTP 请求重定向到 HTTPS?

标签 java spring security spring-security spring-java-config

我有一个 Spring Security 3.2.3 版应用程序,它同时监听 HTTP 和 HTTPS。我希望对 HTTP 端口的任何请求都重定向到 HTTPS。如何仅使用 Java 进行配置?

Spring Security javadoc for HttpSecurity提出以下解决方案(精简到本质):

public class WebSecurityConfig extends WebSecurityConfigurerAdapter {
    protected void configure(HttpSecurity http) {
        http.channelSecurity().anyRequest().requiresSecure();
    }
}

但这不起作用,因为 HttpSecurity 没有方法 channelSecurity()

最佳答案

在问题的代码中将 channelSecurity() 替换为 requiresChannel() 似乎可以提供所需的行为。工作代码如下所示:

public class WebSecurityConfig extends WebSecurityConfigurerAdapter {
    protected void configure(HttpSecurity http) {
        http.requiresChannel().anyRequest().requiresSecure();
    }
}

关于java - 如何使用 Spring Security Java 配置将 HTTP 请求重定向到 HTTPS?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24650450/

相关文章:

java - Java 中欧拉项目#14 的运行时间太长

security - 在 Windows 2003 的文件属性中重现被阻止的 exe "unblock"选项

java - 在 Android 上使用 JAAS(Java 身份验证和授权服务)

php - 处理 $_POST[] 和 $_GET[] 变量

java - Spring MVC 和 Hibernate : How to print out left joined fields?

java - Microsoft VSTS 不构建 Android 项目 - JavaMaximumHeapSize - 在本地计算机上运行

java - 无法从双 HashMap 中检索

java - Servlet spring-servlet 不可用(Spring+BlazeDS 集成)

java - 根据环境变量或属性执行切入点

java - 如何确定异常是否为 ClientAbortException