Spring OAuth2预检返回302

时间:2016-11-12 19:30:10

标签: java spring spring-mvc angular

我在Spring中使用OAuth2并拥有资源服务器和身份验证服务器。我尝试从Angular2向资源服务器发送GET。我得到302回应OPTIONS。我在日志中看不到任何内容。无论是资源服务器还是授权服务器。

有没有人知道如何调试这个?可能是Spring在我的代码到达之前以某种方式发回302。

这是我的角度代码(保留注释掉的行以显示我已经尝试过的内容)

import { Injectable } from '@angular/core';
import { AuthHttp } from 'angular2-jwt/angular2-jwt';
import { Observable } from 'rxjs/Observable';
import { Http, Headers } from '@angular/http';


import { tokenNotExpired } from 'angular2-jwt';
import { Common } from '../common/common';

@Injectable()
export class ResourceService {

   constructor(private authHttp: AuthHttp, private http: Http) {
   }

   getResource(): Observable<any> {
       console.debug('requesting resources... tokenNotExpired: ' + tokenNotExpired());
       let headers = new Headers();
       headers.append('Content-Type', 'application/json');
      headers.append('Accept', 'application/json');
      //  headers.append('Access-Control-Request-Method', 'GET');
       let authToken = localStorage.getItem(Common.tokenName);
      //  console.debug('authToken: ' + authToken)
       var authJson = JSON.parse(authToken);
      //  console.debug('authJson: ' + authJson);
      //  console.debug()
        headers.append('Authorization', `Bearer ${authToken}`);
        headers.append('x-access-token', authToken);

      //headers.append('Authorization', 'Basic ' + localStorage.setItem(Common.tokenName));
      return this.authHttp.get('http://localhost:9998/resource', { headers: headers });
      //return this.http.get('http://localhost:9998/resource', {headers: headers}).map(res => res.json());
      //return this.http.get('http://localhost:9998/resource').map(res => res.json());
   }
}

1 个答案:

答案 0 :(得分:0)

好的,这是我们所有人的春天新手。

后来有40.000个试验组合我认为我发现了302的问题。我将server.context路径设置为“resource”。我认为这是导致OPTIONS重定向的原因。