1. 개요

Security은 모든 Java 애플리케이션의 기본 부분입니다. 또한 Security 문제를 처리 할 수있는 많은 Security 프레임 워크를 찾을 수 있습니다. 또한 이러한 프레임 워크에서는 주제, 주체 및 사용자와 같은 몇 가지 용어를 일반적으로 사용합니다.

이 예제에서는 이러한  Security 프레임 워크의 기본 개념을 설명합니다 . 또한 그들의 관계와 차이점을 보여줄 것입니다.

2. 주제

Security 컨텍스트에서 제목은 요청의 소스를 나타냅니다. 는이야 변동될이 엔티티입니다 자원이나 수정 리소스에 대한 취득하고 정보를 그 . 또한 주제는 사용자, 프로그램, 프로세스, 파일, 컴퓨터, 데이터베이스 등이 될 수도 있습니다.

예를 들어 요청 소스를 인증하려면 리소스 및 애플리케이션에 대한 액세스 권한을 부여해야합니다. 이 경우이 사람은 주제입니다.

하자가에 기반을 구현의 예를 살펴 걸릴 JAAS의 프레임 워크를 :

Subject subject = loginContext.getSubject();
PrivilegedAction privilegedAction = new ResourceAction();
Subject.doAsPrivileged(subject, privilegedAction, null);

3. 교장

인증에 성공하면 역할, 사회 보장 번호 (SSN) 등과 같은 관련 ID로 채워진 주체가 생성됩니다. 즉, 이러한 식별자는 주체이며 주체는이를 나타냅니다.

예를 들어, 한 사람은 계정 번호 주체 ( "87654-3210")와 다른 주체와 구별되는 기타 고유 식별자를 가질 수 있습니다.

 성공적으로 로그인 한 후 UserPrincipal 을 생성 하고 주제에 추가 하는 방법을 살펴 보겠습니다  .

@Override
public boolean commit() throws LoginException {
    if (!loginSucceeded) {
        return false;
    }
    userPrincipal = new UserPrincipal(username);
    subject.getPrincipals().add(userPrincipal);
    return true;
}

4. 사용자

일반적으로 사용자는 작업을 수행하거나 작업을 수행하기 위해 리소스에 액세스하는 사람을 나타냅니다.

또한 사용자를 주체로 사용할 수 있으며, 반면 주체는 사용자에게 할당 된 ID입니다. UserPrincipal 이전 섹션에서 논의한 JAAS 프레임 워크 사용자의 훌륭한 예입니다 .

5. 주체, 주체 및 사용자의 차이점

위 섹션에서 살펴본 것처럼 Security 주체를 사용하여 동일한 사용자 ID의 다른 측면을 나타낼 수 있습니다. 이들은 주제의 하위 집합이며 사용자는 최종 사용자 또는 대화 형 운영자를 참조하는 주체의 하위 집합입니다.

6. 결론

이 사용방법(예제)에서는 대부분의 Security 프레임 워크에서 공통적으로 사용되는 주제, 주체 및 사용자의 정의에 대해 논의했습니다. 또한 우리는 그들 사이의 차이점을 보여주었습니다.

이러한 모든 예제 및 코드 스 니펫의 구현은 GitHub 프로젝트 에서 찾을 수 있습니다 .