- 需要以某种方式同步访问DAO(及其调用者)中的共享状态,以实现线程安全。
- 过时的数据可能导致错误的访问决策。由于这可能与安全性有关,因此您的代码将需要防弹。特别是在发生故障时,它必须可靠地工作。这使任何基于通知的方案都不可靠-如果通知丢失了怎么办?
- 凭据在内存中的寿命会延长。仍然可以通过散列凭据来实现机密性(坦率地说,如果有人可以读取您的应用程序的内存,则您还有许多其他问题)。操纵内存中的密码要求攻击者有权访问堆内存,如果可以的话,无论如何您都将丢失,因为攻击者可以轻松地更改用于读取帐户的数据库连接。
就是说,对于高流量的Web服务,缓存凭据听起来像是一个明智的主意,但这并不是完全无关紧要的。
编辑:不,Web容器不同步线程。并发请求将由并发线程处理,并且如果这些请求恰巧读写相同的数据,则可能导致数据争用。例如,一个线程可以在用新信息更新帐户列表时读取帐户列表,从而看到不完整的列表。



