구체적인 해결책이없는 유사한 스레드가 있으며 새 솔루션을 시작하는 것이 더 좋습니다.단일 사용자 웹 응용 프로그램을 여러 사용자로 확장하는 방법
웹 애플리케이션이 RESIN에서 호스팅되는 상황에 직면하고 있습니다 (Tomcat과 비슷합니다). 지금까지 저는 db4o를 사용하여 앱을 개발했습니다. 저는 혼자 였기 때문에 가능한 빨리 앱을 완성해야했습니다. 사용자를위한 DB와 단일 사용자 (나)를위한 앱 데이터를위한 DB가 있습니다. 이제 앱이 거의 완료되었습니다. done 나는 postgresql로 옮길려고하고 있는데, 비록 기밀 데이터를 다루기 때문에 DB가 여러개의 응용 프로그램에 대한 데이터를 보유하고 있어도 사용자 당 DB에 대해 심각하게 생각하고 있습니다. 분리 된 DB를 사용하는 것이 최선일 것입니다 (보안 현명). 브라우저에 ID와 같은 사용자 데이터를 저장하는 기본 세션 관리가 이미 있습니다. 하지만 어떻게 여러 사용자/db 확장 할 수 있습니다 궁금 해서요.
문맥 데이터를 유지하는 리스너 클래스를 확장하여 올바른 db 객체를 앱 인스턴스에 전달하거나 그 목적을 위해 필터를 설정할 수도 있습니다.
. UPDATE.
저는 현재 갖고있는 것에 대해 좀 더 자세히 설명하고자합니다.
제가있다 : 일부 개체에 대한 참조를 보유
콘텍스트 이들 개체 중 하나가 사용자 DB와 패스워드를 검사에 연결된다.
/login에 POST 할 로그인 양식이있는 "/"에 매핑 된 프리젠 테이션 서블릿 (HttpServlet).
"/ login"에 매핑 된 로그인 서블릿 (HttpServlet)은 컨텍스트에있는 각각의 객체에 대해 httpSession 사용자 비밀번호 속성을 검사합니다. 일치하는 경우 USERID를 보유하는 httpSession 속성을 설정하고 사용자를 /index-debug.html에있는 앱 자체는 로그인 폼이있는 새 html 페이지를 다시 만듭니다.
/index-debug.html에 매핑 된 인증 및 인증 필터는 USERID 속성에 대한 httpServletRequest를 확인하고 사용자가 앱에 액세스 할 권한이 있는지 여부를 확인합니다.
마지막으로 webApp 사용자 데이터 DB에 대한 읽기 및 쓰기를 담당하는 DB bean입니다. 웹 애플리케이션 CP2JAVAWS에서 특정 메소드를 실행하면 해당 메소드가 빈의 해당 메소드와 일치합니다. 문제는이 빈에 정적 데이터베이스가 있으며 지금까지는 한 명의 사용자 만 허용한다는 것입니다.
나는이 DB 빈이 사용자 당 한 번 인스턴스화하고 현재 로깅 된 사용자에 따라 해당 데이터를 읽고 저장할 수 있도록하고 싶습니다.
사용자 당 하나의 DB에 대한 아이디어는 현재 폐기되었지만 정확히 어떻게 제거했는지는 알 수 없습니다.
대단히 고마워, ryan1234가 만든 대답을 기본적으로 보완한다. 둘 다 고마워. – Jigzat