java - 在 Spring Security Oauth2 的 header 中发送用户名和密码

标签 java spring spring-oauth2

我正在使用 Spring Security Oauth2 来生成访问 token 。当我使用 password 作为授权类型时,我发送一个发布请求为

http://localhost:8085/oauth/token?grant_type=password&client_id=ws&client_secret=secret&scope=read+write&username=david@abc.com&password=abc@123

我不想在 URL 中发送用户名和密码。

我检查了TokenEndPoint.java的源代码,但找不到太多。我知道我们可以使用 HTTPS 并加密用户名和密码。

我只是想知道是否有任何方法可以在 header 中发送用户名和密码。

最佳答案

希望这对您有所帮助并满足您的要求。

来源:https://github.com/spring-projects/spring-security-oauth/blob/master/docs/oauth2.md

作为一般规则,Web 应用程序不应使用密码授予,因此如果可以支持 AuthorizationCodeResourceDetails,请避免使用 ResourceOwnerPasswordResourceDetails。如果您迫切需要密码授予才能从 Java 客户端工作,请使用相同的机制来配置 OAuth2RestTemplate 并将凭据添加到 AccessTokenRequest(这是一个 Map 并且是临时的)而不是 ResourceOwnerPasswordResourceDetails(在所有访问 token 之间共享) .

Git Hub 中的 OAuth2RestTemplate 示例

网址:https://github.com/mariubog/oauth-client-sample

关于java - 在 Spring Security Oauth2 的 header 中发送用户名和密码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34262170/

相关文章:

java - Spring - Oauth2 客户端服务器。 NoSuchMethodError : javax. servlet.ServletContext.getVirtualServerName() 在 tomcat 中运行时

oauth-2.0 - 带有自定义提供程序的 Spring Boot + Security OAuth2.0 客户端

java - 使用参数名称时映射器出错

java - Hibernate session 和垃圾收集器

java - Spring JavaConfig 和 Tomcat 8

java - 现在 android 命令已被弃用,我应该如何在没有 android studio 的情况下创建 android 应用程序

java - 分解出出现在许多枚举中的方法

java - 使用 NOLOCK 消除具有悲观锁定的应用程序的死锁

java - Spring表单绑定(bind)下拉对象

spring-boot - Spring Boot OAuth2 将内部用户与 Facebook/Google 登录链接起来