有一个类似的线程没有具体的解决方案,我认为最好开始一个新的。
我面临的情况是,我在 RESIN 中托管了一个 WebApp(就像我猜的 Tomcat)。到目前为止,我一直在使用 db4o 开发应用程序,因为我一个人,我需要尽快完成应用程序,我有一个用于用户的数据库和另一个用于单个用户(我)的应用程序数据的数据库,现在应用程序几乎完成我将要迁移到 postgresql 并且我正在认真考虑每个用户的数据库,即使数据库保存多个应用程序的数据,因为它将处理有点机密的数据,我认为拥有单独的数据库将是最好的(安全方面)。已经有一个基本的会话管理,可以在浏览器中存储用户数据,如 ID。但我想知道如何将它扩展到多个用户/数据库。
我正在考虑扩展保存上下文数据的侦听器类,以将正确的 db 对象传递给应用程序实例,或者为此目的设置一个过滤器。
。更新。
我想更深入地了解我目前拥有的东西。
我有:
包含对某些对象的引用的上下文,其中一个对象连接到数据库并检查用户和密码。
Presentation servlet (HttpServlet) 映射到具有 POST 到 /login 的登录表单的“/”。
登录 servlet (HttpServlet) 映射到“/login”,它检查 httpSession 用户密码属性与位于上下文中的相应对象是否匹配,如果匹配,则设置一个包含 USERID 的 httpSession 属性并将用户重定向到应用程序本身所在的位置在 /index-debug.html 如果没有,它会再次创建一个带有登录表单的新 html 页面。
映射到 /index-debug.html 的授权和身份验证过滤器验证 USERID 属性的 httpServletRequest 并检查用户是否有权访问应用程序。
最后是一个负责读取和写入 webApp 用户数据 DB 的 DB bean。当我在 webApp CP2JAVAWS 中执行某个方法时,将该方法与 bean 中的相应方法相匹配,问题是这个 bean 有一个静态数据库,到目前为止它只允许一个用户。
我想做的是以某种方式允许这个 DB bean 为每个用户实例化一次,并根据当前登录的用户读取和存储相应的数据。
每个用户一个数据库的想法目前已被放弃,但我不知道如何实现这一点。