Spring Boot OAuth2 是一个基于 Spring Boot 框架的 OAuth2 实现,用于简化 OAuth2 认证流程。OAuth2 是一种授权框架,允许第三方应用获取有限的用户资源访问权限。
application.yml
或 application.properties
中的 OAuth2 配置不正确。application.yml
或 application.properties
中的 OAuth2 配置正确。例如:application.yml
或 application.properties
中的 OAuth2 配置正确。例如:假设我们使用 GitHub 作为 OAuth2 提供商,配置如下:
application.yml:
server:
port: 8080
spring:
application:
name: oauth2-demo
security:
oauth2:
client:
registration:
github:
client-id: your-github-client-id
client-secret: your-github-client-secret
redirect-uri: "{baseUrl}/login/oauth2/code/github"
SecurityConfig.java:
import org.springframework.context.annotation.Configuration;
import org.springframework.security.config.annotation.web.builders.HttpSecurity;
import org.springframework.security.config.annotation.web.configuration.EnableWebSecurity;
import org.springframework.security.config.annotation.web.configuration.WebSecurityConfigurerAdapter;
@Configuration
@EnableWebSecurity
public class SecurityConfig extends WebSecurityConfigurerAdapter {
@Override
protected void configure(HttpSecurity http) throws Exception {
http
.authorizeRequests()
.antMatchers("/", "/login**", "/error**").permitAll()
.anyRequest().authenticated()
.and()
.oauth2Login()
.loginPage("/login")
.defaultSuccessUrl("/home");
}
}
OAuth2Controller.java:
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;
@RestController
public class OAuth2Controller {
@GetMapping("/login")
public String login() {
return "login";
}
@GetMapping("/home")
public String home() {
return "home";
}
}
通过以上配置和代码示例,应该可以解决 SpringBoot OAuth2 始终重定向到默认重定向的问题。
领取专属 10元无门槛券
手把手带您无忧上云