【问题标题】:Jhipster missing authentication bearer tokenJhipster 缺少身份验证承载令牌
【发布时间】:2017-02-24 03:42:04
【问题描述】:

我已经设置了一个微服务架构,其中包含一个 UAA、一个网关和一个服务(单个 Web 应用程序),如此处所述https://jhipster.github.io/using-uaa/

用户在此 webapp 中进行身份验证后,会有几个类似这样的链接

<a href="/zuulfitler/route?url=http://www.google.com" target="_blank"
>google</a>

当用户点击时,zuul 的“路由”过滤器会检查请求是否具有适当的权限,然后路由到目标 url。

问题是当请求被 zuul 拦截时,用户显示为未通过身份验证,因为带有不记名令牌的 Authorization http 标头被注入,因为 $http 没有发出请求对象。

见:https://jhipster.github.io/using-uaa/#jhipster-uaa

此不记名令牌作为授权标头注入到每个 AngularJS $http 对象执行的请求。

当我单击链接时如何注入 http 标头?

提前谢谢你。

【问题讨论】:

    标签: angularjs oauth-2.0 http-headers jhipster netflix-zuul


    【解决方案1】:

    您只需让某些控制器可以访问令牌值,并构建链接,例如:

    &lt;a ng-href="/zuulfilter/route?url=http://google.com&amp;access_token={{ctrl.accessToken}}" target="_blank"&gt;google&lt;/a&gt;

    同时通过url而不是header传递令牌,这也被spring cloud security识别。

    【讨论】:

    • 谢谢,这是一个可能的解决方案。我不知道如果通过 url 传递,spring security 会自动识别令牌。问题是令牌被暴露并且可以保存在网络服务器日志中。没有别的办法了吗?
    • 我只想到一些 iframe 或代理的东西,因为你想打开一个带有自定义标题的新标签,这几乎是我看到的唯一方法。然后您可以考虑保护您的网络服务器日志
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-08-03
    • 1970-01-01
    • 2020-08-27
    • 2022-01-23
    • 1970-01-01
    • 2019-03-25
    • 2020-09-18
    相关资源
    最近更新 更多