java - 我应该在一个小型应用程序中使用 Spring Security 模块来获取 bcrypt 哈希密码吗?
问题描述
我正在使用带有 Spring Data 的 Spring Boot 2.3.1 和其他一些小包创建一个小型 Web API。该项目只是一个身份验证微服务。我将尝试简化事情以专注于问题。
假设应用程序将有一个实体User
(用户名、密码)UserRepository
、、、AuthenticationService
和AuthenticationController
端点/register
,/authenticate
它使用用户名和密码处理 POST 请求,{"username": "Bob", "password": "pass"}
还存在一个带有&users
列的表的 postgres 数据库,它将存储用户名和密码哈希.username varchar(16)
password varchar(60)
/authenticate
端点的目标是true
在用户存在且密码匹配或其他情况下返回false
。
我不确定 Spring Security 是否是这种小功能的最佳解决方案,也许我应该简单地使用一些实现 Bcrypt-hashing 的包?
解决方案
在项目中包含和配置 spring 安全性有时会对您现有的功能造成很多问题。在我看来,在这种情况下,没有它你会更好。保持简单,如果稍后出现 URL 过滤和高级导航权限之类的东西,请考虑一下。
推荐阅读
- mysql - 在新选项卡上打开每个结果时出现 ActiveRecord::StaleObject 错误
- linux - 将 TMUX 的箭头键与 MacOS 终端绑定
- file - 搜索包含 7000 个图像名称的列表
- python - 如果两列相等且第三列为 True,则在新列中返回布尔值
- swift - 在vapor4中进行计算
- flutter - 在 null 上调用了 getter 'length'。接收方:null 尝试调用:长度 FutureBuilder 和列表
- oracle - 有没有办法在 Oracle 中找到最近 30 分钟内更新的所有表和记录?
- c++ - 内循环为外循环中的每个 log(N) 计数时的时间复杂度
- html - flexbox 无法处理通过电子邮件发送的数字签名
- tensorflow - TF-Agents 深度 Q 学习:如何提取状态/动作对的预测值?