【发布时间】:2014-04-30 19:09:41
【问题描述】:
我们有几个 webapps 需要 ESAPI java 库提供的功能。我和我的同事处于两难境地,是直接使用 ESAPI 从而创建对 ESAPI 的直接依赖,还是创建一个抽象调用 ESAPI 的接口。
通过抽象对库的依赖,我们可以灵活地在需要时轻松切换到其他选项。除此之外,我们还可以定义更符合我们需求的自己的界面。
但是当我们在接口中识别出我们需要的方法时,它看起来越来越像 ESAPI 本身中使用的接口。 ESAPI 本身就是一个门面,具有 Validator、Encryptor 和其他的可配置实现。
ESAPI 是否足够成熟,可以安全地直接依赖它,还是坚持使用这个包装器是否明智?
【问题讨论】:
-
是的,这确实是一个基于意见的问题。有一些关于 ESAPI 需要去哪里的讨论,我个人认为它试图做太多......而不是一站式商店,他们应该将它分解成更小的库,然后根据需要导入。我不知道他们定义的接口可能会发生很大变化(不像编码/解码会发生很大变化),但如果我要开始一种全新的方法,我会像你正在做的那样使用适配器模式。 OWASP 不久前剥夺了 ESAPI 的旗舰地位。
-
从 esapi 贡献者那里得到答案。由于缺乏志愿者,进展似乎停滞不前。 3.0 可能与 2.0 大不相同。将坚持使用包装。
标签: java maintainability decoupling esapi