2017-12-22 5 views
0

Play 프레임 워크와 스칼라에서 웹 응용 프로그램 빌드가 있습니다. 이 응용 프로그램은 많은 키 공간이있는 Cassandra db에 연결됩니다. 나는 서로 다른 사용자를 가지며 각 사용자는 다른 단위에 속합니다 (우리는 각 단위를 키 공간으로 말할 수 있습니다). 내가 소매 및 제조 사용자 이름을 가지고 있다고 가정 해 봅시다. 소매로 사용자 이름으로 로그인하면 소매 키 공간에 연결하고 소매 키 공간에 속한 테이블의 데이터를 제공합니다. 사용자 이름으로 로그인하면 제조사에서 데이터를 제공합니다. 키 공간을 제조하는 테이블. 내가 소매 사용하여 크롬에서 로그인하는 경우 재생 프레임 워크에서 세션 처리

이제 문제는 소매 키 스페이스에서 나에게 데이터를 제공하고 난 파이어 폭스를 열고 로그인이 제조 를 사용하는 경우는 내가 돌아가서 지금 경우, 그 키 스페이스의 데이터를 키 스페이스를 제조 연결하고 검색입니다 크롬에 내가 소매점 사용자 이름 으로 로그인하고 모든 작업을 수행하면 소매 키 공간 대신 ​​제조 키 공간에서 데이터를 검색합니다. 응용 프로그램은 키 스페이스를 전환했습니다. 항상 최신 사용자 이름에 기능이 있습니다. 어떻게이 문제를 극복합니까?

답변

0

모든 사용자가 공유하는 유일한 키 공간 또는 사용자 당 하나 이상의 키 공간을 저장하는 데 싱글 톤 (전역 변수)을 사용하는 것처럼 들립니다. 대신에 각 사용자 세션 에 자체 키 공간 인을 제공하는 것이 좋습니다.

  • 쿠키
  • 통해 자바 웹 토큰 (JWT)
  • 통해 각 사용자 세션에 대한 항목이있는 HashMap의 싱글 비아 : 세션 당 사용자 키 스페이스 정보를 저장 및 복원하는 방법에는 여러 가지가 있습니다. 이것을 위해 부드러운 HashMap을 원할 것입니다. 따라서 오래된 항목은 자동 제거됩니다. Google 구아바는 훌륭한 구현 방법을 제공합니다.

Play Framework documentation에 대한 정보가 있습니다.

관련 문제