Destroyable — 자격 증명 소멸 인터페이스

Destroyable — 자격 증명 소멸 인터페이스

Destroyable은 자격 증명(credential) 같은 객체가 선택적으로 구현해서 자신의 내용을 파괴(destroy)할 수 있는 능력을 제공하는 인터페이스예요. 민감한 정보를 담은 객체가 더 이상 필요 없을 때 내용을 지우고 싶을 때 사용해요.

출처: Java API Reference

본문

public interface Destroyable

알려진 구현 클래스로는 EncryptionKey, KerberosCredMessage, KerberosKey, KerberosTicket, KeyStore.PasswordProtection, SecretKeySpec, X500PrivateCredential 등이 있고, DHPrivateKey, DSAPrivateKey, PrivateKey, SecretKey 같은 하위 인터페이스들이 있어요.

메서드

  • default void destroy() throws DestroyFailedException — 이 객체를 파괴해요. 이 객체와 연관된 민감한 정보가 파괴되거나 지워져요. 이후 이 객체의 특정 메서드를 호출하면 IllegalStateException이 발생해요. 기본 구현은 DestroyFailedException을 던져요. 파괴 작업이 실패하면 DestroyFailedException, 호출자가 이 객체를 파괴할 권한이 없으면 SecurityException이 발생해요.
  • default boolean isDestroyed() — 이 객체가 파괴되었는지 여부를 확인해요. 기본 구현은 false를 반환해요. 파괴되었으면 true, 아니면 false를 반환해요.

왜 중요한가요?

보안 자료(예: 개인 키)는 메모리에 남아 있으면 유출 위험이 있어요. Destroyable을 구현하면 객체가 더 이상 필요 없을 때 내용을 명시적으로 지울 수 있어요. 예를 들어 X500PrivateCredential은 개인 키 참조를 destroy()로 지우고 isDestroyed()로 확인할 수 있어요. 자격 증명의 수명을 안전하게 마무리하는 표준적인 방법을 제공해요.

더 알아보기 (Learn more)