【问题标题】:request.getHeader("authorization") missing from Tomcat headersTomcat 标头中缺少 request.getHeader("authorization")
【发布时间】:2017-03-14 08:36:23
【问题描述】:

我对 Tomcat 很陌生,所以请善待。

我的目标是从 URL 的基本 html 身份验证中检索用户名,例如:

http://username:password@example.com/index.jsp

(我想要用户名值)

我意识到这将被编码为授权标头,因此只需获取编码的 user:pass 就可以了。

当我尝试将基本身份验证信息发送到我的 JSP 页面读取标头时,没有授权标头 (request.getHeader("authorization"))

我还没有在 tomcat 中打开基本身份验证,因为我只是想先检索编码值。但我认为即使我实际上没有对任何东西使用基本身份验证,标题也应该仍然存在。

我该怎么做?如何让request.getHeader("authorization");tomcat 中工作?

我对 Tomcat 很陌生,我认为我忽略了某处的设置。

【问题讨论】:

  • 这就是我通过 JDBC (server.xml) 添加基本身份验证的方式:

标签: java jsp tomcat basic-authentication


【解决方案1】:

检查 url 编码凭据 here。 正如@misterben 在回答中提到的那样

浏览器请求http://example.com/index.html,忽略 第一个请求的凭据。服务器给出 401 响应 说明需要基本身份验证。

所以从服务器端来看,您的 JSP 页面不会在浏览器的第一个请求中接收到授权凭据。您的服务器必须发送 401 响应。

response.sendError(401);

所以一旦启用基本身份验证,它应该可以工作。

【讨论】:

  • 我在 Tomcat 9 中启用了具有基本身份验证的 JDBC 领域,并且开始接收授权标头。但是,仅发送 401 并不起作用。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2013-08-19
  • 1970-01-01
  • 1970-01-01
  • 2012-10-27
  • 2012-06-06
  • 2021-04-10
相关资源
最近更新 更多