2011-03-05 5 views
2

웹 사이트를 개발 중이며이 문제가 발생했습니다.이 웹 사이트에는 고객과 관리자라는 두 가지 유형의 사용자가 있습니다. 관리자는 모든 제품 (예 : 만료 된 제품 포함)을 볼 수 있지만 고객은 하위 집합 만 볼 수 있습니다.동일한 세션에서 다른 사용자 제한이 있습니다

고객 그룹 및 관리자 그룹에 대한 사용자 제한을 통해이를 달성하고 있습니다. 제품이 로그인 한 사용자에 따라 표시됩니다. 고객 그룹에 속한 경우 일련의 제한 사항이 적용됩니다. 관리자 그룹에 속하면 다른 제한 사항 세트가 적용됩니다.

이제 관리자는 고객 관점에서 웹 사이트를보고 싶어 할 수 있습니다. 동일한 세션에서 두 명의 사용자를 가질 수 없으므로 현재 관리자가 시스템에서 로그 아웃하고 고객 그룹에 사용자로 로그인합니다. 그러나 이러한 상황은 이상적이지 않습니다.

아무도 이런 상황을 접해 본 적이 없으며 어떻게 든 깨끗한 해결책이 있습니까? 기본 기술은 Tomcat 6.0.29를 기반으로하는 사용자 정의 서버입니다. 우리는 자바를 사용하여 개발 중입니다.

감사합니다 :) Krt_Malta

+0

그렇습니다. 우리는 스프링 보안을 사용하고 있습니다 만, 나는 당신이 언급하고있는이 방법을 알지 못합니다. 관리자를위한 스프링 보안으로 표준 사용자가 관리자로부터 로그 아웃하지 않고도 볼 수있는 것을 볼 수 있습니까? URL과 관련하여 웹 사이트는 아직 개발 단계에 있습니다. –

+0

제발 좀 더 자세한 정보를 찾을 수있는 링크를주세요. –

답변

0

나는 웹 개발 자신을 오히려 새로운 해요,하지만 당신은 사용자 중 하나 '고객'또는 인으로, '유형'라는 MySQL의 테이블에 필드가 없습니다 '관리자'? 누군가 로그인 할 때 시스템에서 사용자 유형을 확인할 수 있고 '고객'인 경우 시스템에서 고객의보기를 볼 수 있으며 'admin'인 경우 관리자의보기를 표시 할 수 있습니다.

또한 관리자가 admin 모드인지 고객 모드인지를 기본적으로 나타내는 'admin'유형 사용자에게만 적용되는 테이블에 다른 필드를 사용할 수 있습니다. '관리'보기의 모든 페이지에있는 버튼은이 새로운 필드에 대해 '관리자'와 '고객'간에 전환 할 수 있으며 표시되는보기를 결정할 수 있습니다.

찾고 계신 것이 맞습니까?

+0

귀하의 의견을 주셔서 감사합니다 Taimur :) 데이터베이스에 직접적으로 대처하는 것은 그리 좋지 않습니다. 귀하의 방법이 효과적 일지 모르지만 그렇게 배우지는 못합니다. 고마워요! –

3

@Krt_Malta : 스프링 보안을 사용하는 경우 관리자로 로그 아웃 한 다음 사용자로 다시 로그인 할 필요가 없습니다. 이를 달성하려면 SwitchUserFilter을 구성해야합니다 ... 사용자가 로그 아웃하지 않고 한 역할에서 다른 역할로 전환 할 수 있습니다. 원하는대로 수행 할 수 있습니다.

+0

이것은 아름답습니다! 감사합니다 :) –

+0

당신은 오신 것을 환영합니다. 이전 스프링 보안 릴리스는 SwitchUserProcessingFilter를 사용합니다. http://static.springsource.org/spring-security/site/docs/2.0.x/apidocs/org/springframework/security/ui/switchuser/SwitchUserProcessingFilter.html ... 기본적으로 같은 것이지만 필터 이름이 다릅니다. – limc

관련 문제