5.3.2.2.2. 역할 기반 액세스 예

이 섹션에서는 역할 기반 액세스 제어 적용의 다음 예를 보여줍니다.

다음 예제에서는 key 특성을 사용하여 지정된 도메인의 모든 큐에 역할을 매핑하는 방법을 보여줍니다.

<match domain="org.apache.activemq.artemis" key="subcomponent=queues">
   <access method="list*" roles="view,update,amq"/>
   <access method="get*" roles="view,update,amq"/>
   <access method="is*" roles="view,update,amq"/>
   <access method="set*" roles="update,amq"/>
   <access method="*" roles="amq"/>
</match>

다음 예제에서는 key 특성을 사용하여 특정 이름이 지정된 특정 큐에 역할을 매핑하는 방법을 보여줍니다. 이 예에서 명명된 큐는 예제Queue 입니다.

<match domain="org.apache.activemq.artemis" key="queue=exampleQueue">
   <access method="list*" roles="view,update,amq"/>
   <access method="get*" roles="view,update,amq"/>
   <access method="is*" roles="view,update,amq"/>
   <access method="set*" roles="update,amq"/>
   <access method="*" roles="amq"/>
</match>

다음 예제에서는 지정된 접두사가 포함된 모든 큐에 역할을 매핑하는 방법을 보여줍니다. 이 예제에서 별표(*) 와일드카드 연산자는 접두사 예제 로 시작하는 모든 큐 이름과 일치하도록 사용됩니다.

<match domain="org.apache.activemq.artemis" key="queue=example*">
   <access method="list*" roles="view,update,amq"/>
   <access method="get*" roles="view,update,amq"/>
   <access method="is*" roles="view,update,amq"/>
   <access method="set*" roles="update,amq"/>
   <access method="*" roles="amq"/>
</match>

동일한 특성 집합(예: 다른 대기열 세트)에 대해 역할을 다르게 매핑해야 할 수 있습니다. 이 경우 구성 파일에 여러 개의 일치 요소를 포함할 수 있습니다. 그러나 동일한 도메인에 여러 개의 일치 항목이 있을 수 있습니다.

예를 들어 다음과 같이 구성된 두 가지 <match > 요소를 고려하십시오.

<match domain="org.apache.activemq.artemis" key="queue=example*">

<match domain="org.apache.activemq.artemis" key="queue=example.sub*">

이 구성을 기반으로 org.apache.activemq.artemis 도메인의 example.sub.queue 라는 큐가 두 와일드카드 키 식과 일치합니다. 따라서 브로커는 큐에 매핑할 역할 집합, 첫 번째 match 요소에 지정된 역할 또는 두 번째 일치 요소에 지정된 역할을 결정하는 우선순위 지정 체계가 필요합니다.

동일한 도메인에 일치하는 항목이 여러 개 있는 경우 브로커는 역할을 매핑할 때 다음과 같은 우선순위 지정 스키마를 사용합니다.

  • 정확한 일치는 와일드카드 일치보다 우선 순위가 지정됩니다.
  • 더 긴 와일드카드 일치 항목이 짧은 와일드카드 일치보다 우선 순위가 길어집니다.

이 예제에서 더 긴 와일드카드 표현식은 example.sub.queue 의 큐 이름과 가장 근접하게 일치하므로 브로커는 두 번째 < match > 요소에 구성된 역할 매핑을 적용합니다.

참고

default-access 요소는 역할 액세스 또는 허용 목록 구성을 사용하여 처리하지 않는 모든 메서드 호출에 대한 catch- all 요소입니다. default-accessrole-access 요소는 동일한 일치 요소 의미 체계를 갖습니다.