我在项目中使用JCaptcha,并且需要无法直接使用的行为。因此我查看了源代码,看是否可以扩展它以获取所需内容,并发现我使用的商店实现(MapCaptchaStore)使用HashMap作为商店...而没有同步。
我知道JCaptcha不能在集群环境中工作,这不是我的情况,但是同时有多个客户端又如何呢?商店实现是外部同步的还是我应该自己滚动并确保正确同步?
TIA!
最佳答案
根据MapCaptchaStore的阅读来源判断,此类不是线程安全的。不过,我不是100%愿意支持这个答案,因为同步可能会在更高级别发生(例如,对单个MapCaptchaStore实例的所有访问都可能在另一个对象上同步)。
您可以使用CaptchaStore的另一种实现。例如,EhcacheCaptchaStore