为spring webservice添加安全性以获取密码

时间:2016-10-19 05:41:48

标签: spring web-services spring-mvc spring-security

我是新来的春天。我需要创建一个用户注册表单,用户将提供他们直接保存到database.password的基本详细信息和密码,作为注册bean中的字符串数据类型和数据库中的varchar。 现在我的方法是,我将从移动或网站到该Web服务进行服务调用,并以纯文本形式发送密码。 但我认为这不是一个好方法,因为通过Web服务或服务器代码或数据库发送数据时没有安全性,密码只是一个验证很少的字符串。 根据行业标准,是否有一个很好的方法来完成这项任务。 提前谢谢。

此外,我希望我的密码不会被黑客或服务器拦截。密码应该以加密形式从客户端进行,并应保存在数据库中。管理服务器/数据库的人不应该看到该密码。

1 个答案:

答案 0 :(得分:0)

使用Spring Security提供的BCryptPasswordEncoder加密用户的密码并将散列密码字符串存储到数据库中。

示例:

@Transactional
@Override
public User create(UserCreateForm form) {
    User user = new User();
    user.setEmail(form.getEmail());
    user.setPasswordHash(new BCryptPasswordEncoder().encode(form.getPassword()));
    user.setRole(form.getRole());
    return userRepository.save(user);
}