2016-11-12 176 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中导致重定向的原因。