springsecurity整合oauth2具体项目案例
时间: 2023-09-12 22:11:12 浏览: 114
好的,以下是一个简单的 Spring Security 和 OAuth2 的整合项目案例:
1. 首先,在 pom.xml 中添加以下依赖:
```
<dependency>
<groupId>org.springframework.security.oauth.boot</groupId>
<artifactId>spring-security-oauth2-autoconfigure</artifactId>
<version>2.1.2.RELEASE</version>
</dependency>
```
2. 在 Spring Security 的配置文件中添加以下代码:
```
@Configuration
@EnableResourceServer
public class ResourceServerConfig extends ResourceServerConfigurerAdapter {
@Override
public void configure(HttpSecurity http) throws Exception {
http
.authorizeRequests()
.antMatchers("/api/**").authenticated()
.and().csrf().disable()
.sessionManagement().sessionCreationPolicy(SessionCreationPolicy.STATELESS);
}
@Override
public void configure(ResourceServerSecurityConfigurer resources) throws Exception {
resources.resourceId("resource_id").stateless(true);
}
}
```
3. 在 application.yml 中添加以下配置:
```
security:
oauth2:
client:
client-id: client
client-secret: secret
access-token-uri: http://localhost:8080/oauth/token
user-authorization-uri: http://localhost:8080/oauth/authorize
resource:
user-info-uri: http://localhost:8080/user/me
```
4. 创建一个控制器类,用于处理 OAuth2 的回调请求:
```
@RestController
@RequestMapping("/api")
public class ApiController {
@GetMapping("/user")
public String getUserInfo(@AuthenticationPrincipal OAuth2User user) {
return user.getName();
}
}
```
5. 最后,启动应用程序并访问 http://localhost:8080/api/user,应该会跳转到 OAuth2 的授权页面,完成授权后应该能够看到当前用户的信息。
以上就是一个简单的 Spring Security 和 OAuth2 的整合项目案例,希望能对你有所帮助。
阅读全文