0

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 に記録しました。

4

1 に答える 1