我正在用SpringBoot和Angular为一个期末项目创建一个投资组合网站,但我遇到了很多问题。
在localhost上一切工作都很完美,但是当我在Render上进行部署时(背面),数据不会显示在前面。
这就是我得到的:enter image description here
我在所有的控制器中设置了这样的头文件:enter image description here
这是主安全:
@Configuration
@EnableWebSecurity
@EnableGlobalMethodSecurity(prePostEnabled = true)
public class MainSecurity extends WebSecurityConfigurerAdapter {
@Autowired
UserDetailsImpl userDetailsServicesImpl;
@Autowired
JwtEntryPoint jwtEntryPoint;
@Bean
public JwtTokenFilter jwtTokenFilter() {
return new JwtTokenFilter();
}
@Bean
public PasswordEncoder passwordEncoder() {
return new BCryptPasswordEncoder();
}
@Override
protected void configure(HttpSecurity http) throws Exception {
http.cors().and().csrf().disable()
.authorizeRequests()
.antMatchers("**").permitAll()
.anyRequest().authenticated()
.and()
.exceptionHandling().authenticationEntryPoint(jwtEntryPoint)
.and()
.sessionManagement().sessionCreationPolicy(SessionCreationPolicy.STATELESS);
http.addFilterBefore(jwtTokenFilter(), UsernamePasswordAuthenticationFilter.class);
}
@Override
protected AuthenticationManager authenticationManager() throws Exception {
return super.authenticationManager();
}
@Bean
@Override
public AuthenticationManager authenticationManagerBean() throws Exception {
return super.authenticationManagerBean();
}
@Override
protected void configure(AuthenticationManagerBuilder auth) throws Exception {
auth.userDetailsService(userDetailsServicesImpl).passwordEncoder(passwordEncoder());
}
}
1条答案
按热度按时间kq0g1dla1#
您遇到了CORS错误,这意味着前端的域与后端的域不匹配。
这需要您将前端域添加到后端上允许的源。(对于添加允许的域,您应该区分服务器的本地/ dev和生产环境)。
您可以了解有关CORS here的更多信息。