我正在使用WebSphere 7.0.0.29,但SPNEGO授权存在问题-WAS在第二个响应中返回HTTP代码401 ,并且登录失败。
这是因为(如我想),它无法从客户端解析LTPA令牌(LtpaToken2)。 当Base64使用LtpaToken2解码cookie时,它将引发ArrayIndexOutOfBoundsException 。 第二个客户端请求中的cookie中的LtpaToken2与第一个服务器响应(Set-Cookie)中的令牌相同(如我所见)。 所以一切都应该没问题,但是不幸的是不是:/
在我的第二个类似的环境(具有相同版本的WAS和相同的配置)上,一切正常-但这是在不同的域中,因此在不同的域控制器中。
在比较繁琐的环境下客户端-服务器通信之间的差异时,我注意到在我的非工作环境中, LtpaToken2比工作环境短 (!)(如您在http_access.log中看到的)。 LtpaToken也较短。 但是我不知道为什么。
也许是编码原因? 还是不同的KDC配置...?
我的客户端是Java Web Start 1.7.0_60-b19。
我正在粘贴WebSphere日志的片段。 如果还有其他帮助,请告诉我。
AppSrv01 / logs / ffdc / server1_6150615_15.08.06_16.17.48.8658543509569228235853.txt:
[8/6/15 16:17:48:865 CEST] FFDC Exception:java.lang.ArrayIndexOutOfBoundsException SourceId:com.ibm.ws.security.web.WebAuthenticator.handleSSO ProbeId:1257 Reporter:com.ibm.ws.security.web.WebAuthenticator@64bd64bd
java.lang.ArrayIndexOutOfBoundsException
at com.ibm.ws.security.util.Base64Coder.base64Decode(Base64Coder.java:51)
at com.ibm.ws.security.util.Base64Coder.base64Decode(Base64Coder.java:109)
at com.ibm.ws.security.web.WebAuthenticator.validateCookie(WebAuthenticator.java:1225)
at com.ibm.ws.security.web.WebAuthenticator.handleSSO(WebAuthenticator.java:1139)
at com.ibm.ws.security.web.WebAuthenticator.authenticate(WebAuthenticator.java:3291)
at com.ibm.ws.security.web.WebAuthenticator.authenticate(WebAuthenticator.java:3143)
at com.ibm.ws.security.web.WebCollaborator.authorize(WebCollaborator.java:1235)
(...)
http_access.log(我已经更改了地址):
ADDRESS_IP - - [06/Aug/2015:16:17:47 +0200] "POST ADDRESS HTTP/1.1" 200 - "-" "Java/1.7.0_60" "-"
ADDRESS_IP - - [06/Aug/2015:16:17:48 +0200] "POST ADDRESS HTTP/1.1" 401 148 "-" "Java/1.7.0_60" "null: LtpaToken:Tug3uTyc366i+dGtAAr/Hk1jm2zyUwO764AxDcjR//qzuxz+aTbQ2DwkygRbW9qJ5dKRIHhO+CmejTLNZTHzhSThiMDg59JF3JAASjCAQ0wVK29e/Ty4jlqx7CDPkONSf36iEfrxcjBtsrc+Sa1Y668XMWTW4Ri4G6HzJiOkvZYXrKgWjewP3qJRcEtn3GgSo/8V3qD20SAD3G94u4arGa5yL6l3838/Yw8gXwXiwEdB6hghlzHBsGLyyIloSFXIbljxB0b9GrI2kaU41D2+z+tWEk6x489SrhGNQrH7Gso LtpaToken2:jiF2h0WgMW2KlBS0Wf5wJvVziyZ8CR7HXvPedw/vVqLAbY6DLINVaCNS4UiEwDtJxVIVGIGP3XfqIY5DKOkTVxmeRRJBbEZCfqt0VYWLPWuh00glGNsDZDP5FH2+1HTBek/VhqQRl8K1vF3l5ZWUkamFQDVNlazMEG6GaamugenHDyyDwM7WPRTEzy1cFwRZvN7OAJqJy71DodO7ZSEqT4ad5SUdoc6AoOrEEXR2iEsiSj29+5SFOYe5OmeYZJeqsj2ac6bmL278pZsX1rx38LI9ncQUHg/rhCVHxuRrCrxy95Dtg+r7Z2S8zWfwMqSapqsApqlhKp+FJyVWqb3jnLjWUj+TeO3SOU0TYXiAoCznmyu6oRlq1FA4WVtaw34Pro52sv6FoX7ewPvFo6MpXwK9hiHuDMBJA+jJFSMr6gHa4d6/miQFtynLiLT+QyYl1+d9EJwZ16abq2TJCYR96g2Wl5PAUoR6iu4kMDghTQy3bKd1nfSF+Aink5c9WxDwZW3HUzXqtttcimGyrmi/+BE6oLj/oze3nsro/oFNVzL4/R6P10qEvD8bIYiOMQHgla1STjqJPXyZA+OrPYNGjDOVeOonBggmlbjmm7Nm9dk"
工作WAS的http_access.log示例:
ADDRESS_IP - - [06/Aug/2015:12:05:41 +0200] "POST ADDRESS HTTP/1.1" 200 - "-" "Java/1.7.0_60" "-"
ADDRESS_IP - - [06/Aug/2015:12:05:42 +0200] "POST ADDRESS HTTP/1.1" 200 - "-" "Java/1.7.0_60" "null: LtpaToken:nu4weYnVv5SyLBt94EdI/8hDq2Rcb/Qw9VRiMOmmtcVmsnLq6zId1iIgLHt0gciG2LlztUo9jgdG7sM3v2NwZ2IPiXamBJ3mNat1D9ZEcoTIqXfENnEN4k+Zr6SpN+PUxiMGQrSHZXWSJfkZ5fyUpxhvCyLBxdOJ8qIV1HRiFjzK/07J/0At4uI8Xj9okOnAjqB3snsRd2NYKArSZsiFbqC6mN7F9AR9dlzP10BrO1TOmIorfp8DSiJnr1sUZHlJjepE/vxlKdyaHWFsVQRrlkp3uL+oedT+ LtpaToken2:XVFROEeE5PBV5zLAwKVb2YFzZzKN2JJG7sJ2yFBMENl6hVewbiBjaAhdRI0vtsB18UHG24IQbKWUc6khnN6YqbHOCXocKQkgpSCMrvmi15TD7CT0a1k7dir4Y9/x9syOGLyeZ0/a134oB0Zc9neSntO8E1tb3SzvDnbsYRRaswGva+c2Ph5sbaXVMWUjou6IFHNcPguV2KmyrcWwH0b0xGuBfAbuN0L6ec1DNfprFLoQYZ3GaBDi7o+fRuhQBF1p1oU4o/PrtltbYd8GMTTp7SAdLCzaAULiiXRknz8i8qqVZhZvYwy5B0sRNCGpkYV4m/C8s8W54suvebuqJkKpupTJj4YurucKbQ36kxDT4sSe0TlZTBX5JjgFVYS6DCEZNthz3Kq3M+grgR5mYlol9IYdwkx6pYRd7k6RbaaDNzFTaoKwWdYFBV0hQLmoRxr/tzvdU/ob7gS0NzuM7pQDVV4ou9jYRRBVEp+NoIN9eqrXiSNhTHL1A/TFv8ZJq3iwph/kMltxWf4JOKxYEYZPLr5szwL56K81CwacW3lD+gidIBl7RBSwXzEslB8LpDbGIv1EVZWBTc3bRh4aVXuYQY5fV4TDazOdfxKusJBHCN7wNzBKK3c06mYXpCvZILgs"
trace.log(我已经删除了私人数据和一些不重要的行):
[8/6/15 16:17:48:475 CEST] 00000036 TrustAssociat 2 com.ibm.ws.security.spnego.TrustAssociationInterceptorImpl negotiateValidateandEstablishTrust Authenticated user: ___USER___ Subject: Subject:
Principal: USER@DOMAIN
Private Credential:
(...)
[8/6/15 16:17:48:475 CEST] 00000036 TrustAssociat < com.ibm.ws.security.spnego.TrustAssociationInterceptorImpl negotiateValidateandEstablishTrust RETURN com.ibm.wsspi.security.tai.TAIResult@21c721c7
(...)
[8/6/15 16:17:48:878 CEST] 00000037 FfdcProvider W com.ibm.ws.ffdc.impl.FfdcProvider logIncident FFDC1003I: FFDC Incident emitted on /home/wasadm/IBM/WebSphere/AppServer/profiles/AppSrv01/logs/ffdc/server1_6150615_15.08.06_16.17.48.8658543509569228235853.txt com.ibm.ws.security.web.WebAuthenticator.handleSSO 1257
[8/6/15 16:17:48:878 CEST] 00000037 TrustAssociat > com.ibm.ws.security.spnego.TrustAssociationInterceptorImpl getInstance ENTRY domainID: global
(...)
[8/6/15 16:17:48:887 CEST] 00000037 SpnegoHandler 2 com.ibm.ws.security.spnego.SpnegoHandler handleRequest No Authorization header found, sending **401** challenge to the client