如何使用Spring Security仅接受https流量并拒绝所有http流量?

时间:2013-09-26 15:32:49

标签: java spring security http https

在java Web应用程序中,我的目标是仅接受https请求并拒绝所有http请求。

在spring security配置文件中,我在intercept-url标记中使用requires-channel =“https”属性,但是如果用户请求http,则会自动重定向到https。

示例:

<intercept-url pattern="/**" access="permitAll" requires-channel="https" />

如果客户端尝试通过http点击应用,我该怎样才能回复404 Not Found,因此不会自动重定向到https?

1 个答案:

答案 0 :(得分:1)

  1. 您应该允许HTTP,但是立即重定向到同一个URL,但是在HTTPS。您可以在Tomcat中集中执行此操作,也可以在其他系统(如NginX

  2. )上集中执行此操作
  3. 使用HTTP Strict Transport Security。即使用户输入HTTP,这也会告诉浏览器将来直接进入HTTPS页面。