2013-02-06 3 views
0

자바 웹 응용 프로그램에서 쿠키, 세션 및 인증을 이해하는 데 약간의 문제가 있습니다.쿠키, Java의 세션 - 웹 응용

기본적으로 내 서블릿이 요청 객체를 제공하는 객체에 인증 클래스가 있으며 사용자가 로그인했는지 여부에 따라 true 또는 false를 반환합니다.

그래서 사용자가 로그인 할 때마다 나는 큰 임의의 문자열을 생성 할 것이고 response.cookie에 값으로주고 세션 객체에도 속성으로 부여 할 것입니다. 맞습니까? 그 사용자가 다른 요청을 할 때, 나는 방금 보낸 쿠키를 세션의 쿠키와 비교하여 동일한지를 확인한 다음 인증을 받게 될 것입니다.

아마도 내가 여기에 잘못된 것을 말하기 때문에 사용자의 인증이 위의 과정이거나 내가 잘못 본 경우 누군가가 나를 설명하기를 원할 것입니다.

답변

0

간단한 방법은 세션 (또는 사용자 개체 자체) 사용자가 인증에 플래그를 설정하는 것입니다 감사합니다. 쿠키를 사용하여 아무 것도 할 필요가 없습니다. 컨테이너가 쿠키를 사용하여 세션을 유지 관리 할 수있게하십시오. 세션 자체에 관심이 있습니다.

사용자가 로그인 할 때까지 세션을 만들지 않도록 코드를 최적화하십시오.하지만 사용자가 로그인 할 때까지 쇼핑 카트 내용과 같은 다른 정보를 저장하지 못할 수도 있습니다. 로그인하지 않았습니다. 작은 메모리 절감으로 인한 번거 로움이 없습니다.

프레임 워크를 사용하는 것이 좋습니다 - JAAS는 너무 추상적이거나 복잡합니다. Shiro

+0

그게 전부입니까? 그냥 깃발? 쿠키가 아닌가요? 안전한가요? 그래서이 방법은 사용자를 기록하는 데 최적입니다. –

+1

예. 앱 서버는 세션 ID를 쿠키에 기록하고이를 사용하여 올바른 세션 인스턴스를 사용자의 http 요청을 처리하는 스레드에 연관시킵니다. 세션 데이터는 최종 사용자가 임의로 변경할 수는 없지만 쿠키는 가능합니다. 세션은 서버에만 유지됩니다. 그것은 결코 클라이언트에게 보내지지 않습니다. –

0

JAAS와 같은 보안 프레임 워크를 처리하거나 세션에 데이터를 저장하십시오. 쿠키에 저장하는 것은 매우 위험하며 모든 종류의 공격에 취약합니다. 이 부분을 참조하십시오 similar question

쿠키는 클라이언트 측에 저장되며 세션은 서버에서 관리되므로 더 안전합니다. JAAS 또는 다른 프레임 워크를 사용하면보다 정교한 인증/권한 부여 옵션을 얻을 수 있습니다.

+0

프레임 워크를 사용할 수 없습니다. 그래서 나는 단지 세션 객체에 부울 변수를 가질 수 있습니다. 그러면 사용자가 로그인했는지 모든 요청에 ​​대해 알려줄 것입니까? 좋은 기술인가요? –