6.2. Jakarta Enterprise Beans 방법 권한

6.2.1. Jakarta Enterprise Bean 방식 권한 정보

Jakarta Enterprise Bean은 자신의 방법에 대한 액세스를 특정 보안 역할로 제한할 수 있습니다.

Jakarta Enterprise Beans <method-permission> 요소 선언은 Jakarta Enterprise Beans의 인터페이스 메서드를 호출할 수 있는 역할을 지정합니다. 다음 조합에 대한 권한을 지정할 수 있습니다.

  • 명명된 Jakarta Enterprise Bean의 모든 홈 및 구성 요소 인터페이스 방법
  • 명명 된 Jakarta Enterprise Beans의 홈 또는 구성 요소 인터페이스의 지정된 방법
  • 이름이 과부하된 메서드 세트 내에 지정된 방법

6.2.2. Jakarta Enterprise Beans 방식 사용 권한

<method-permission> 요소는 <method> 요소에서 정의한 Jakarta Enterprise Beans 메서드에 액세스할 수 있는 논리 역할을 정의합니다. xml의 구문을 보여주는 몇 가지 예는 다음과 같습니다. 여러 메서드 권한 문이 존재할 수 있으며 누적 효과가 있습니다. <method-permission> 요소는 < ejb-jar> 설명자의 <assembly-descriptor > 요소의 자식입니다.

XML 구문은 Jakarta Enterprise Beans 메서드 권한에 대한 주석을 사용하는 대신 사용됩니다.

예제: 자카르타 엔터프라이즈 빈의 모든 메서드에 액세스할 수 있도록 허용

<method-permission>
  <description>The employee and temp-employee roles may access any method
  of the EmployeeService bean </description>
  <role-name>employee</role-name>
  <role-name>temp-employee</role-name>
  <method>
    <ejb-name>EmployeeService</ejb-name>
    <method-name>*</method-name>
  </method>
</method-permission>

예제: Jakarta Enterprise Bean 및 Limit Method Parameters의 특정 메서드에 액세스할 수 있도록 허용

<method-permission>
  <description>The employee role may access the findByPrimaryKey,
  getEmployeeInfo, and the updateEmployeeInfo(String) method of
  the AcmePayroll bean </description>
  <role-name>employee</role-name>
  <method>
    <ejb-name>AcmePayroll</ejb-name>
    <method-name>findByPrimaryKey</method-name>
  </method>
  <method>
    <ejb-name>AcmePayroll</ejb-name>
    <method-name>getEmployeeInfo</method-name>
  </method>
  <method>
    <ejb-name>AcmePayroll</ejb-name>
    <method-name>updateEmployeeInfo</method-name>
    <method-params>
      <method-param>java.lang.String</method-param>
    </method-params>
  </method>
</method-permission>

예제: 인증된 사용자가 Jakarta Enterprise Bean의 메서드에 액세스할 수 있도록 허용

<unchecked/> 요소를 사용하면 인증된 사용자가 지정된 방법을 사용할 수 있습니다.

<method-permission>
  <description>Any authenticated user may access any method of the
  EmployeeServiceHelp bean</description>
  <unchecked/>
  <method>
    <ejb-name>EmployeeServiceHelp</ejb-name>
    <method-name>*</method-name>
  </method>
</method-permission>

예제: 특정 자카르타 엔터프라이즈 빈 방식 제외

<exclude-list>
  <description>No fireTheCTO methods of the EmployeeFiring bean may be
  used in this deployment</description>
  <method>
    <ejb-name>EmployeeFiring</ejb-name>
    <method-name>fireTheCTO</method-name>
  </method>
</exclude-list>

예제: 전체 <assembly-descriptor> 여러 <method-permission> 블록 포함

<ejb-jar>
    <assembly-descriptor>
        <method-permission>
            <description>The employee and temp-employee roles may access any method of the EmployeeService bean </description>
            <role-name>employee</role-name>
            <role-name>temp-employee</role-name>
            <method>
                <ejb-name>EmployeeService</ejb-name>
                <method-name>*</method-name>
            </method>
        </method-permission>
        <method-permission>
            <description>The employee role may access the findByPrimaryKey, getEmployeeInfo, and the updateEmployeeInfo(String) method of the AcmePayroll bean </description>
            <role-name>employee</role-name>
            <method>
                <ejb-name>AcmePayroll</ejb-name>
                <method-name>findByPrimaryKey</method-name>
            </method>
            <method>
                <ejb-name>AcmePayroll</ejb-name>
                <method-name>getEmployeeInfo</method-name>
            </method>
            <method>
                <ejb-name>AcmePayroll</ejb-name>
                <method-name>updateEmployeeInfo</method-name>
                <method-params>
                    <method-param>java.lang.String</method-param>
                </method-params>
            </method>
        </method-permission>
        <method-permission>
            <description>The admin role may access any method of the EmployeeServiceAdmin bean </description>
            <role-name>admin</role-name>
            <method>
                <ejb-name>EmployeeServiceAdmin</ejb-name>
                <method-name>*</method-name>
            </method>
        </method-permission>
        <method-permission>
            <description>Any authenticated user may access any method of the EmployeeServiceHelp bean</description>
            <unchecked/>
            <method>
                <ejb-name>EmployeeServiceHelp</ejb-name>
                <method-name>*</method-name>
            </method>
        </method-permission>
        <exclude-list>
            <description>No fireTheCTO methods of the EmployeeFiring bean may be used in this deployment</description>
            <method>
                <ejb-name>EmployeeFiring</ejb-name>
                <method-name>fireTheCTO</method-name>
            </method>
        </exclude-list>
    </assembly-descriptor>
</ejb-jar>