파일에 여러 액세스 규칙이 있는 경우 사용 권한은 다음과 같이 계산됩니다.
구체적인 액세스 규칙은 일반적인 액세스 규칙을 대체합니다. 다음 두 규칙을 적용하고 나면 모든 사용자가 모든 대기열에 전송할 수 있지만 Bob은 tq1에 전송할 수 없습니다.
queue.*.produce.allow.user=* queue.tq1.produce.deny.user=Bob
명시된 principal로 지정한 액세스 권한은 * principal로 지정한 액세스 권한을 대체합니다. 다음 규칙은 tq1에서 메시지를 생성할 권한을 Bob에게는 허용하지 않지만 다른 모든 사람에게는 허용합니다.
queue.tq1.produce.allow.user=* queue.tq1.produce.deny.user=Bob
사용자에 대한 * principal 규칙은 그룹에 대한 해당 * principal을 대체합니다. 예를 들어, 다음 두 규칙은 인증된 모든 사용자가 tq1에 메시지를 보낼 수 있도록 허용합니다.
queue.tq1.produce.allow.user=* queue.tq1.produce.deny.group=*
사용자에게 부여된 액세스 권한은 사용자 그룹에 부여된 액세스 권한을 대체합니다. 다음 예에서 Bob은 User의 구성원이지만 tq1에 메시지를 생성할 수 없습니다. User의 다른 모든 구성원은 메시지를 생성할 수 있습니다.
queue.tq1.produce.allow.group=User queue.tq1.produce.deny.user=Bob
액세스 규칙을 통해 명확하게 부여되지 않은 모든 액세스 권한은 거부됩니다. 예를 들어, ACL 파일에 액세스 규칙이 없으면 모든 사용자의 모든 작업이 거부됩니다.
같은 사용자 또는 그룹에 권한을 거부하고 허용하면 설정이 서로 상쇄됩니다. 예를 들어, 다음과 같은 두 규칙이 있으면 Bob은 q1을 찾아볼 수 없습니다.
queue.q1.browse.allow.user=Bob queue.q1.browse.deny.user=Bob
다음 두 규칙은 User 그룹이 q5에서 메시지를 사용하지 못하게 합니다.
queue.q5.consume.allow.group=User queue.q5.consume.deny.group=User
왼쪽의 같은 규칙이 여러 개 있는 경우에는 마지막 항목만 적용됩니다.