spring-security 401未经授权的Angular 响应

6ie5vjzr  于 2022-11-11  发布在  Spring
关注(0)|答案(1)|浏览(138)

我正在尝试使用Spring Security和Angular制作一个登录页面到我的网站。即使授权在Postman上有效,它在Angular上也不起作用。
下面是我的SecurityConfiguration类:

@EnableWebSecurity
public class SecurityConfiguration extends WebSecurityConfigurerAdapter {

    @Autowired
    UserDetailsService userDetailsService;

    @Override
    protected void configure(HttpSecurity http) throws Exception {
        http.cors();
        http.csrf().disable().
                authorizeRequests().antMatchers("/**","/login","/faqbio/auth").
                fullyAuthenticated().and().httpBasic();
    }

    @Override
    protected void configure(AuthenticationManagerBuilder auth) throws Exception {
        auth.userDetailsService(userDetailsService);
    }

    @Bean
    public PasswordEncoder getPasswordEncoder() {
        return new BCryptPasswordEncoder();
    }

}

当我通过用户名和密码使用基本认证的 Postman ,它的工作原理,你可以看到:

这里是我在Angular上的认证服务:

auth(request : UserRequest): Observable<any> {
    const headers = new HttpHeaders({ Authorization: 'Basic ' + btoa(request.username + ':' + request.password) });
    return this.http.post<any>("http://localhost:8085/faqbio/auth",{headers});
  }

我试图通过用户名和密码作为硬编码,但它没有工作。
这里是我的网络选项卡:

你能帮我解决这个问题吗?谢谢。

wgxvkvu9

wgxvkvu91#

我通过将PostMapping替换为GetMapping解决了该问题。

相关问题