Java Tomcat URL身份验证,例如:https://user:password@app.wibble.com

Java Tomcat URL身份验证,例如:https://user:password@app.wibble.com,java,url,tomcat,authentication,Java,Url,Tomcat,Authentication,我正在编写一个tomcat应用程序,需要在URL中进行身份验证,如下所示: 除了我的生活之外,我不知道如何设置它,也不知道如何找到可以阅读的文档,显然我的谷歌技能需要提高 谁能告诉我应该在哪里寻找此类信息,或者从哪里开始 干杯 安迪我认为这不是一个合法的URL。如果我正确阅读了URL的主机部分app.wibble.com中的“@”是不合法的,http URL没有用户和密码部分。电子邮件和FTP可以,但http不能 也许https://app.wibble.com/user/password,但

我正在编写一个tomcat应用程序,需要在URL中进行身份验证,如下所示:

除了我的生活之外,我不知道如何设置它,也不知道如何找到可以阅读的文档,显然我的谷歌技能需要提高

谁能告诉我应该在哪里寻找此类信息,或者从哪里开始

干杯


安迪

我认为这不是一个合法的URL。如果我正确阅读了URL的主机部分app.wibble.com中的“@”是不合法的,http URL没有用户和密码部分。电子邮件和FTP可以,但http不能


也许
https://app.wibble.com/user/password
,但我建议不要在URL中输入密码。它最终会在某个缓存中找到。

由客户端从URL获取凭据,并将其放入支持的身份验证方法(如HTTP Basic或Digest)的正确头中。服务器将只接收位置(“/”,在本例中为“/”)和WWW Authenticate标头,如果您正确设置了容器管理的身份验证,则应由Tomcat处理这些标头。

以这种方式进行身份验证称为HTTP BASIC,这可能有助于您的搜索:)

本质上,您需要在web.xml中包含这样一个元素

<login-config>
  <auth-method>BASIC</auth-method>
  <realm-name>myRealm</realm-name>
</login-config>

然后需要在tomcat-users.xml文件中创建一些用户

现在,您可以开始使用web.xml中的
元素来管理访问


另一方面,在现代浏览器中,如果您想使用BASIC,就必须实际使用容器管理的安全性。有时,人们试图在servlet中解析请求,并从中获取用户名/密码。现代浏览器将通过不将登录名和密码放在标题中来“保护”您不被不必要地泄露密码,除非没有登录名和密码的初始服务器调用因基本凭据问题而失败。

几乎所有浏览器都会接受该格式,并将其转换为正确的HTTP请求,其中包含标题中的信息(如果服务器对信息提出质疑)。这句话不准确。IE从第7版起就取消了对此的支持。因此,市场上最流行的浏览器(IE7和IE8)不接受这种格式。我的观点是正确的:)(现在,如果人们停止使用IE6,那么我们都可以停止编写损坏的网页来支持它。)根据RFC3986第3.2.1节,username@password是允许的,但不被允许。根据RFC2616第3.2.2节,
http\u URL=“http:”/“主机[”:“端口][abs_路径[“?”查询]]
此外,如果FireFox看到此类URL,它将向用户发出警告。