在impex导入期间未执行拦截器(impex.legacy.mode为false)

2020-08-31 13:29发布

点击此处---> 群内免费提供SAP练习系统(在群公告中)加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)大家好, 我们有一个要求,我们...

         点击此处--->   EasySAP.com群内免费提供SAP练习系统(在群公告中)

加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)


大家好,

我们有一个要求,我们必须使用第三方引擎的加密密钥并使用该密钥对信用卡号进行加密。 我们已禁用OOB信用卡号加密,如以下链接中所述 https://wiki.hybris.com/display/forum/INFO+How+to+disable+disable+encryption+of+creditcard+numbers

要加密信用卡号,我们在CreditCardPaymenInfo项目类型上编写了PrepareInterceptor。 该拦截器将从第三方引擎加密信用卡号。 同样,我们创建了一个LoadInterceptor,它将解密来自第三方引擎的信用卡号。

customextension-spring.xml文件中的拦截器豆:

  <属性名称=" interceptor" ref =" creditCardPaymentInfoPrepareInterceptor"/>
  
 
 

 

  
  
 

  

从店面(结帐流程)和hmc创建/查看信用卡时,拦截器被调用。

问题::当我们为CreditCardPaymenInfo导入impex时,拦截器没有被调用,因此,信用卡号被保存为数据库中的纯文本格式。 此外,impex.legacy.mode为false,但问题仍然存在。

9条回答
bbpeas
2020-08-31 13:51

完全符合我的想法,如果您在core-items.xml文件中搜索CreditCardPaymentInfo,您将意识到在项目类型定义上,generate修饰符设置为' 假",父类为PaymentInfo。 这意味着jalo类将为PaymentInfo生成,而不会为CreditCardPaymentInfo生成,


如果您使用decompiler进行深入研究,则可以看到CreditCardPaymentInfo作为静态公共类。 Impex Framework的复杂性对我来说仍然是个谜,不确定为什么jalo层仍然如此紧密地联系在一起。 如果有人可以详细解释我们,那就太好了。 无论如何,回到解决方案

  • 编写您自己的CreditCardPaymentInfo版本并保持generate Modify = true
  • 定义UNFCreditCardPaymentInfo扩展CreditCartPaymentInfo并生成= true
  • 在公共位置编写逻辑,然后从控制器代码和翻译器代码中调用
  • 修改core-items.xml文件,不好的主意

一周热门 更多>