2011-09-08 4 views
1

Java/GWT/GAE 기반 서블릿을 테스트하고 있습니다. 내 서블릿 중 하나는 일반적으로 RPC를 통해 클라이언트에서 호출되는 데이터 저장소 (CRUD 유형 메서드)에 액세스합니다.gwt/gae에서 서블릿과 다른 사용자로 로그 아웃/로그인

흐름은 다음과 같이 작동합니다. testServlet1을 실행합니다. 로그인하지 않으면 로그인 URL이 생성되어 사용자에게 반환됩니다. 나는 그것을 클릭한다. (이제 로그인했습니다.)

testServlet1이 실행되어 DAO를 테스트하고 최종 데이터베이스 상태를 확인합니다.

testServlet2는 이제 로그인 한 다른 사용자를 사용하여 데이터 저장소에 개체를 추가하여 user1과 user2간에 아무런 간섭이 없도록합니다.

내 질문은 : 수동으로 로그 아웃/로그인 링크를 클릭하거나 클라이언트 측에서 자동화하지 않고 프로그래밍 방식으로 서블릿 내에서 로그인 한 사용자를 어떻게 전환 할 수 있습니까?

여기에는 api가없는 것 같습니다.

누구든지이 작업을 수행합니까?

감사 롭

+0

통합 테스트에는 무엇이 사용됩니까? 셀렌? 모든 테스트에 대해 새로운 클린 세션을 시작하지 않습니까? –

+0

아니요, Selenium을 사용하지 않습니다. 나는 서블릿에서 다른 서블릿으로 호출하고있다. 로그인은 일반적인 GAE 연합 로그인 서블릿에 의해 처리됩니다. 로그인 및 로그 아웃 URL을 생성하고 사용자가 액세스하여 로그인 및 로그 아웃합니다. 결국, 다른 사용자로 테스트를 계속해야 할 때 내 서블릿에서이 URL을 호출합니다. –

답변

1

모든 요청은 자신의 인증을 수행해야합니다. filters을 사용하면이 문제를 효과적으로 해결할 수 있습니다. 기본적으로 모든 요청을 차단하고 결국 의도 된 서블릿에 요청을 전달하기 전에 임의의 계산을 수행 할 수 있습니다. 필터를 만들면 "사용자가 로그인하지 않았 으면 로그인 화면을 반환하고, 그렇지 않으면 로그인 한 사용자를 매개 변수로 사용하여 의도 한대로 서블릿으로 이동하십시오."라고 말할 수 있습니다.

+0

예, 각 요청은 자체 인증입니다. 로그인/로그 아웃이 작동 중입니다. URL을 사용하는 것보다 서블릿이 사용할 수있는 로그인/로그 아웃을위한 내부 API가 있는지 궁금했습니다. 지금 URL을 사용하고 있습니다. –

+0

죄송합니다. 질문을 이해할 수 없습니다. 사용자 서비스는 현재 로그인 한 사용자를 반환합니다. 프로그래밍 방식으로 누군가를 기록 할 수는 없습니다. –

+0

예, 그러면 서버의 운전 테스트 프로그램이 어려워집니다. 클라이언트에서 로그인 한 테스트를 실행해야합니다. 프로덕션 중에 실행되는 것이 아니라 시스템 테스트 중에 실행된다는 점에 유의하십시오. –

1

API가 특별히없는 것 같아서 간단히 로그인 및 로그 아웃 URL을 호출합니다. gae는 내 서블릿에서 직접 제공합니다.

관련 문제