tomcat - 在 Spring Security 或 Tomcat 中将 HTTP 重定向到 HTTPS

标签 tomcat spring-mvc

目前我的 Spring 应用程序只接受 HTTPS 协议(protocol)的请求。以下是 security-context.xml

的一部分
<http auto-config="false" use-expressions="true"
        disable-url-rewriting="true">
        <intercept-url pattern="/signup*" access="permitAll"
            requires-channel="https" />
        <intercept-url pattern="/login*" access="permitAll"
            requires-channel="https" />
        <intercept-url pattern="/logout" access="permitAll"
            requires-channel="https" />
        <form-login authentication-success-handler-ref="myAuthenticationSuccessHandler"
            login-page="/login" authentication-failure-url="/loginFailed" />
        <intercept-url pattern="/**" access="isFullyAuthenticated()"
            requires-channel="https" />
        <session-management
            session-authentication-error-url="/loginFailed">
            <concurrency-control error-if-maximum-exceeded="true"
                max-sessions="2" />
        </session-management>
        <logout invalidate-session="true" delete-cookies="JSESSIONID" />
    </http>

现在,我还希望应用程序能够在用户访问域时将 HTTP GET 请求重定向到 HTTPS,例如从 http://mydomain.comhttps://mydomain.com。我怎样才能做到这一点?我应该在 security-context.xml、 Controller 或 Tomcat 本身中应用更改吗?

最佳答案

我在 server.xml 中配置了从 HTTP(端口 80)到 HTTPS(端口 443)的重定向

<Connector connectionTimeout="20000" port="80" protocol="HTTP/1.1" redirectPort="443"/>

关于tomcat - 在 Spring Security 或 Tomcat 中将 HTTP 重定向到 HTTPS,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17057219/

相关文章:

java - 在tomcat和nginx子域之间共享一个sessionid

java - 如何杀死 quartz 预定线程?

java - 嵌套异常是 org.springframework.beans.factory.BeanCreationException : Could not autowire field in restful web services

java - Spring Controller 未创建

java - 如何找到基于 Spring 的 Web 应用程序中的性能瓶颈

apache - 将 Informix JDBC 添加到 Jasper 服务器

java - web.xml使用tomcat server 8.0的问题

java - 配置为监听端口 8080 的 Tomcat 连接器启动失败

java - 如何使用 Spring、Hibernate 和 PostgreSQL 将数据导出到 Excel?

spring - @PostConstruct spring 在没有 bean 声明的情况下不会被调用