リクエスト URL を傍受して変更し、正しい URL にリンクする際に問題に直面しています。ストライプ フレームワークを使用しており、ユーザーを正しいサブドメインにリダイレクトしたいと考えています。たとえば。ユーザーが abc.sitename.com に属し、リクエストが xyz.sitename.com から来た場合、すべてのリクエスト投稿とともに abc.sitename.com にリダイレクトする必要があります。getparameter の場合、ライフサイクル解決の実行前に、リクエスト URL とリクエスト クエリを取得し、カスタム インターセプト クラスからユーザーをリダイレクトするだけでこれを実行しました。ただし、リダイレクトであるため、すべての投稿パラメーターがフラッシュされます。別の解決策は解決を転送することでしたが、コンテキスト内でユーザーを取得できるため、次のようにオーバーライドする必要があります。
resolution = new OnwardResolution<ForwardResolution>(reponseUrl) {
@Override
public void execute(HttpServletRequest request,
HttpServletResponse response) throws Exception {
request = ctx.getRequest();
response = ctx.getResponse();
String path = reponseUrl; //getUrl(request.getLocale());
// Set event name as a request attribute
String oldEvent = (String) request.getAttribute(StripesConstants.REQ_ATTR_EVENT_NAME);
//request.setAttribute(StripesConstants.REQ_ATTR_EVENT_NAME, event);
log.info("check: {}", path);
// Revert event name to its original value
request.setAttribute(StripesConstants.REQ_ATTR_EVENT_NAME, oldEvent);
// Figure out if we're inside an include, and use an include instead of a forward
RequestDispatcher dispatcher = request.getRequestDispatcher(path);
//request.getRequestDispatcher(path).forward(request, response);
dispatcher.forward(request, response);
}
};
ただし、完全な URL を呼び出す必要があるのに対し、アプリケーション コンテキスト パスで呼び出しています。別の解決策として、リダイレクト解決を使用して includerequest パラメータを true に設定すると、ジョブは実行されますが、すべてのリクエスト パラメータが URL に配置されるため、受け入れられなくなります。
リクエストのURLは、解決の実行前に変更する必要があります。その後は役に立たないので、試しました。HTTPSServeletRequest でリクエスト URL を設定する方法はありますか。
また、ActionBeanResolution 中に傍受しようとしました。このようなアクティビティを行うのに最適な場所です。私の主な問題は POST パラメータです。リダイレクトできません(フラッシュされるか、reuest パラメータを使用すると URL に表示されるため)。コンテキスト内の転送での転送解決。新しい URL に転送する方法があれば、それで問題ありません。
前もって感謝します。