我已经用Spring安全性实现了oAuth2,它对我来说很好用。但是现在,我想从后端手动创建用户令牌,而无需输入密码。因为我只有用户名。
谁能帮我。
得到了答案!!!
HashMap<String, String> authorizationParameters = new HashMap<String, String>(); authorizationParameters.put("scope", "read"); authorizationParameters.put("username", "user"); authorizationParameters.put("client_id", "client_id"); authorizationParameters.put("grant", "password"); Set<GrantedAuthority> authorities = new HashSet<GrantedAuthority>(); authorities.add(new SimpleGrantedAuthority("ROLE_USER")); Set<String> responseType = new HashSet<String>(); responseType.add("password"); Set<String> scopes = new HashSet<String>(); scopes.add("read"); scopes.add("write"); OAuth2Request authorizationRequest = new OAuth2Request( authorizationParameters, "Client_Id", authorities, true,scopes, null, "", responseType, null); User userPrincipal = new User("user", "", true, true, true, true, authorities); UsernamePasswordAuthenticationToken authenticationToken = new UsernamePasswordAuthenticationToken( userPrincipal, null, authorities); OAuth2Authentication authenticationRequest = new OAuth2Authentication( authorizationRequest, authenticationToken); authenticationRequest.setAuthenticated(true); OAuth2AccessToken accessToken = tokenService .createAccessToken(authenticationRequest);
accessToken是您想要的令牌。
谢谢