6.3. Jakarta Enterprise Beans 보안 주석

6.3.1. Jakarta Enterprise Beans 보안 주석 정보

Jakarta Enterprise Beans javax.annotation.security 주석은 Jakarta Annotations 1.3 사양에 정의되어 있습니다.

Jakarta Enterprise Beans는 보안 주석을 사용하여 보안에 대한 정보를 배포자에게 전달합니다. 여기에는 다음이 포함됩니다.

@DeclareRoles
사용 가능한 역할을 선언합니다.
@RunAs
구성 요소의 전파된 보안 ID를 구성합니다.

6.3.2. Jakarta Enterprise Beans 보안 주석 사용

XML 설명자 또는 주석을 사용하여 Jakarta Enterprise Bean의 메서드를 호출할 수 있는 보안 역할을 제어할 수 있습니다. XML 설명자 사용에 대한 자세한 내용은 Using Jakarta Enterprise Beans Method Permissions 를 참조하십시오.

배포 설명자에 명시적으로 지정된 모든 메서드 값은 주석 값을 재정의합니다. 배포 설명자에 메서드 값을 지정하지 않으면 주석을 사용하여 설정된 해당 값이 사용됩니다. 덮어쓰기 세분화는 메서드 단위로 수행됩니다.

Jakarta Enterprise Bean의 보안 권한 제어를 위한 주석

@DeclareRoles
@DeclareRoles 를 사용하여 권한을 확인할 보안 역할을 정의합니다. @DeclareRoles 가 없으면 목록은 @RolesAllowed 주석에서 자동으로 빌드됩니다.
@RolesAllowed, @PermitAll, @DenyAll
@RolesAllowed 를 사용하여 메서드 또는 메서드에 액세스할 수 있는 역할을 나열합니다. 메서드 또는 메서드를 사용하여 모든 역할을 허용하거나 거부하려면 @PermitAll 또는 @DenyAll 을 사용합니다.
@RunAs
@RunAs 를 사용하여 주석이 추가된 메서드에서 호출할 때 메서드에서 사용하는 역할을 지정합니다.

예제: 보안 주석 예

@Stateless
@RolesAllowed({"admin"})
@SecurityDomain("other")
public class WelcomeEJB implements Welcome {
    @PermitAll
    public String WelcomeEveryone(String msg) {
        return "Welcome to " + msg;
    }
    @RunAs("tempemployee")
    public String GoodBye(String msg) {
        return "Goodbye, " + msg;
    }
    public String GoodbyeAdmin(String msg) {
        return "See you later, " + msg;
    }
}

이 코드에서 모든 역할은 Welcomeœone 메서드에 액세스할 수 있습니다. GoodB ¢ 메서드는 호출할 때 tempemployee 역할을 사용합니다. admin 역할만 보안 주석 없이 메서드 GoodbyeAdmin 및 기타 모든 메서드에 액세스할 수 있습니다.