SpringBoot 整合 Github Oauth2 登录
创建应用
配置回调地址
http://localhost:8080/login/oauth2/code/github
/login/oauth2/code/github
是框架默认回调地址 , 必须配置成这个
Spring 配置
spring:
security:
oauth2:
client:
registration:
github:
clientId: 11d48799b5cbf9a06fb0
clientSecret: a3712f866ae116cc42c039933c18255af88ca345
安全配置代码
@Configuration
public class ResourceServerConfiguration extends WebSecurityConfigurerAdapter {
@Override
protected void configure(HttpSecurity http) throws Exception {
// @formatter:off
http
.authorizeRequests(a -> a
.antMatchers("/", "/error", "/webjars/**").permitAll()
.anyRequest().authenticated()
)
.exceptionHandling(e -> e
.authenticationEntryPoint(new HttpStatusEntryPoint(HttpStatus.UNAUTHORIZED))
)
.oauth2Login();
// @formatter:on
}
}
控制器获得用户信息
@SpringBootApplication
@RestController
public class ResourceServerApplication {
@GetMapping("/user")
public Map<String, Object> user(@AuthenticationPrincipal OAuth2User principal) {
return Collections.singletonMap("name", principal.getAttribute("name"));
}
public static void main(String[] args) {
SpringApplication.run(ResourceServerApplication.class, args);
}
}