我正在使用Spring和"密码"授权类型运行OAuth提供程序.
运行此(提供程序在端口8080上):
curl -u "app:appclientsecret" "http://localhost:8080/oauth/token" --data "grant_type=password&username=marissa&password=koala"
Run Code Online (Sandbox Code Playgroud)
收益:
{"access_token":"56da4d2b-7e66-483e-b88d-c1a58ee5a453","token_type":"bearer","expires_in":43199,"scope":"read"}
Run Code Online (Sandbox Code Playgroud)
由于某种原因,没有刷新令牌.我知道根据规范,刷新令牌是可选的; 有没有办法让我错过了?
供参考,这是我的提供者代码:
@SpringBootApplication
public class Provider {
public static void main(String... args) {
System.setProperty("server.port", "8080");
SpringApplication.run(Provider.class, args);
}
@Configuration
@EnableWebSecurity
static class SecurityConfiguration extends WebSecurityConfigurerAdapter {
private final UserStoreType type = UserStoreType.IN_MEMORY;
enum UserStoreType {
IN_MEMORY,
}
@Autowired
public void globalUserDetails(AuthenticationManagerBuilder auth) throws Exception {
switch(type) {
case IN_MEMORY:
System.err.println("Setting up user creds..");
auth.inMemoryAuthentication()
.withUser("marissa").password("koala").roles("USER")
.and()
.withUser("admin").password("topsecret").roles("USER", "ADMIN");
break;
}
}
@Override
protected void configure(HttpSecurity http) throws …Run Code Online (Sandbox Code Playgroud)