0

こんにちは、IBM Commerce Severを使用しています。以下のようなコードを使用して、あるビューから別のビューに移動します。

protected void prepareResponse(){
...
String returnUrl = "www.example.com/aNewPage.jsp?aUrlParameter=123&anotherParameter=654"
...
StringBuffer sb = new StringBuffer(returnUrl);
sb.append("&storeId=").append(commandContext.getStoreId());
sb.append("&langId=-1");
responseProperties.put(ECConstants.EC_REDIRECTURL, sb.toString());
responseProperties.put(ECConstants.EC_VIEWTASKNAME, ECConstants.EC_GENERIC_REDIRECTVIEW);
}

最終的に到達するURLはwww.example.com/aNewPage.jsp?krypto=ABCDF0LotsOfRandomCharactersです。残念ながら、サードパーティの統合により、JavaScriptが暗号化されていない形式のURLパラメータを探しているため、kryptoパラメータを復号化できません。

この動作はドキュメントによるものです:

入力パラメータをHttpRedirectViewのクエリ文字列にフラット化する

リダイレクトビューコマンドに渡されるすべての入力パラメータはフラット化されます
URLリダイレクト用のクエリ文字列に変換します。たとえば、入力が
redirect viewコマンドには、次のプロパティが含まれています。
URL = "MyView?p1 = v1&p2 = v2";
ip1 = "iv1"; //元のコントローラーコマンドへの入力
ip2 = "iv2"; //元のコントローラコマンドへの入力
op1 = "ov1";
op2 = "ov2";
上記の入力パラメータに基づいて、最終的なURLは次のようになります。
MyView?p1 = v1&p2 = v2&ip1 = iv1&ip2 = iv2&op1 = ov1&op2 = ov2
コマンドがSSLを使用する場合、パラメーターは暗号化されることに注意してください
最終的なURLは次のように表示されます
MyView?krypto = encode_value_of“ p1 = v1&p2 = v2&ip1 = iv1&ip2 = iv2&op1 = ov1&op2 = ov2”

ここで質問:これらのURLパラメータが暗号化されないようにするにはどうすればよいですか?

4

1 に答える 1

0

暗号化されるパラメーターは、wc-server.xmlのNonEncryptedParametersノードによって制御されます。クリアテキストのままにしておきたいURLパラメータをそのノードに追加すると、暗号化されなくなります。

<NonEncryptedParameters display="false">
    <Parameter name="storeId"/>
    <Parameter name="langId"/>
    <Parameter name="catalogId"/>
    <Parameter name="categoryId"/>
    <Parameter name="productId"/>
</NonEncryptedParameters>

私はIBMのフォーラムで答えを見つけ、キャッシュの目的でこれを行うことについて説明しているNonEncryptedParametersノードの使用について詳しく説明しているリンクを見つけました。

于 2009-08-20T09:00:18.253 に答える