nexus oss のプラグインを作成しています。ここではresponse.sendRedirect
、次のようにしています。
String redirectUrl = url + "#nexus-search;gav"
+ "~net.collab.builds~teamforge~~~~"
+ "?" + req.getQueryString();
response.sendRedirect(response.encodeRedirectURL(redirectUrl));
形成されたリダイレクトURLは次のようになります
http://domain/nexus/index.html#nexus-search;gav~net.collab.builds~teamforge~~~~?sfId=prpl1106&sfLoginToken=A237421CF755183D177F5C020752040F&isLoggedIn=true
ここで行っているのは、古いリクエスト オブジェクトに存在していたクエリ文字列を追加し、新しい URL に追加してリダイレクトすることです。
しかし、私が理解できないのはredirecturl
、新しいリダイレクトされた URL がヒットしたときに、クエリ文字列を取得していないということです。ブレークポイントを置いたところ、リダイレクト URL が処理された後、クエリ文字列が null であることがわかりました。
疑問点は次のとおりです。
1)クエリ文字列が消えた原因は何ですか?
リダイレクトが正常に行われたかどうかを確認するために行ったrequest.getCookie
ところ、以前のリクエストと同じように Cookie が存在することがわかりました。それで、どこが間違っているのですか?新しい URL のクエリ文字列はどこに行きましたか?
2) リダイレクトされた URLparamterMap
には、古い要求オブジェクトにあったものも含まれますか。現在、paramterMap
リダイレクトされた URL も null です。古いリクエストオブジェクトから明示的に取得し、リダイレクト中に応答する必要があります。古いリクエスト オブジェクトのパラメータ マップをリダイレクト プロセスでも送信するにはどうすればよいですか。
デバッグの更新:
#nexus のような URL にアクセスすると、何か変なことが起こっています。
nexus ossの問題として jira に記録しました。