2014-08-28 1 views
1

여러 포털 Employer-portal, Employee-portal 및 Admin-portal이 있습니다. 세 포털은 모두 별도로 배포됩니다. 모든 포털은 spring-mvc 패턴을 따릅니다. 그리고 우리는 스프링 보안을 사용하고 로그인과 로그 아웃을 위해 openId를 사용했습니다.봄에 가장하는 방법

이제 우리는 관리자가 직원 및 고용주로 가장 할 수있는 관리자 - 포털 기능을 제공하여 직원을 대행합니다.

이전의 경험이있는 본문을 사용하여 작업 방법을 안내하거나, 좋은 지식을 얻기 위해 내가 읽을 수있는 좋은 기사를 공유 할 수 있습니까? 당신이 정말로 'RunAsManager에'를 원하는처럼

감사합니다, 귀하의 질문에서

+0

http://docs.spring.io/spring-security/site/docs/3.2.5.RELEASE/reference/htmlsingle/#runas – sodik

답변

0

, 그것은 소리가 나지 않는다.

"방법"과 같은 것을 사용하는 것이 하나의 방법 일 수 있습니다. 그 방법 자체는 물론 보안 수준이 필요하며 메서드 수준 보안 주석을 사용하는 것이 좋습니다. 인증 객체를 구축하고 그와 함께 보안 컨텍스트 (의 ThreadLocal)를 채우기 위해 당신이해야 할 일을 본질적으로

@PreAuthorize("hasRole('ROLE_ADMIN')") 

:

이를 위해, 당신은 같은 것을 사용할 수 있습니다. 같은

뭔가 :

Authentication other = createAuthentication(someUsername); //Implement this 
SecurityContextHolder.getContext().setAuthentication(other); 

나는이 방법의 매력을 볼 수 있지만, 물론, 그것은 좋은 생각할지 여부는 관리자가 사용자를 대신 할 수 있도록하는지에 달려 있습니다. 돈을 쓰는거야? 이메일을 보시겠습니까? 유스 케이스가 유효하다면 적어도 이런 종류의 작업을 감사하십시오.

이렇게 다른 사용자를 가장하면 현재 사용자가 로그 아웃하고 다시 로그인하여 자신의 계정으로 다시 전환해야합니다.

+0

admin 포털을 통해 직원 및 고용주 포털을 오버레이해야합니까? 고용주 포털에 로그인 할 수 있습니까? –

+0

동일한 프레임 워크를 사용하고 동일한 사용자 소스를 사용하는 경우 관리자 사용자가 다른 두 포털에 로그인하는 것을 허용하지 않으며 각각의 포털에 방법을 제공하여 권한이 적은 사용자가 될 수 있습니까? 그렇다면 오버레이 할 필요가 없다고 생각합니다. 단일 MVC 메소드 및 보안 서비스 메소드로 고용주/직원 앱의 기능을 제공합니다. –