我有一个后端Spring Boot应用程序,该应用程序使用Spotify api中的数据,它需要用户登录才能为我的应用程序提供身份验证令牌。它工作正常,但我不知道如何将其与前端应用程序集成。从服务器应用程序外部发送请求时(localhost: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 Security相关的东西,我不知道xd发生了什么
首先,您将被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,并且还有很多简单的配置示例可以使您开心。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句