基于@EnableOAuth2Sso实现单点登录
This commit is contained in:
		| @@ -39,7 +39,7 @@ public class OAuth2Configuration extends AuthorizationServerConfigurerAdapter { | ||||
|                 .withClient("web")   //客户端名称,随便起就行 | ||||
|                 .secret(encoder.encode("654321"))      //只与客户端分享的secret,随便写,但是注意要加密 | ||||
|                 .autoApprove(false)    //自动审批,这里关闭,要的就是一会体验那种感觉 | ||||
|                 .redirectUris("http://localhost:8201/login")   //可以写多个,当有多个时需要在验证请求中指定使用哪个地址进行回调 | ||||
|                 .redirectUris("http://localhost:8101/login", "http://localhost:8201/login", "http://localhost:8301/login")   //可以写多个,当有多个时需要在验证请求中指定使用哪个地址进行回调 | ||||
|                 .scopes("book", "user", "borrow")     //授权范围,这里我们使用全部all | ||||
|                 .authorizedGrantTypes("client_credentials", "password", "implicit", "authorization_code", "refresh_token"); | ||||
|         //授权模式,一共支持5种,除了之前我们介绍的四种之外,还有一个刷新Token的模式 | ||||
|   | ||||
| @@ -19,6 +19,16 @@ | ||||
|     </properties> | ||||
|  | ||||
|     <dependencies> | ||||
|         <dependency> | ||||
|             <groupId>org.springframework.boot</groupId> | ||||
|             <artifactId>spring-boot-starter-security</artifactId> | ||||
|         </dependency> | ||||
|  | ||||
|         <dependency> | ||||
|             <groupId>org.springframework.cloud</groupId> | ||||
|             <artifactId>spring-cloud-starter-oauth2</artifactId> | ||||
|             <version>2.2.5.RELEASE</version> | ||||
|         </dependency> | ||||
|         <dependency> | ||||
|             <groupId>org.springframework.boot</groupId> | ||||
|             <artifactId>spring-boot-starter-web</artifactId> | ||||
|   | ||||
| @@ -1,8 +1,8 @@ | ||||
| package com.test; | ||||
|  | ||||
| import com.apple.eawt.Application; | ||||
| import org.springframework.boot.SpringApplication; | ||||
| import org.springframework.boot.autoconfigure.SpringBootApplication; | ||||
| import org.springframework.boot.autoconfigure.security.oauth2.client.EnableOAuth2Sso; | ||||
|  | ||||
| /** | ||||
|  * ClassName: BookApplication | ||||
| @@ -11,6 +11,7 @@ import org.springframework.boot.autoconfigure.SpringBootApplication; | ||||
|  * @author yovinchen | ||||
|  * @Create 2023/8/14 16:23 | ||||
|  */ | ||||
| @EnableOAuth2Sso | ||||
| @SpringBootApplication | ||||
| public class BookApplication { | ||||
|     public static void main(String[] args) { | ||||
|   | ||||
| @@ -1,6 +1,8 @@ | ||||
| package com.test.controller; | ||||
|  | ||||
| import com.test.service.BookService; | ||||
| import org.springframework.security.core.context.SecurityContext; | ||||
| import org.springframework.security.core.context.SecurityContextHolder; | ||||
| import org.springframework.web.bind.annotation.PathVariable; | ||||
| import org.springframework.web.bind.annotation.RequestMapping; | ||||
| import org.springframework.web.bind.annotation.RestController; | ||||
| @@ -23,6 +25,9 @@ public class BookController { | ||||
|  | ||||
|     @RequestMapping("/book/{bid}") | ||||
|     Book findBookById(@PathVariable("bid") int bid){ | ||||
|         //通过SecurityContextHolder将用户信息取出 | ||||
|         SecurityContext context = SecurityContextHolder.getContext(); | ||||
|         System.out.println(context.getAuthentication()); | ||||
|         return service.getBookById(bid); | ||||
|     } | ||||
| } | ||||
|   | ||||
| @@ -6,3 +6,16 @@ spring: | ||||
|     url: jdbc:mysql://43.143.164.194:3306/mac | ||||
|     username: mac | ||||
|     password: mactest | ||||
| security: | ||||
|   oauth2: | ||||
|     client: | ||||
|       #不多说了 | ||||
|       client-id: web | ||||
|       client-secret: 654321 | ||||
|       #Token获取地址 | ||||
|       access-token-uri: http://localhost:8500/sso/oauth/token | ||||
|       #验证页面地址 | ||||
|       user-authorization-uri: http://localhost:8500/sso/oauth/authorize | ||||
|     resource: | ||||
|       #Token信息获取和校验地址 | ||||
|       token-info-uri: http://localhost:8500/sso/oauth/check_token | ||||
|   | ||||
| @@ -18,6 +18,16 @@ | ||||
|         <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> | ||||
|     </properties> | ||||
|     <dependencies> | ||||
|         <dependency> | ||||
|             <groupId>org.springframework.boot</groupId> | ||||
|             <artifactId>spring-boot-starter-security</artifactId> | ||||
|         </dependency> | ||||
|  | ||||
|         <dependency> | ||||
|             <groupId>org.springframework.cloud</groupId> | ||||
|             <artifactId>spring-cloud-starter-oauth2</artifactId> | ||||
|             <version>2.2.5.RELEASE</version> | ||||
|         </dependency> | ||||
|         <dependency> | ||||
|             <groupId>org.springframework.boot</groupId> | ||||
|             <artifactId>spring-boot-starter-web</artifactId> | ||||
|   | ||||
| @@ -2,6 +2,7 @@ package com.test; | ||||
|  | ||||
| import org.springframework.boot.SpringApplication; | ||||
| import org.springframework.boot.autoconfigure.SpringBootApplication; | ||||
| import org.springframework.boot.autoconfigure.security.oauth2.client.EnableOAuth2Sso; | ||||
|  | ||||
| /** | ||||
|  * ClassName: BorrowApplication | ||||
| @@ -10,6 +11,7 @@ import org.springframework.boot.autoconfigure.SpringBootApplication; | ||||
|  * @author yovinchen | ||||
|  * @Create 2023/8/14 16:25 | ||||
|  */ | ||||
| @EnableOAuth2Sso | ||||
| @SpringBootApplication | ||||
| public class BorrowApplication { | ||||
|     public static void main(String[] args) { | ||||
|   | ||||
| @@ -6,3 +6,16 @@ spring: | ||||
|     url: jdbc:mysql://43.143.164.194:3306/mac | ||||
|     username: mac | ||||
|     password: mactest | ||||
| security: | ||||
|   oauth2: | ||||
|     client: | ||||
|       #不多说了 | ||||
|       client-id: web | ||||
|       client-secret: 654321 | ||||
|       #Token获取地址 | ||||
|       access-token-uri: http://localhost:8500/sso/oauth/token | ||||
|       #验证页面地址 | ||||
|       user-authorization-uri: http://localhost:8500/sso/oauth/authorize | ||||
|     resource: | ||||
|       #Token信息获取和校验地址 | ||||
|       token-info-uri: http://localhost:8500/sso/oauth/check_token | ||||
|   | ||||
							
								
								
									
										10
									
								
								pom.xml
									
									
									
									
									
								
							
							
						
						
									
										10
									
								
								pom.xml
									
									
									
									
									
								
							| @@ -25,6 +25,16 @@ | ||||
|         <java.version>1.8</java.version> | ||||
|     </properties> | ||||
|     <dependencies> | ||||
|         <dependency> | ||||
|             <groupId>org.springframework.boot</groupId> | ||||
|             <artifactId>spring-boot-starter-security</artifactId> | ||||
|         </dependency> | ||||
|  | ||||
|         <dependency> | ||||
|             <groupId>org.springframework.cloud</groupId> | ||||
|             <artifactId>spring-cloud-starter-oauth2</artifactId> | ||||
|             <version>2.2.5.RELEASE</version> | ||||
|         </dependency> | ||||
|         <dependency> | ||||
|             <groupId>org.springframework.boot</groupId> | ||||
|             <artifactId>spring-boot-starter</artifactId> | ||||
|   | ||||
| @@ -2,6 +2,7 @@ package com.test; | ||||
|  | ||||
| import org.springframework.boot.SpringApplication; | ||||
| import org.springframework.boot.autoconfigure.SpringBootApplication; | ||||
| import org.springframework.boot.autoconfigure.security.oauth2.client.EnableOAuth2Sso; | ||||
|  | ||||
| /** | ||||
|  * ClassName: UserApplication | ||||
| @@ -10,6 +11,7 @@ import org.springframework.boot.autoconfigure.SpringBootApplication; | ||||
|  * @author yovinchen | ||||
|  * @Create 2023/8/14 16:26 | ||||
|  */ | ||||
| @EnableOAuth2Sso | ||||
| @SpringBootApplication | ||||
| public class UserApplication { | ||||
|     public static void main(String[] args) { | ||||
|   | ||||
| @@ -6,3 +6,16 @@ spring: | ||||
|     url: jdbc:mysql://43.143.164.194:3306/mac | ||||
|     username: mac | ||||
|     password: mactest | ||||
| security: | ||||
|   oauth2: | ||||
|     client: | ||||
|       #不多说了 | ||||
|       client-id: web | ||||
|       client-secret: 654321 | ||||
|       #Token获取地址 | ||||
|       access-token-uri: http://localhost:8500/sso/oauth/token | ||||
|       #验证页面地址 | ||||
|       user-authorization-uri: http://localhost:8500/sso/oauth/authorize | ||||
|     resource: | ||||
|       #Token信息获取和校验地址 | ||||
|       token-info-uri: http://localhost:8500/sso/oauth/check_token | ||||
|   | ||||
		Reference in New Issue
	
	Block a user