我想知道是以下方法來驗證是用戶可以登錄或不是正確的,tecnically它的作品,我已經嘗試過它,它做我想要的,但這是我第一次在Java上做這個,我想以確保我沒有違反任何重要的慣例。這是驗證登錄名的正確方法嗎?
什麼這個方法的作用是:
- 接收一個loginRequest,loginResponse和一個HttpSession。
- 獲取用戶基於電子郵件(我必須找到一種方法,使 確保它不會在用戶註冊重複)
- 獲取用戶的身份
- 與請求中比較輸入密碼用戶在數據庫中的 摘要。
最後;如果它們匹配並且用戶處於活動狀態,則可以 訪問應用程序。
有什麼我失蹤?特別是:
我是否必須包含任何throw; catch? 用戶的詳細資料很脆弱,因爲我只是通過他的電子郵件得到他的信息,然後進行比較?
方法:
@Override
@Transactional
public void checkUser(LoginRequest lr, LoginResponse response, HttpSession currentSession) {
Usuario loggedUser = loginRepository.findByEmail(lr.getEmail());
isActive = loggedUser.getIsActiveUs();
if (encryptor.match(lr.getPassword(), loggedUser.getPassword())) {
if(isActive){
response.setCode(200);
response.setCodeMessage("User authorized");
//CREATE AND SET THE VALUES FOR THE CONTRACT OBJECT
response.setUserId(loggedUser.getIdUsuario());
response.setFirstName(loggedUser.getName());
response.setLastName(loggedUser.getLastName());
//response.setIdTenant(loggedUser.getIdTenant().getIdTenant());
currentSession.setAttribute("userId", loggedUser.getIdUsuario());
}else{
response.setCode(400);
response.setErrorMessage("User is inactive, please contact your admin.");
}
} else {
response.setCode(401);
response.setErrorMessage("Unauthorized User");
}
}
在此先感謝。
而不是使用Spring Security的原因是什麼? –
@Branislav Lazic這個小小的學校項目是基於給予我們的模板,登錄已經這樣完成,但有很多錯誤,我們不得不「修復」。我將檢查Spring安全性,看看它是否更易於使用和實施。也可以做對。 –