为spring webservice添加密码安全性

Posted

技术标签:

【中文标题】为spring webservice添加密码安全性【英文标题】:Adding security to spring webservice for password 【发布时间】:2017-02-28 14:26:33 【问题描述】:

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

我还希望我的密码不被黑客或服务器截获。密码应从客户端以加密形式保存并保存在数据库中。管理服务器/数据库的任何人都不应看到该密码。

【问题讨论】:

以下链接中给出的答案可能会有所帮助Hashing password at client side 【参考方案1】:

使用 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);

【讨论】:

以上是关于为spring webservice添加密码安全性的主要内容,如果未能解决你的问题,请参考以下文章

Spring Boot 安全密码未打印

WebService -- Java 实现之 CXF ( 使用:Spring+CXF+Tomcat发布webService)

CXF WebService整合Spring

CXF WebService整合Spring

在 Spring 安全性中添加组

So easy Webservice 8.spring整合CXF 发布WS