2011-04-05 1 views
3

웹 상점 용 Tomcat 서버가 있고 로그인 할 때 다른 (보안) 서버로 사용자를 전송해야합니다. 자세한 설명은 다음과 같습니다.한 Tomcat 서버에서 다른 Tomcat 서버로 세션을 전송하는 방법은 무엇입니까?

1) 두 개의 Tomcat 서버가 있습니다. '일반'(HTTP) 및 하나의 보안 (HTTPS)

2) 사용자는 처음에 그들이 로그인하면

3), 우리는 데이터를 자신의 로그를 얻을 필요가 정규 서버뿐만 아니라 정보에 대한 방문 그들이 현재 방문한 (또는 보려고 시도한) 페이지를 보안 서버로 전달하고 실제 로그인을 수행합니다. 예를 들어 로그인하지 않은 사용자는 제품 목록을보고 '구입'을 클릭하면 사용자에게 로그인하라는 팝업이 표시됩니다. 사용자는 자신의 자격 증명을 입력하고 구매할 제품에 대한 정보는 물론 보안 서버로 전달됩니다. 보안 서버는 다음을 수신 로그인을 수행하고

방법이 작업을 수행 할 수 사용자에게 요청 된 제품을 표시? 다음에주의하십시오 :

1) 우리는 쿠키와 함께 그 일을 시도했지만, 우리가 그런 식으로

2) 데이터베이스에 세션을 지속하기 후를 가져 보안 서버를 갖는 가지 않기로 결정했습니다

는 다른 방법이없는 옵션도 있습니까? 우리는 HTTP의 POST 매개 변수로 통과 한 후 객체를 생성하고 생각했다, 그러나 나는 이것이 (내가 그것을 마무리 작업을 주어진 것) 할 수있는 방법을 모르겠어요.

그것은 가치가 무엇인지에 대한

, 우리가 사용하는 기술은 Tomcat 서버, 개찰구, 봄, iBatis를와 MySQL이다. 사전 :

+0

내가 물어 봐도 될까요? 여러 웹 서버에서 사용자 세션을 추적해야하는 모든 사이트에서 쿠키를 사용했습니다. 사용자의 고유 ID를 사용하여 쿠키를 설정하고 쿠키가 있으면 db에 사용자 세션을 찾습니다. 두 번째 노트가 죽이는 곳. – Speck

+0

두 번째 메모에 문제가 있습니다. 우리는 데이터베이스를 사용하고 싶지 않으므로 사용자의 사용자 이름, 암호 및 쿠키에서 클릭 한 내용 (또는 그 이상)에 대한 정보를 저장해야합니다. 사용자 이름과 암호를 쿠키로 유지하는 것은 보안 상 위험 할 수 있습니다. – Zoolok

+2

쿠키에 사용자 이름 암호를 보관하지 마십시오.db에 사용자의 IP 주소와 사용자 계정이 모두 연결된 쿠키에 고유 세션 ID를 입력하십시오. 또한 그의 브라우저 세션으로 쿠키가 만료되도록하십시오. – Speck

답변

0

난 당신이 원하는 무엇의 요점을 얻고 있지만 "팝업"을 가질 수 있다면 확실하지의

덕분에 보호 된 URL에 보안 응용 프로그램에서 제공되는 페이지 수. 그러면 보안 서버에서 인증이 수행되고 거기에서 이동할 수 있습니다. 보안되지 않은 제품 페이지 www.domain.com/browse/id1에있는 경우 예를 들어, 버튼은 제품을 송신하는 동안 인증을 일으키는 secure.domain.com/buy/id1에 팝업을 열 것 "구매" URL에있는 id.

+0

도와 주셔서 감사합니다. 사람들 : Wicket에 RedirectPage가 있다는 것을 발견했습니다. 생성자에 보안 서버 URL을 전달한 다음 redirectToInterceptPage (redirectPage)를 수행하여이 서버를 만들지 만 문제는 내가하는 모든 매개 변수/속성을 redirectPage에 추가 할 수 없다는 것입니다. RequestParameters도 PageParameters도 redirectPage에 전달할 수없고 보안 서버에 전달할 수 없습니다 (모두 null이됩니다). – Zoolok

2

서로 다른 톰캣 인스턴스 사이의 세션을 공유하려는 경우, 당신이 그들을 세션 복제 클러스터로 작동하도록 구성 할 수 있습니다 : 당신이 아파치 HTTP 서버 부하 분산 장치로 작동하도록 구성 할 수 있습니다, 그리고 http://tomcat.apache.org/tomcat-7.0-doc/cluster-howto.html

, HTTP 요청이 서버 1로 이동하고 HTTPS 요청이 서버 2로 이동하는지 확인하십시오.

그러나 HTTP 및 HTTPS를 모두 처리하도록 구성된 하나의 Tomcat 인스턴스 (또는 N 개의 동일한 인스턴스)를 가질 수 있으며 보안 액세스 표준 (web.xml의 ...<transport-guarantee>CONFIDENTIAL</transport-guarantee>...) 또는 프레임 워크 특정 구성. 쿠키에 대한 결정했습니다 왜

+0

안녕하세요, 다시 한번 :) 더 일찍 답장을 보내지 않아서 미안 해요, 조금 바빴습니다. 추가해야 할 사항은 다음과 같습니다. 비보안 서버와 보안 서버가 서로 다른 도메인에 있기 때문에 쿠키를 사용할 수 없습니다. Speck의 아이디어는 내가 가장 좋아하는 것이었고 구현하기 시작했지만 쿠키를 사용하기 때문에 사용할 수 없다. 따라서 웹 상점의 로그인 양식을 설정하여 보안 서버에 직접 내용을 제출하도록 노력할 것입니다. 솔직히 말해서, 어떻게해야할지 모르겠습니다. 내가 지금까지 시도한 것은 RequestCycle에 필요한 모든 매개 변수를 "주입"하는 것이 었습니다 ... – Zoolok

+0

...이 경우 RedirectRequestTarget을 확장하고 요청 매개 변수를 요청 자체에 삽입하려고했습니다. 또한 응답에 쿠키 만 추가 할 수 있음을 알았습니다. 어쨌든 이야기를 짧게 줄이기 위해 보안 서버에 도달하면 매개 변수가 모두 손실됩니다. 누구든지 이것에 대한 생각이 있다면, 다시 듣고 싶습니다 :) – Zoolok