繁体   English   中英

防止IBM Commerce Server 6中的URL参数加密(加密)

[英]Prevent Encryption (Krypto) Of Url Paramaters in IBM Commerce Server 6

嗨,我们正在使用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参数。

这种行为是根据文档

\n 将输入参数展平为HttpRedirectView的查询字符串\n\n 展平传递给重定向视图命令的所有输入参数\n 到用于URL重定向的查询字符串中。  例如,假设输入\n 重定向视图命令包含以下属性:\n URL =“ MyView?p1 = v1&p2 = v2”;\n ip1 =“ iv1”;  //输入到原始控制器命令\n ip2 =“ iv2”;  //输入原始控制器命令\n op1 =“ ov1”;\n op2 =“ ov2”;\n 根据前面的输入参数,最终URL为\n MyView?p1 = v1&p2 = v2&ip1 = iv1&ip2 = iv2&op1 = ov1&op2 = ov2\n 请注意,如果该命令使用SSL,则参数将被加密\n 最终网址显示为\n MyView?krypto = encrypted_value_of“ p1 = v1&p2 = v2&ip1 = iv1&ip2 = iv2&op1 = ov1&op2 = ov2”\n

现在的问题是:如何防止这些url参数被加密?

加密的参数由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节点的链接,该节点讨论了出于缓存目的执行此操作。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM