2014-06-16 3 views
0

나는 모든 일반 사용자가 자신이 선택한 사용자로 가장해야한다는 요구 사항이 있습니다.모든 사용자가 평생 이용자로 가장 할 수있게 허용

나는이 일을 할 수 없었다.

  1. 추가에게 다음과 같은 속성을 portal-ext.properties에 :

    portal.jaas.enable=false 
    portal.impersonation.enable=true 
    
  2. 은 가장의 목적

  3. 정의 된 권한에 대한 역할을 만든 이것은 내가 지금까지 한 일이다 이 새로운 역할에 대해 포털> 사용자 및 조직> & 가장이라고보기
  4. 관리자가 아닌 사용자 (사용자 A)에게이 역할을 할당했습니다.

사용자가 가장 할 수있는 사용자 목록을 볼 필요가 없습니다. 관리자 인 경우 ?doAsUserId=x이 URL에 존재하는 경우 평생 사용자가 가장 할 수 있기를 바랍니다.

사용자 A를 사용하여 사용자 B로 가장하려고하면 아무 일도 발생하지 않습니다. 나는 바람둥이이 오류 로그를 얻을 :

1ERROR [http-bio-8180-exec-85][PortalImpl:5990] User 80413 does not have the permission to impersonate 25105 

(사용자 80,413 내 사용자 A는 사용자 B를 가장을 시도하는 사람은 [25105])을

나는 뭔가를 놓치고 있습니까?

답변

1

가장에 대한 조직 목록에 대한 사용 권한을 확인하는 조건이 Lifeary에 있습니다. 따라서 다른 사용자를 사칭하는 사용자는 이러한 조직의 모든 조직에서 "가장"에 대한 사용 권한을 가지고 있어야합니다.

if (doAsUser.isDefaultUser() || 
     UserPermissionUtil.contains(
      permissionChecker, doAsUserId, organizationIds, 
      ActionKeys.IMPERSONATE)) { 

     request.setAttribute(WebKeys.USER_ID, new Long(doAsUserId)); 

     return doAsUserId; 
    } 

따라서 2 명의 사용자는 동일한 조직의 일부 여야하며 해당 조직에 가장 권한이 있어야합니다.