您好,我们正在使用 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 不幸的是,由于第 3 方集成,我们有 javascript 寻找未加密形式的 url 参数,当然它无法解密 krypto 参数。
这种行为是根据文档:
将输入参数展平为 HttpRedirectView 的查询字符串 传递给重定向视图命令的所有输入参数都被展平 到 URL 重定向的查询字符串中。例如,假设输入 重定向视图命令包含以下属性: URL = "我的视图?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=encrypted_value_of“p1=v1&p2=v2&ip1=iv1&ip2=iv2&op1=ov1&op2=ov2”
现在的问题是:如何防止这些 url 参数被加密?