2012-05-03 5 views
1

로그인 ID 및 비밀번호가있는 애플리케이션이 있습니다. 이 응용 프로그램에서 특정 메뉴 항목을 onclick, 나는 또한 로그인 ID와 비밀 번호가 다른 응용 프로그램으로 리디렉션 싶어요.다른 애플리케이션으로 URL 리디렉션

나는 session.setattribute과 함께 이것을하려고하지만 아무데도 가고있다.

두 응용 프로그램 모두 Struts와 Hibernate를 사용하여 Java EE를 기반으로 구축됩니다. 누군가 그것을 할 수있는 방법을 제안 할 수 있습니까?

+1

이 두 응용 프로그램은 동일한 도메인을 가리 킵니까? –

+0

죄송합니다. 질문이 없습니다. –

+0

은이 두 앱이 동일한 도메인에 배포되었거나 상호 도메인 참조를 설정해야한다는 의미입니까? –

답변

0

응용 프로그램이 동일한 도메인에 배포되므로 응답에 인증 토큰이있는 쿠키를 추가하고 다른 응용 프로그램의 요청에서 인증 토큰 값을 읽을 수 있습니다.

내가 생각할 수있는 다른 옵션은 인증 된 값을 만들어 데이터베이스에 저장하고이 값을 요청 매개 변수로 사용하여 다른 응용 프로그램으로 리디렉션 요청을 보내는 것입니다. 다른 응용 프로그램은 auth 값을 읽고 데이터베이스로 유효성을 검사하여 사용자가 로그인 및 암호 페이지를 통과하게 할 수 있습니다.

0

두 개의 개별 응용 프로그램간에 HttpSession을 통해 직접 통신 할 수 없습니다. 당신이해야 할 일은이 대화를 위해 쿠키를 사용하는 것입니다.

너의 것이 가능한 복제본 인 것처럼 보이는 at this thread도보십시오.

+0

감사합니다. 작품을 urlredirect 것입니다? 쿠키는 충실하지 않습니다. –

+0

솔직히, 나는 이처럼 두 응용 프로그램 사이에서 의사 소통을 시도한 적이 없다. 이론적으로 URL 리디렉션을 수행하고 HttpRequest에서 특성을 설정하려고 할 수 있습니다. –

1

당신이 찾고있는 것은 "싱글 사인온 (SSO)"입니다.이 응용 프로그램은 서로 다른 응용 프로그램간에 사용자 자격 증명을 공유하므로 사용자는 한 번만 로그인하면됩니다.

이미 발견 했으므로 세션은 웹 응용 프로그램간에 공유되지 않습니다. 실제로 Java Servlet 사양에는이 조항이 없습니다. 사용중인 응용 프로그램 서버와 배포 아키텍처에 따라 number of proprietary solutions이 있습니다. 가장 간단한 예는 당신이 tomcat을 사용하고 있으며 모든 응용 프로그램이 동일한 가상 호스트와 영역에 배포됩니다 (동일한 도메인 사용). 그런 다음 single sign-on valve을 사용할 수 있습니다.

+0

url 리디렉션 및 설정 속성이 작동합니까? // –

+0

두 번째 애플리케이션에 URL 매개 변수로 사용자 ID와 비밀번호를 보내면 자동으로 사용자를 로그인합니까? 암호로 URL에 일반 텍스트로 포함 시키면 모든 액세스 로그에 기록됩니다. HTTP POST (양식 제출과 같은)로 리디렉션하는 것보다 낫습니다. – pap

+0

@pap : OP는 웹 응용 프로그램이 동일한 도메인에 있다고 말했습니다. 그래서 세션이 공유됩니다. – Ashwin