Tenho este código no angular:
import { RequestOptions, Headers } from '@angular/http';
const createDefaultHeaders = function() {
let token = 'Bearer ' + localStorage.getItem('token');
let headers = new Headers(
// { 'Content-Type': 'application/json', 'Authorization': localStorage.getItem('token') }
{
'Content-Type': 'application/json',
'Authorization': localStorage.getItem('token'),
'Accept': 'application/json',
'Access-Control-Allow-Origin': '*',
'Access-Control-Allow-Credentials': 'true'
}
);
let options = new RequestOptions({ headers: this.headers });
return options;
};
export const REQUEST_OPTIONS_DEFAULT: Function = createDefaultHeaders;
Código java com spring
String requestHeader = null;
System.out.println("O header é nulo? "
+ request.getHeader("Authorization") == null);
if (request.getHeader("Authorization") != null) {
System.out.println("O que tem dentro do header? "
+ request.getHeader("Authorization"));
requestHeader = "Bearer " + request.getHeader("Authorization");
}
logger.debug("Autenticação de processamento para '{}'",
request.getRequestURL());
A variável requestHeader sempre fica nulo.
Tem um tempo que estou fazendo com mock, mas não consegui resolver.
Como que está tua chamada?
A cosntrução do header, a priori, está ok.
Serviço está assim:
No caso é a variável options, que é o retorno deste arquivo.
import { Injectable, EventEmitter } from '@angular/core';
import { Http, Response } from "@angular/http";
import { Observable } from 'rxjs/Observable';
import 'rxjs/add/operator/catch';
import 'rxjs/add/operator/map';
import 'rxjs/add/observable/throw';
import { BASE_API_URL } from '../../base-api-url-defaul';
import { REQUEST_OPTIONS_DEFAULT } from '../../request-options.default';
import { AuthenticationService } from '../../authentication/authentication.service';
import { Servico } from '../../../modelo/federal/servico.model';
@Injectable()
export class ServicoService {
private base: string;
private options: Function;
constructor(
private http: Http,
private authenticationService: AuthenticationService,
) {
this.base = BASE_API_URL + 'servicoRecurso';
this.options = REQUEST_OPTIONS_DEFAULT;
}
getPesquisar(servico: Servico) {
let url = this.base + "/buscar";
return this.http.post(url, servico, this.options())
.map((response: Response) => {
console.log("Pesquisou por servico " + response.status);
return response.json();
}
).catch((error:any) =>
Observable.throw(error.json().error ||
'Erro em buscar servico ' + console.log(this.options))
);
}
getTodos() {
let url = this.base + "/todos";
return this.http.post(url, this.options())
.map((response: Response) => {
console.log("Todos servicos " + response.status);
return response.json();
}
).catch((error:any) =>
Observable.throw(error.json().error ||
'Erro em buscar Todos servicos ' + console.log(this.options))
);
}
getAlterar(id : Number) {
let url = this.base + "/alterar/" + id;
return this.http.get(url, this.options())
.map((response: Response) => {
return response.json();
}
).catch((error:any) =>
Observable.throw(error.json().error ||
'Erro em buscar servico pelo ID')
);
}
getExcluir(id : Number){
let url = this.base + "/excluir/" + id;
return this.http.get(url, this.options())
.map((response: Response) => {
return response.json();
}
).catch((error:any) =>
Observable.throw(error.json().error ||
'Erro em excluir servico pelo ID')
);
}
getSalvar(servico: Servico){
let url = this.base + "/salvar";
return this.http.post(url, servico, this.options())
.map(res=> res.json()
).catch((error:any) =>
Observable.throw(error.json().error ||
'Erro em salvar servico')
);
}
}