授权服务器入门(一)
本文主要讲授权服务器基本入门,还有client_credentials和password授权方式。client_credentials是机器或应用之间交互,没有用户介入,不对外开放注册。password需要用户交互,在获取服务器资源之前需要用户名和密码认证。另外password的授权方式返回的token有refresh_token,而client_credentials没有。
1 工程代码
1.1Maven依赖
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-oauth2</artifactId>
</dependency>
1.2 AuthorizationServer05Application.java 配置信息
package com.example.authorizationserver05;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.security.oauth2.config.annotation.web.configuration.EnableAuthorizationServer;
@EnableAuthorizationServer
@SpringBootApplication
public class AuthorizationServer05Application {
public static void main(String[] args) {
SpringApplication.run(AuthorizationServer05Application.class, args);
}
}
1.3 application.properties 属性文件
security.oauth2.client.client-id = client01
security.oauth2.client.client-secret = 123456
spring.security.user.name=user1
spring.security.user.password=123456
4 运行应用
通过client_credentials获取token 的url http://localhost:8080/oauth/token?grant_type=client_credentials&scope=all
通过password获取token 的url http://localhost:8080/oauth/token?grant_type=password&scope=all