我有一个后端Spring Boot应用程序,它使用Spotify api中的数据,并且需要用户登录才能为我的应用程序提供身份验证令牌。它工作正常,但我不知道如何将其与前端应用程序集成。从服务器应用程序外部(localhost:8080)发送请求时,我总是得到403代码。
问题可能是我应该在前端请求Spotify令牌,然后以某种方式将其传递到后端,但是老实说,我什至不知道我应该用什么Google来实现这一目标。
以下是一些关键类别:
@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 Security相关的内容,我不知道xd中发生了什么
答案 0 :(得分:0)
首先,您所有受Spring安全性禁止的请求都会导致这一行代码。
http.authorizeRequests().antMatchers("/login").authenticated();
您必须授予对某些请求或任何请求的访问权限,但是在您的情况下,每个请求都被禁止。这就是为什么当您尝试通过休息访问Spring Boot应用程序时收到403状态(禁止)的原因
因此,您有多种选择来解决此问题。我给你两次。
http.authorizeRequests().antMatchers("/**").permitAll();
http.authorizeRequests()
.antMatchers("/somePath").authenticated();
.antMatchers("/somePath2").authenticated();
.antMatchers("/somePath3").permitAll();
但是Spring Security的功能远不止于此,因此,如果您想深入了解可用的倍数配置,则需要阅读官方文档。 https://docs.spring.io/spring-security/site/docs/current/reference/html5/#preface,并且它有很多简单的配置示例,可以带来乐趣。