[英]Problem with integrating Spring Boot backend + oauth with frontend app
我有后端 Spring Boot 应用程序,它使用来自 Spotify api 的数据,它需要用户登录才能为我的应用程序提供身份验证令牌。 它工作正常,但我不知道如何将它与前端应用程序集成。 从服务器应用程序(本地主机:8080)外部发送请求时,我总是得到 403 代码。
问题可能是我应该在前端请求 Spotify 令牌,然后以某种方式将其传递给后端,但老实说,我什至不知道我应该用谷歌搜索什么来实现这一点。
以下是一些关键类:
@Configuration
@EnableOAuth2Sso
public class SpotifyConfig extends WebSecurityConfigurerAdapter {
@Override
protected void configure(HttpSecurity http) throws Exception{
http.authorizeRequests().antMatchers("/login").authenticated();
}
}
And inside @RestController:
@GetMapping("/user")
public Principal user(Principal principal){
return principal;
}
@GetMapping("/")
public Principal home(Principal principal){
return principal;
}
@GetMapping("/login")
public Principal login(Principal principal){
return principal;
}
这是我第一次处理与 Spring 安全相关的事情,我不知道这里发生了什么 xd
首先,您将所有被 spring 安全性禁止的请求导致这行代码。
http.authorizeRequests().antMatchers("/login").authenticated();
您必须授予对某些请求或任何请求的访问权限,但在您的情况下,您已被禁止每个请求。 这就是为什么当您尝试通过 rest 访问 spring 引导应用程序时收到 403 状态(禁止)的原因
因此,您有多种选择来解决此问题。 我给你两次。
http.authorizeRequests().antMatchers("/**").permitAll();
http.authorizeRequests()
.antMatchers("/somePath").authenticated();
.antMatchers("/somePath2").authenticated();
.antMatchers("/somePath3").permitAll();
但是 Spring 安全性比这更深,所以如果你想在可用的倍数配置中更深入地了解 go,你需要阅读官方文档。 https://docs.spring.io/spring-security/site/docs/current/reference/html5/#preface ,还有很多简单的配置示例,让大家玩得开心。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.