2012-10-04 4 views
3

특정 연꽃 노트 문서에 대한 전체 사용자 목록 액세스 권한을 저장하는 방법을 찾으려고합니다.Lotus Notes 문서의 전체 ACL을 Java에서 추출하십시오.

데이터베이스 수준 ACL은 catalog.nsf에서 가져올 수 있지만 문서 수준 액세스는 얻을 수 없다는 것을 알고 있습니다. 또한 문서의 작성자 필드 - 읽기 - 전용 액세스 사용자는 표시되지 않습니다.

누구나 특정 문서에 대한 모든 사용자의 전체 ACL을 얻는 방법을 알고 있습니까?

도움 주시면 감사하겠습니다.

편집 : 맞춤법.

답변

6

사이먼입니다. 그것은 사소한 일입니다. 양식을 읽으려는 제안을 건너 뛰더라도 여전히 사소한 것입니다. 귀하의 질문에 따라 단 하나의 문서를 검사하는 경우에도, 그것은 사소한 일입니다. 감사인은 때때로 이러한 유형의 정보를 원하지만 도미노의 보안 시스템은이를 염두에두고 설계되지 않았으며 정보를 얻는 데 필요한 기본 제공 API가 없습니다.

Java에서는 Document.getItems() 메서드를 사용하여 모든 항목의 벡터를 검색해야합니다. 그런 다음 항목을 살펴 봐야합니다.Item.READERS 또는 Item.AUTHORS인지 확인하려면 Item.getType()을 확인해야합니다. 그렇다면 값의 벡터를 검색하려면 Item.getValues()을 수행해야하며 각 값이 역할인지 확인하려면 벡터 검사를 반복해야합니다. 역할 인 경우 Database.getACL()을 사용하고 ACLEntries을 반복하여 어떤 역할이 있는지와 사람 항목인지 그룹 항목인지 확인해야합니다. 그룹 항목 인 경우 Domino 디렉토리에서 그룹 구성원을 조회해야합니다. 따라서 중첩 된 그룹을 확장해야 할 수도 있습니다. 항목이 아닌 역할의 값은 Domino 디렉토리에 대해 해당 값을 확인하여 올바른 사람 또는 그룹인지 확인한 다음 최종적으로 People에 도달 할 때까지 그룹을 다시 확장해야합니다. Domino 디렉토리에서 조회 할 경우, 디렉토리 보조자를 구성 할 수 있다는 점에 대해 걱정할 필요가 있습니다. 어떤 경우에는 검사 할 여러 Domino 디렉토리 데이터베이스가있을 수 있지만 Notes/Domino 8을 사용할 수있는 경우 다소 쉽습니다. Directory 클래스는이를 처리합니다.

3

당신이 요구하는 것은 다소 비범 한 것입니다.

  1. 데이터베이스 ACL. 다음을 결정해야합니다.

    • ACL 목록에있는 이름.
    • 그들은 사람, 서버, 그룹입니까?
    • Names.nsf를 읽어야하는 그룹 인 경우
    • 역할이 있습니까?
  2. 다음으로 데이터베이스의 모든 문서를 읽어야합니다. 이렇게하려면 액세스 권한이 필요합니다. 따라서 적어도 (문서에 설정된 경우) 판독기 액세스뿐만 아니라 암호화 된 필드에 대한 액세스 (설정된 경우 다시)가됩니다.

당신은 디자인 + 문서를 반복하는 NotesNoteCollection 클래스를 사용할 수 있습니다.

http://publib.boulder.ibm.com/infocenter/domhelp/v8r0/topic/com.ibm.designer.domino.main.doc/H_NOTESNOTECOLLECTION_CLASS.html

그들이 독자 필드가 있고 값이 어떻게 설정되어있는 경우이 양식을 읽고 볼 수 있도록 디자인을 확인하고 있습니다. 그런 다음 설정이 관련 양식에 대해 정적이 아닌 경우 문서를 확인할 수 있습니다.

측면에서. 응용 프로그램에 대해 특정 사용자를 진단하려는 경우 다음 notes.ini 설정을 사용할 수 있습니다.

DEBUG_THREADID=1 
DEBUG_SERVERACL=2 

이렇게하면 ACL 요청이있을 때마다 Domino 콘솔에 인쇄됩니다. 요청한 사용자, 요청한 수준, 요청 수준 및 액세스 권한이 인쇄됩니다.

디버그는 매우 장황하지만 문제를 진단하고 완료 될 때만 사용해야합니다.

+0

디자인 컬렉션을 읽지 않고 양식에 나열된 양식 필드가 문서에 표시되어 있거나 표시되어 있지 않을 수 있습니다. 그들은 양식에 등재 된 것과 동일한 유형 일 수도 그렇지 않을 수도 있습니다. 문서에 저장되는 것은 문서의 크기에 따라 달라집니다. 양식 자체의 액세스 제어는 사용자가 양식을 사용하여 문서를 표시하는 것을 차단할 수 있지만 프로그래밍 방식 액세스를 차단하지는 않습니다. 또한 문서에는 양식에 나열되지 않은 추가 판독기 또는 작성자 필드가 포함될 수 있습니다. –

+0

글쎄, 그 양식에 아직 문서가 생성되지 않은 경우가있을 수 있지만 양식의 목록을 가지고 있지 않은 경우 (OP가 수행 할 계획이라면) 다른 곳에서 기능이 중단 될 수 있으므로 언급했습니다. –

+0

아마 보안이나 컴플라이언스 감사 상황이라고 추측합니다. 사람들이 이러한 유형의 정보를 묻는 평상시의 이유라고 생각합니다. 그러나 나는 그것에 대해 잘못 될 수 있습니다. –

관련 문제