少し実験した後、レジンがDigestCredentialsの代わりにHttpDigestCredentialsオブジェクトを受け取るAbstractAuthenticator実装の「認証」メソッドを呼び出していることがわかりました(それぞれがいつ呼び出されるかはまだわかりません)問題は、HttpDigestCredentialsが呼び出されないことですgetDigest()メソッドがありますが、代わりに、ハッシュを返さない、または少なくとも同等のメソッドを返さないgetResponse()メソッドがあります。
[[user:realmassword] [nonce] [method:uri]]の独自のハッシュを作成した後、ハッシュは大きく異なります。実際、getResponse()はダイジェストを返さないが、サーバーがブラウザーに応答する可能性があると思います。
とにかくこれは私のデバッグログです:
USER:user:PASSWORD:password:REALM:resin:METHOD:GET:URI/appe/appe.html:NONCE:HsJzN+j+GQD:CNONCE:b1ad4fa1ba857cac88c202e64528bc0c:CLIENTDIGEST:[B@5dcd8bf7:SERVERDIGEST:I4DkRCh21YG2Mk14iTe+hg==
両方の想定されるクライアントナンスがサーバーで生成されたナンスとは非常に異なることがわかるように、実際、クライアントナンスはMD5ハッシュのようには見えません。
誰かが前にこれをしてくれませんか?HttpDigestCredentialsに不足しているものはありますか?私はダイジェストがほとんど使用されていないことを知っています。
SSLについては知っていますが、SSL証明書をまだ持っていないので、「SSLを使ってみませんか」と言わないでください。;)
アップデート:
正しいことかどうかはわかりませんが、Resinがハッシュにbase64形式を使用する前に読んだように、apache commons-codec-1.6を使用してencodeBase64String()メソッドを使用しましたが、ハッシュは同じように見えますが、同じではありません。
私は両方を試しましたpasswordDigest.getPasswordDigest(a1+':'+nonce+':'+a2); passwordDigest.getPasswordDigest(a1+':'+nonce+':'+ncount+':'+cnonce+':'+qop+':'+a2);
そしてそれらのどれもHttpDigestCredentialsからのものと同じハッシュを与えません。