[英]JPA - Java Spring Boot - problems finding account with password encoding?
我是JPA的新手-我已經開始構建用戶系統並將編碼bean添加到我的pom中。
當我在表格上僅搜索電子郵件地址時,它會找到用戶並返回數據。
TblLogin acc = tblLoginRepository.findByEmail(email);
我為此的回購如下。
public interface TblLoginRepository extends JpaRepository<TblLogin, String> {
TblLogin findByEmail(String email) throws Exception;
}
-當我嘗試使用編碼的密碼進行查找時,找不到用戶-而且我不確定為什么數據看起來正確嗎?
帶密碼
TblLogin checkAccount = tblLoginRepository.findByEmailAndPassword(email,passwordEncoder.encode(password));
回購2
public interface TblLoginRepository extends JpaRepository<TblLogin, String> {
TblLogin findByEmail(String email) throws Exception;
TblLogin findByEmailAndPassword(String email, String password) throws Exception;
}
-
是因為我的密碼類型已更改? -是否應檢查其他事項...
我不完全知道您是如何實現的。 在實現該功能時,請確保幾件事。
1-注冊PasswordEncoder bean:
public PassordEncoder encoder() {
return new BCryptPasswordEncoder(11, new SecureRandom("seed".getBytes("UTF-8)));
}
取決於自定義的“種子”(出於安全原因)
2-確保您在同一字符字符集中編碼。 如前所述,...我不知道您如何檢索哈希的密碼。 進行如下嘗試的構造(難看):
String passwordToHash = new String(password.getBytes("UTF-8"));
3-如何將哈希存儲在數據庫中? 您可以驗證在“保存”過程中生成的散列與在該過程之后存儲的散列是否相同嗎?
希望能幫助到你。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.