我目前正在使用Jhipster生成以下组件:
其他组成部分:
另外需要注意的是,自定义前端使用的是Jhipster angular 4代码,可以在vanilla Jhipster Api Gateway中找到。 这包括customHttpProvider。
目前我可以使用此设置成功登录并在UAA上调用API,但是,当我尝试拨打产品上的任何APIS时,我会收到 401 Unauthorized ,例如发布到 Product1 / api / zcd 。
Consul中的服务都是可见的绿色,Gateway也将UAA和Product1作为注册和可用路线。
到目前为止,我发现当我对Product进行api调用时,似乎没有调用AuthInterceptor。 我尝试手动将jwt令牌附加到方法,这解决了问题,但我不明白为什么customHttpProvider不被用于拦截请求和附加令牌。
如下所示,当我手动插入令牌时,我的ProductService工作正常,但这显然不是正确的方法。
@Injectable()
export class ProductService {
private options = new Headers();
constructor(private http: Http) {
this.options.append('Authorization', 'Bearer ' + 'token is inserted here');
}
priceProduct(productPriceRequest: productPriceRequest): Observable<IdResponse> {
return this.http.post('Product1/api/zcd', productPriceRequest, { headers: this.options })
.map(response => response.json());
}
}
答案 0 :(得分:2)
<强>解决:强>
有两件事给我造成了问题。 需要注意的是,它们与JHipster没有直接联系,而是与Jhipster集成的问题:
问题:
<强>解决方案:强>