我想知道是以下方法来验证是用户可以登录或不是正确的,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安全性,看看它是否更易于使用和实施。也可以做对。 –