我正在学习Spring安全。我使用BCryptPasswordEncoder
在将用户密码持久化到数据库之前对其进行编码
代码:
@Override
public void saveUser(User user) {
user.setPassword(bCryptPasswordEncoder.encode(user.getPassword()));
user.setActive(1);
Role userRole = roleRepository.findByRole("ADMIN");
user.setRoles(new HashSet<Role>(Arrays.asList(userRole)));
userRepository.save(user);
}
然后在身份验证期间也使用它,用户得到了预期的身份验证。
@Override
protected void configure(AuthenticationManagerBuilder auth)
throws Exception {
auth.
jdbcAuthentication()
.usersByUsernameQuery(usersQuery)
.authoritiesByUsernameQuery(rolesQuery)
.dataSource(dataSource).passwordEncoder(bCryptPasswordEncoder);
}
然后,从configure()
方法中删除了.passwordencoder(bCryptPasswordEncoder);
,使用已编码密码的用户仍然能够成功地获得身份验证。
然后,我从saveuser()
和configure()
方法中删除了password encoder,并将user
持久化到数据库中(即没有密码编码),并尝试访问经过身份验证的页面,但我得到了accesseddeniedexception
,
但具有编码密码的用户仍然得到了身份验证,即使我从configure()
方法中删除了Passwordencoder()
。为什么会出现这种情况?
spring security默认情况下在身份验证期间使用密码编码器吗?
如果是,如何使用spring security而不使用密码编码?
Spring Security 5始终启用密码加密。默认情况下使用的加密是bcrypt
。Spring Security5的精妙之处在于,它实际上允许您在密码中指定使用哪种加密来创建has。
请参阅Spring Security Reference Guide中的密码存储格式。简而言之,它允许您为您的密码加上一个众所周知的算法密钥的前缀。存储格式为{
。
当不使用任何内容时,它将变成{noop}your-password
(它将使用noopPasswordEncoder
和{bcrypt}$A2.....
将使用bcryptPasswordEncoder
。有几种算法是开箱即用的,但您也可以定义自己的算法。
要定义自己的密码,请创建自己的PasswordEncoder
,并在DelegatingPasswordEncoder
的键下注册它。
有人请帮助我如何解决CWE-259:使用硬编码密码缺陷。
我需要用电子邮件和密码提出请求。电子邮件和密码是发送到我的存储库类的字符串。密码需要用Base64编码。 我正在使用改装2。 我知道我需要使用类,但是我怎么才能发出请求呢? 这是来自 Rest 接口的代码: 在存储库中,我用这个对密码进行编码: 但是我需要用email和encodedPassword变量初始化requestBody来发出请求。 这真的是正确的方法吗? requestBody属性是如
我试图scp使用2 linux服务器之间的密钥对。我想跟着http://sthen.blogspot.in/2008/03/sftp-i-java-with-jsch-using-private-key.html 我能够在linux服务器之间创建scp文件,但当我执行代码时,会收到错误com。jcraft。jsch。JSchException:UnknownHostKey。知道我做错了什么吗。 过
问题内容: 我想用不带sudo密码的用户sa1运行ansible: 第一次可以: 第二次失败: 请帮忙! 问题答案: 这不是您的服务器的配置。确保允许sudo的用户使用并且无需密码即可使用。 要登录到服务器 使用以下命令打开sudoers文件 确保您有这样的一行: 用您的用户替换 保存文件 您可以通过运行以下命令从服务器本身进行尝试: 如果这可行,那么它也应该可以正常运行。
我已经完成了用户注册和登录。但是我想在创建配置文件时加密密码。 这是我当前的配置 MongoDB连接 模型类:@ Document @ AllArgsConstructor @ NoArgsConstructor @ Data公共类用户{ @Id @Indexed私有字符串Id;@索引私有字符串地址;@索引私有字符串名称;@索引的私有字符串电子邮件;@索引私有字符串密码;@索引私有字符串角色;}
目前,我们正在使用Checkmarx扫描应用程序代码。不确定Checkmarx是否检测/扫描源代码中的任何硬编码密码。是否需要在Checkmarx服务器上添加任何额外的配置来检测密码?