首页 > 解决方案 > 添加 Spring Security 会导致列和表丢失

问题描述

我一直在用 Spring Boot 开发一个 webapp。昨天我为任何请求添加了 Spring Security 并强制使用 HTTPS,扩展WebSecurityConfigurerAdapter和添加

http.authorizeRequests().anyRequest().permitAll().and().requiresChannel().anyRequest().requiresSecure();

configure(HttpSecurity http)被覆盖的方法。Connector我还在返回的 bean 中添加了一个附加项ServletWebServerFactory,它将 HTTP 重定向到 HTTPS:

Connector connector = new Connector("org.apache.coyote.http11.Http11NioProtocol");
connector.setPort(80);
connector.setRedirectPort(443);

突然,我得到了很多这样的错误:

org.postgresql.util.PSQLException: ERROR: column AAA does not exist
org.postgresql.util.PSQLException: ERROR: relation "BBB" does not exist

数据库中存在的位置AAABBB位置(我使用 DataGrip 进行了验证)。其他代码都没有被触及。我使用 aJdbcTemplate进行查询(没有 Hibernate/JPA)。

我有两年的 Spring 经验,我觉得这令人眼花缭乱。不过,不得不说这是我在 Spring 中从头开始完成的第一个应用程序。

标签: javaspringpostgresqlspring-bootspring-security

解决方案


我终于解决了这个棘手的问题。这是我在启动启用了 Spring Security 的应用程序时通过命令行参数传递了错误的连接字符串。

在阅读了您的评论后,我再次回归了代码,并注意到引发了相同的异常,因此立即将 Spring Security 排除在罪魁祸首之外。

我之前没有注意到它,因为我之前的启动是使用正确的连接字符串完成的(没有注意到)。

这是一个错误,因为我从存储命令行参数的文本文件中复制粘贴错误。

感谢您确认 Spring Security 和数据库问题无关,我能够更好地指导我的搜索。


推荐阅读