5

我在 Linux tomcat 7.0 安装上实施 spnego sso 身份验证,并遵循以下示例:http ://spnego.sourceforge.net/index.html相当好。我以出色的成绩通过了飞行前检查表,实际上让它与 Firefox 中的“BASIC”票一起来回传递。

但是,当使用“协商”授权标头时,我在 catalina.out 中收到以下错误消息:

INFO: Error parsing HTTP request header

IE 和在soapUI 中模拟请求时都会发生这种情况。发回给两者的响应是:

400 Bad Request

正如我所说,它在 Firefox 中运行,但仅部分是因为它提示在那里登录,然后进行“基本”身份验证。(至少在我在 web.xml 过滤器配置中关闭它之前是这样,所以我知道这些配置正在被读取)

我正在使用以下编码类型:

default_tkt_enctypes = aes256-cts-hmac-sha1-96 aes128-cts des3-cbc-sha1 des-cbc-md5 des-cbc-crc arcfour-hmac-md5
default_tgs_enctypes = aes256-cts-hmac-sha1-96 aes128-cts des3-cbc-sha1 des-cbc-md5 des-cbc-crc arcfour-hmac-md5
permitted_enctypes = aes256-cts-hmac-sha1-96 aes128-cts des3-cbc-sha1 des-cbc-md5 des-cbc-crc arcfour-hmac-md5

我怀疑它与 256 加密有关,但我确实下载了不受限制的加密 jar 并将它们放入我的 java lib/security 文件夹中,如下所述:

http://docs.oracle.com/javase/7/docs/technotes/guides/security/jgss/jgss-features.html

但是,这确实解决了问题(除非我缺少某些东西)。我已经广泛搜索了出现在 catalina.out 文件中的“错误解析...”http 错误,但没有找到解决方案。其他设置(领域、域等)似乎工作正常,因为我已经修改了它们并得到了不同的更具体的错误。

关于错误的任何想法INFO: Error parsing HTTP request header

这是一个内部企业环境,SSO 已经通过 httpd 成功实施,但我们希望从它转向全 tomcat 解决方案。

4

1 回答 1

12

终于解决了这个问题。事实证明,“协商”授权标头将标头的大小推到了 Tomcat 中默认的 8kb 最大大小之上,这导致了误导性错误。(我原以为更有用的错误消息是“达到最大标头大小”之类的)

无论如何,我在 serverfault 的以下答案中找到了要描述的解决方案。

https://serverfault.com/questions/56691/whats-the-maximum-url-length-in-tomcat

为了完整性:

<Connector port="8080" maxHttpHeaderSize="65536" protocol="HTTP/1.1" ... />
于 2013-09-26T16:21:06.327 回答