将令牌从Angular2发送到java筛选器时出现问题
我正在尝试通过服务HTTP的GET方法发送令牌,但请求头中没有auth令牌的值(存储在浏览器localStorage中用于身份验证控制的令牌) 以下是请求的标题:将令牌从Angular2发送到java筛选器时出现问题,java,spring,angular,http-headers,angular2-services,Java,Spring,Angular,Http Headers,Angular2 Services,我正在尝试通过服务HTTP的GET方法发送令牌,但请求头中没有auth令牌的值(存储在浏览器localStorage中用于身份验证控制的令牌) 以下是请求的标题: Accept:*/* Accept-Encoding:gzip, deflate, sdch, br Accept-Language:pt-BR,pt;q=0.8,en-US;q=0.6,en;q=0.4 Access-Control-Request-Headers:auth-token, content-type Access-Co
Accept:*/* Accept-Encoding:gzip, deflate, sdch, br Accept-Language:pt-BR,pt;q=0.8,en-US;q=0.6,en;q=0.4 Access-Control-Request-Headers:auth-token, content-type Access-Control-Request-Method:GET Connection:keep-alive Host:localhost:7005 Origin:http://localhost:4200 Referer:http://localhost:4200/ User-Agent:Mozilla/5.0 (Windows NT
6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/56.0.2924.87 Safari/537.36
我需要在Access Control Request Headers参数之外对令牌进行身份验证,才能访问身份验证令牌值:
下面是我的代码(2)
代码:
export class BaseProvider {
protected static HOST: string = 'http://localhost:7005/'
protected static BASE_API: string = 'context';
protected headers = new Headers({
'Content-Type': 'application/json',
'auth-token': localStorage.getItem('user-token')
});
protected options = new RequestOptions({ headers: this.headers });
protected static getBaseAPI(): string {
return this.HOST + this.BASE_API;
}
}
@Injectable()
export class MyService extends BaseProvider {
constructor(private http: Http) {
super();
}
public findByName(obj: MyModel): Observable<Array<MyModel>> {
let params: URLSearchParams = new URLSearchParams();
params.set('name', obj.name);
this.options.search = params;
return this.http.get(BaseProvider.getBaseAPI() + myUrl, this.options)
.map((res: Response) => res.json()
).catch((error: any) => Observable.throw(error.json().error || 'Error!'));
}
}
Java代码的“authHeaderVal”变量没有使用令牌填充,因为“auth令牌”为空
如果没有LoginFilter类,请求将按如下方式到达:
Accept:application/json, text/plain, */*
Accept-Encoding:gzip, deflate, sdch, br
Accept-Language:pt-BR,pt;q=0.8,en-US;q=0.6,en;q=0.4
auth-token:eyJhbGciOiJIUzUxMiJ9.eyJqdGkiOiJkOTkzOWE0NS05Mzg5LTQ1MGItODE2Yy0yMjE1OWJhODdjZDMiLCJzdWIiOiJnYWJyaWVsIiwicm9sZSI6IjEiLCJpYXQiOjE0ODk2OTk5MjUsImV4cCI6MTQ4OTc4NjMyNX0.NdqdinX7S2mzO9wGVBw-JoUKQ7G2TQxQyQ3QrFg6Ckwc9A9Z63iw6R1JOPQ5ZO1yWpVPVvy_NS-wBqNRK03IiA
Cache-Control:no-cache
Connection:keep-alive
Content-Type:application/json
Host:localhost:7005
Origin:http://localhost:4200
Pragma:no-cache
Referer:http://localhost:4200/
User-Agent:Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/56.0.2924.87 Safari/537.36
我需要请求在启动时到达筛选器。在引发异常之前,是否可以打印请求的所有标头?是,但身份验证令牌密钥位于访问控制请求标头内,我无法获取值。
Accept:application/json, text/plain, */*
Accept-Encoding:gzip, deflate, sdch, br
Accept-Language:pt-BR,pt;q=0.8,en-US;q=0.6,en;q=0.4
auth-token:eyJhbGciOiJIUzUxMiJ9.eyJqdGkiOiJkOTkzOWE0NS05Mzg5LTQ1MGItODE2Yy0yMjE1OWJhODdjZDMiLCJzdWIiOiJnYWJyaWVsIiwicm9sZSI6IjEiLCJpYXQiOjE0ODk2OTk5MjUsImV4cCI6MTQ4OTc4NjMyNX0.NdqdinX7S2mzO9wGVBw-JoUKQ7G2TQxQyQ3QrFg6Ckwc9A9Z63iw6R1JOPQ5ZO1yWpVPVvy_NS-wBqNRK03IiA
Cache-Control:no-cache
Connection:keep-alive
Content-Type:application/json
Host:localhost:7005
Origin:http://localhost:4200
Pragma:no-cache
Referer:http://localhost:4200/
User-Agent:Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/56.0.2924.87 Safari/537.36