簡體   English   中英

JPA-Java Spring Boot-查找帶有密碼編碼的帳戶時遇到問題?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM