Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/spring/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 为什么我们在SpringOAuth2.0中将客户机机密以纯文本形式存储在数据库中?_Java_Spring_Spring Mvc_Spring Security_Oauth 2.0 - Fatal编程技术网

Java 为什么我们在SpringOAuth2.0中将客户机机密以纯文本形式存储在数据库中?

Java 为什么我们在SpringOAuth2.0中将客户机机密以纯文本形式存储在数据库中?,java,spring,spring-mvc,spring-security,oauth-2.0,Java,Spring,Spring Mvc,Spring Security,Oauth 2.0,我是Spring OAuth 2.0的新手。我们希望为资源服务器使用“客户端凭据”授予类型。在实现此类型时,我们不确定是否在数据库中将“客户端ID”和“客户端机密”保持为纯文本。有人会破解这些客户端ID和客户端密码,如果我们将客户端密码存储为纯文本,则可能无法使用它们 请任何人告诉我们,是否有任何方法可以以加密格式保存这些值“客户ID”和“客户机密” Spring OAuth 2.0中是否有任何默认选项可用于编码和解码 请让我们知道是否有任何特定的原因将客户机密存储为纯文本 谢谢,您不能将客户端

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

请任何人告诉我们,是否有任何方法可以以加密格式保存这些值“客户ID”和“客户机密”

Spring OAuth 2.0中是否有任何默认选项可用于编码和解码

请让我们知道是否有任何特定的原因将客户机密存储为纯文本


谢谢,

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

您保存的数据用于验证客户端,因此您需要能够在服务器上读取它,这样每个黑客都可以攻击您的服务器。OAuth的设计方式是,存储的信息(authtoken)只能与发布它的服务一起使用。如果有人入侵您的服务器,您需要在从该入侵中恢复后重置此令牌。只需添加一个
PasswordEncoder
,就像您通常对user/password所做的那样。您好,我们遇到的问题是,如果我们可以在创建时使用“PasswordEncoder”对客户端密码进行编码,Spring OAuth 2库将通过获取编码的客户机机密来创建访问令牌。这意味着我们无法发现Spring OAuth 2.0库从数据库中获取编码的客户机机密并对其进行解码,然后生成访问令牌。我们也需要在资源服务器中使用此功能。请让我知道,在spring OAuth 2.0中有没有任何方法可以做到这一点,以便我们能够安全地为客户保密?谢谢