java - 为什么我们在 spring OAuth 2.0 中将客户端密码作为纯文本存储在数据库中?

标签 java spring spring-mvc spring-security oauth-2.0

我是 Spring OAuth 2.0 的新手。我们想为我们的资源服务器使用“客户端凭据”授权类型。在实现此类型时,我们不确定是否将“客户端 ID”和“客户端密码”作为纯文本保存在数据库中。有人会破解这些客户端 ID 和客户端密码,如果我们将客户端密码存储为纯文本,则可能会错过使用它们的机会。

谁能告诉我们是否有办法以加密格式保存这些值“Client ID”和“Client Secret”?

在 Spring OAuth 2.0 中是否有任何可用的默认选项来对其进行编码和解码?

请告诉我们是否有任何特定原因将客户端 secret 存储为纯文本?

谢谢,

最佳答案

您不得将客户端密码保存为纯文本。 客户端 secret 不得解密。 只需使用 org.springframework.security.crypto.bcrypt.BCryptPasswordEncoder 它将使用 BCrypt 加密客户端密码算法。

关于java - 为什么我们在 spring OAuth 2.0 中将客户端密码作为纯文本存储在数据库中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35692106/

相关文章:

java - Spring Boot 测试 : Test Response throws "Could not find acceptable representation" , App 正常运行

Java:导出到 JAR 后路径名不起作用

java - JPA 2.0/hibernate : Why does LAZY fetching with "@OneToOne" work out of the box?

java - @Value 注解不从属性文件中注入(inject)值

java - Spring Rest Controller 返回特定字段

java - Spring 2.5 中的拦截器

java - java中JSch库中Session和Channel的默认超时是多少

java - 如果启动了新的任务实例,如何取消任务?

spring - 在 Apache Tomcat 6 中部署 Spring 2 应用程序时出现问题

spring - 如何在repository层处理Spring数据异常