Java Tomcat标头中缺少request.getHeader(“授权”)

Java Tomcat标头中缺少request.getHeader(“授权”),java,jsp,tomcat,basic-authentication,Java,Jsp,Tomcat,Basic Authentication,我对Tomcat很陌生,所以请善待我 我的目标是从基本html身份验证中从URL检索用户名,例如: http://username:password@example.com/index.jsp 我想要用户名值 我意识到这将被编码到授权头中,所以只需要获得编码的user:pass就可以了 当我尝试将基本身份验证信息发送到我的JSP页面(该页面读取头)时,没有授权头请求。getHeaderauthorization 我还没有在tomcat中打开basicauth,因为我只是尝试首先检索编码的值。但

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

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

http://username:password@example.com/index.jsp
我想要用户名值

我意识到这将被编码到授权头中,所以只需要获得编码的user:pass就可以了

当我尝试将基本身份验证信息发送到我的JSP页面(该页面读取头)时,没有授权头请求。getHeaderauthorization

我还没有在tomcat中打开basicauth,因为我只是尝试首先检索编码的值。但我假设即使我没有实际使用basicauth进行任何操作,标题也应该存在

我该怎么做?如何获取request.getHeaderauthorization;在tomcat工作


我对Tomcat很陌生,我想我忽略了某个地方的设置

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

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

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

response.sendError(401);

因此,一旦启用了基本身份验证,它就应该可以工作。

我在Tomcat 9中使用基本身份验证启用了JDBC领域,并开始接收授权头。但是,仅发送401不起作用。以下是我通过JDBC server.xml添加基本身份验证的方式: