Spring boot 获取未通过授权标头的请求
我正在尝试将GET请求从我的角度前端传递到我的弹簧靴后端。我使用JWT对所有内容进行身份验证,并使用HTTP拦截器在请求头中添加令牌,如下所示:Spring boot 获取未通过授权标头的请求,spring-boot,spring-security,cors,preflight,angular2-headers,Spring Boot,Spring Security,Cors,Preflight,Angular2 Headers,我正在尝试将GET请求从我的角度前端传递到我的弹簧靴后端。我使用JWT对所有内容进行身份验证,并使用HTTP拦截器在请求头中添加令牌,如下所示: @Injectable() export class Interceptor implements HttpInterceptor { constructor(public auth: AuthService) { } intercept(request: HttpRequest<any>, next: HttpHand
@Injectable()
export class Interceptor implements HttpInterceptor {
constructor(public auth: AuthService) { }
intercept(request: HttpRequest<any>, next: HttpHandler): Observable<HttpEvent<any>> {
const token: string = this.auth.getToken();
if(this.auth.isAuthenticated()) {
request = request.clone({
setHeaders : { Authorization : `${this.auth.getToken()}`,}
});
}
return next.handle(request);
}
}
这似乎仍然不起作用。此外,我还尝试使用邮递员执行相同的GET请求,这似乎效果不错。有人能帮我吗?也可以覆盖cors映射或为cors映射定义
@Bean
,请定义正确的前端原点,我相信这是根据您的屏幕截图允许的原点(“http://evil.com“”
或者在配置中定义@Bean,也可以定义过滤器
@Bean
public WebMvcConfigurer corsConfigurer() {
return new WebMvcConfigurerAdapter() {
@Override
public void addCorsMappings(CorsRegistry registry) {
registry.addMapping("/**").allowedOrigins("your origin or * for allow all");
}
};
}
方法2:
@CrossOrigin
在控制器上
@CrossOrigin(origins = "http://example.com", maxAge = 3600)
@RestController
@RequestMapping("/account")
public class AccountController {
尝试禁用CORS插件,看看它是否会将授权头添加到请求中。非常感谢您的建议!问题似乎是,我正在使用CORS插件,并试图解决Spring引导设置的问题。禁用插件并将WebMVCConfigureBean添加到应用程序类解决了这个问题。再次感谢!
@Bean
public WebMvcConfigurer corsConfigurer() {
return new WebMvcConfigurerAdapter() {
@Override
public void addCorsMappings(CorsRegistry registry) {
registry.addMapping("/**").allowedOrigins("your origin or * for allow all");
}
};
}
@CrossOrigin(origins = "http://example.com", maxAge = 3600)
@RestController
@RequestMapping("/account")
public class AccountController {