2016-11-12 71 views
0

我在Spring中使用OAuth2並擁有資源服務器和認證服務器。我嘗試從Angular2發送GET到資源服務器。對於OPTIONS,我得到302。我在日誌中沒有看到任何東西。無論是在資源服務器還是授權服務器中。春季OAuth2預檢返回302

有沒有人有任何提示如何調試?可能是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()); 
    } 
} 
+0

一個302是一個重定向。你在哪裏重定向?你有沒有試過這樣做'curl -vv ',這樣你可以看到輸出? –

+0

這是棘手的部分。我試着用郵差發送帶有標題的OPTIONS,我可以看到Angular2應用正在發送。然後我得到200返回。但我猜測我被重定向到一些白標籤錯誤消息。但是,爲了解決這個問題,我添加的所有不同的過濾器都是在郵遞員發送時觸發的。所以當從Angular2發送時,有些東西阻塞了我的過濾器。不知道如何弄清楚什麼。 – user1716970

+0

明白了。這很有用。我建議在這裏發佈你的Angular代碼,這樣比我更有Angular經驗的人可以確保你的代碼看起來正確。您可以添加到您的調用中的任何詳細標誌可能會生成更詳細的響應,這很有幫助。這通常是我第一個解決這個問題的方法 - 增加更多詳細信息:) GL。 –

回答

0

好吧,這是對我們所有人的春天新手。

40.000後來的試驗組合我認爲我發現302的問題。我有server.context路徑設置爲「資源」。我認爲這是在OPTIONS中導致重定向的原因。