Spring Security OAuth2 accessToken

标签 spring oauth spring-security spring-boot spring-security-oauth2

在我的 Spring Boot 应用程序中,我需要以编程方式创建一个新用户,并从内部(此应用程序的一部分)OAuth2 授权服务器为他获取 OAuth2 访问/刷新 token 。

然后,我计划将这些访问/刷新 token 发送到某个外部(客户端)应用程序,该应用程序将代表该用户与我的第一个应用程序进行交互。

是否可以在不提供密码的情况下以编程方式获取此用户的 OAuth2 访问/刷新 token (在以编程方式创建此用户期间,我不想处理密码,只处理用户名)。

最佳答案

是的,可以,看看下面的代码

@Autowired
private TokenEndpoint tokenEndpoint;

public ResponseEntity<?> createToken(User user) {

        Principal principal = new UsernamePasswordAuthenticationToken(user.getUserName(), user.getPassword(), user.getAuthorities());

        HashMap<String, String> parameters = new HashMap<String, String>();
        parameters.put("client_id", "XXX");
        parameters.put("client_secret", "XXX");
        parameters.put("grant_type", "password");
        parameters.put("password", user.getPassword());
        parameters.put("scope", "XXX");
        parameters.put("username", user.getUserName());

        return tokenEndpoint.getAccessToken(principal, parameters);
}

但是您违反了 OAuth2 规范。授权应由资源所有者执行。

关于Spring Security OAuth2 accessToken,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32121009/

相关文章:

python - 用于 OAuth 身份验证的 WSGI 中间件

oauth - 带有内部返回 URL 的 Google OpenID+Oauth 混合模式登录 - OAuth 不起作用

java - Hibernate : records automatically added when querying for a list 的坏问题

spring - spring-boot-test 与 spring-boot-starter-test 有什么区别?

java - 基本 Controller ,设置私有(private)成员变量,这安全吗?

java - 使用 Okta 验证其余端点和 UI

java - 具有多个客户端的中央身份验证服务器,使用资源所有者密码凭据 oauth 流程

java - 如何在 MockClientHttpRequest/Response 中使用 RestTemplate xml 文件

facebook - OAuth 正在被破坏,但只有当用户来自 HTTP 时,HTTPS 才能正常工作

grails - 有没有办法在grails应用程序中添加第三方servlet?