我正在尝试使用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});
}
我试图通过用户名和密码作为硬编码,但它没有工作。
这里是我的网络选项卡:
你能帮我解决这个问题吗?谢谢。
1条答案
按热度按时间wgxvkvu91#
我通过将PostMapping替换为GetMapping解决了该问题。