java - 添加 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
数据库中存在的位置AAA
和BBB
位置(我使用 DataGrip 进行了验证)。其他代码都没有被触及。我使用 aJdbcTemplate
进行查询(没有 Hibernate/JPA)。
我有两年的 Spring 经验,我觉得这令人眼花缭乱。不过,不得不说这是我在 Spring 中从头开始完成的第一个应用程序。
解决方案
我终于解决了这个棘手的问题。这是我在启动启用了 Spring Security 的应用程序时通过命令行参数传递了错误的连接字符串。
在阅读了您的评论后,我再次回归了代码,并注意到引发了相同的异常,因此立即将 Spring Security 排除在罪魁祸首之外。
我之前没有注意到它,因为我之前的启动是使用正确的连接字符串完成的(没有注意到)。
这是一个错误,因为我从存储命令行参数的文本文件中复制粘贴错误。
感谢您确认 Spring Security 和数据库问题无关,我能够更好地指导我的搜索。
推荐阅读
- c# - 验证几个字段不重复
- python - 如何“创建环境变量文件:touch .env 进行配置(在项目根目录中)。”
- javascript - 更改登录屏幕的占位符文本
- web-crawler - 列出来自某个域的所有网站
- spring-boot - Spring Boot 应用程序不以 Maven 和空手道开头
- sql - 使用多个聚合函数查找每个组的最后一条记录 - SQLite
- kotlin - ForkJoinPool 和 Kotlin 协程
- sql - 如何通过修改现有查询得到想要的结果?
- azure - 不将 CERT 绑定到 azure 流量管理器(仅在 HTTPS 应用服务之前)主机名是否安全?
- ibm-watson - Watson 自然语言理解