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