我有一个Web应用程序,其Java,Spring Boot和Spring Security在后端,而Angular在前端。

我已经使用Spring Security实现了登录,并且身份验证似乎可以正常工作-在Postman和应用程序的前端中,我收到一个jwt令牌。这两个令牌似乎都是正确的,因为无论我使用在Postman中还是在前端中获取的令牌,当我向服务器发出其他请求时在Authorization标头中发送这些令牌中的任何一个时,该令牌都被我的应用程序后端接受从服务器得到200 OK响应。

但是,这里的情况有所不同:仅当我从Postman发送请求时,我的请求才被授权。当我从应用程序的前端发送(我认为)相同的请求时,后端抛出403禁止。自然地,我以为我从前端发送的请求必须不同于从Postman发送的请求,但是我找不到任何区别。从我看到的内容中,我发送了相同的方法,相同的正文,相同的标头(带有授权令牌)

您知道那里可能会发生什么吗?

最佳答案

原因是我需要在扩展WebSecurityConfigurerAdapter的类中启用Spring Security中的cors:


protected void configure(HttpSecurity http) throws Exception {
    http
            .cors().and()

关于java - Spring Security JWT-通过Authorization header 进行 postman 身份验证有效,但是从我的Angular前端不起作用,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/62457319/

10-12 00:24