spnego实现问题 - 解析http请求标头时出错

时间:2013-09-24 23:55:05

标签: tomcat encryption http-headers spnego

我正在Linux tomcat 7.0安装上实现spnego sso身份验证,并且在http://spnego.sourceforge.net/index.html上的示例相当顺利。我通过了飞行前的检查清单,实际上让它与Firefox中的'BASIC'票据一起来回传递。

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

INFO: Error parsing HTTP request header

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

400 Bad Request

正如我所说的那样,它在Firefox中运行,但只是部分地提示在那里登录,继续进行“基本”身份验证。 (至少是这样做,直到我在web.xml过滤器配置中关闭它,所以我知道正在读取这些配置)

我正在使用以下enctypes:

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加密有关,但我确实下载并将它们放入我的java lib / security文件夹中的无限制加密罐,如下所述:

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

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

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

这是一个内部企业环境,SSO已经成功实现了httpd,但我们希望将其从一个全天候的解决方案中移除。

1 个答案:

答案 0 :(得分:12)

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

无论如何,我发现解决方案将在serverfault的以下答案中描述。

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

为了完整性:

<Connector port="8080" maxHttpHeaderSize="65536" protocol="HTTP/1.1" ... />