问题描述
我使用Spring Boot 2.2.4,我想通过OAuth2协议和GitHub登录到我的应用程序。
application.properties文件
spring.security.oauth2.client.registration.github.client-id=[my client id]
spring.security.oauth2.client.registration.github.client-secret=[my client secret]
spring.security.oauth2.client.registration.github.redirect-uri=http://[host ip]:8080/login_success
Spring Security配置类
@Configuration
@EnableWebSecurity
public class SecurityConfig extends WebSecurityConfigurerAdapter {
@Override
public void configure(HttpSecurity http) throws Exception {
http
.authorizeRequests()
.antMatchers("/test")
.authenticated()
.anyRequest().permitAll()
.and()
.oauth2Login();
}
}
示例控制器类
@RestController
public class SampleController {
@GetMapping("/")
public String home() {
return "Home";
}
@GetMapping("/login_success")
public String loginSuccessMethod() {
return "Login success";
}
@GetMapping("/user")
public OAuth2User user(@AuthenticationPrincipal OAuth2User principal) {
return principal;
}
@GetMapping("/test")
public String testMethod() {
return "Test method";
}
}
问题描述:
解决方法
问题解决了。我在GitHub和application.properties文件上键入了错误的重定向uri值。正确的值为http:// [host ip]:8080 / login / oauth2 / code / github