因为Spring Security 3.1.4.RELEASE的,旧的org.springframework.security.authentication.encoding.PasswordEncoder
已被废弃的青睐org.springframework.security.crypto.password.PasswordEncoder
。由于我的应用程序尚未公开发布,因此我决定使用新的,不建议使用的API。
到目前为止,我有一个ReflectionSaltSource
自动使用用户的注册日期作为按用户盐注册的密码。
String encodedPassword = passwordEncoder.encodePassword(rawPassword, saltSource.getSalt(user));
在登录过程中,Spring还使用了我的bean来验证用户是否可以登录。我无法在新的密码编码器中实现此操作,因为SHA-1的默认实现- StandardPasswordEncoder
仅具有添加全局密码的能力。编码器创建过程中的秘密盐。
有没有合理的方法可以使用未弃用的API进行设置?
如果你实际上尚未使用现有格式注册任何用户,那么最好改用BCrypt密码编码器。
这样就省了很多麻烦,因为你根本不必担心盐问题-细节完全封装在编码器中。使用BCrypt比使用普通哈希算法更强大,它也是与使用其他语言的应用程序兼容的标准。
确实没有理由为新应用程序选择任何其他选项。
本文向大家介绍如何使用SpringSecurity保护程序安全,包括了如何使用SpringSecurity保护程序安全的使用技巧和注意事项,需要的朋友参考一下 首先,引入依赖: 引入此依赖之后,你的web程序将拥有以下功能: 所有请求路径都需要认证 不需要特定的角色和权限 没有登录页面,使用HTTP基本身份认证 只有一个用户,名称为user 配置SpringSecurity springsecur
我有一个Spring项目,它使用sping-oaust2和sping-Security使用LDAP身份验证提供程序进行身份验证。 在控制器中,我可以使用< code > @ AuthenticationPrincipal 注释访问当前主体的< code>UserDetails。 然而,当我使用client_credential令牌到达endpoint时,是一个,它是OAuth客户端id。sprin
我正在学习springsecurity(基于java的配置),我无法使注销正常工作。当我点击注销时,我看到URL更改为http://localhost:8080/logout并获取“HTTP 404-/logout”。登录功能工作正常(即使使用自定义登录表单),但问题是注销,我怀疑重定向的url“localhost:8080/logout”应该类似于“localhost:8808/springte
目前,我正在使用以下内容将用户登录到我的应用程序中。然而,我想使用一个角函数来实际执行登录。为此,我想创建一个Rest网络服务来进行身份验证,但是我在SO上看到的所有示例都使用我认为被贬低的用户。我还希望该服务返回有关用户的信息。 我要问的是如何将MyUserDetailsService更改为用作登录的restful服务,或者如何创建一个可用于登录的服务,该服务将在登录后返回用户对象。 这是我的a
从Spring Security 3.1.4版本起,旧的已被弃用,而改为。由于我的应用程序还没有向公众发布,我决定转移到新的,而不是不推荐使用的API。 到目前为止,我有一个自动使用用户的注册日期作为每个用户的salt口令。 在登录过程中,Spring还使用my bean适当验证用户是否可以登录。我无法在新的密码编码器中实现这一点,因为SHA-1-的默认实现只能在编码器创建期间添加全局秘密盐。 有
问题内容: 我非常想使用Map.computeIfAbsent,但是自从lambdas进入本科以来已经太久了。 几乎 直接来自文档:它给出了做事的旧方法的示例: 和新方法: 但是在他们的示例中,我认为我不太“了解”。我将如何转换代码以使用新的lambda表达方式? 问题答案: 假设您有以下代码: 然后,您将看到消息恰好一次,就像在第二次调用时已经存在该键的值一样。的在λ表达式仅仅是该地图将传递到您