Запретить шифрование (Krypto) параметров URL в IBM Commerce Server 6 - PullRequest
0 голосов
/ 19 августа 2009

Привет, мы используем 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.

Это поведение согласно документации :

Flattening input parameters into a query string for HttpRedirectView

All input parameters that are passed to a redirect view command are flattened
into a query string for URL redirection. For example, suppose that the input
to the redirect view command contains the following properties:
URL = "MyView?p1=v1&p2=v2";
ip1 = "iv1"; // input to orginal controller command
ip2 = "iv2" ; // input to original controller command
op1 = "ov1";
op2 = "ov2";
Based upon the preceding input parameters, the final URL is
MyView?p1=v1&p2=v2&ip1=iv1&ip2=iv2&op1=ov1&op2=ov2
Note that if the command is to use SSL, then the parameters are encrypted
and the final URL appears as
MyView?krypto=encrypted_value_of“p1=v1&p2=v2&ip1=iv1&ip2=iv2&op1=ov1&op2=ov2”

Теперь вопрос: Как предотвратить шифрование этих параметров URL-адреса?

1 Ответ

0 голосов
/ 20 августа 2009

Зашифрованные параметры контролируются узлом NonEncryptedParameters в wc-server.xml. Добавление параметров URL, которые вы хотите оставить открытым текстом в этом узле, означает, что они не будут зашифрованы.

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

Я нашел ответ на форуме IBM и ссылку, объясняющую использование узла NonEncryptedParameters , в котором говорится об этом для целей кэширования.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...