Security

Security (보안 속성·프로바이더 관리)

모든 보안 속성과 공통 보안 메서드를 중앙 집중화하는 클래스입니다. 주요 용도 중 하나는 프로바이더(Provider)를 관리하는 것입니다.

출처: Java API Reference

본문

Security 클래스는 보안 속성과 공통 보안 메서드를 중앙에서 관리합니다. 보안 속성의 기본값은 구현 특유의 위치에서 읽는데, 보통 Java 설치 디렉터리의 conf/security/java.security 속성 파일에서 읽습니다.

Security가 제공하는 주요 정적 메서드는 다음과 같습니다.

  • public static synchronized int insertProviderAt(Provider provider, int position) — 지정된 위치(1부터 시작, 1이 가장 선호)에 새 프로바이더를 추가합니다. 해당 위치의 프로바이더와 그 뒤 프로바이더들은 한 칸씩 뒤로 밀립니다. 이미 설치된 프로바이더는 추가할 수 없습니다.
  • public static int addProvider(Provider provider) — 다음 사용 가능한 위치에 프로바이더를 추가합니다.
  • public static synchronized void removeProvider(String name) — 지정된 이름의 프로바이더를 제거합니다. 이후 프로바이더들은 한 칸씩 앞으로 당겨집니다.
  • public static Provider[] getProviders() — 설치된 모든 프로바이더를 선호 순서대로 담은 배열을 반환합니다.
  • public static Provider getProvider(String name) — 지정된 이름의 설치된 프로바이더를 반환합니다. 없으면 null.
  • public static Provider[] getProviders(String filter) — 지정된 선택 기준을 만족하는 모든 설치된 프로바이더를 반환합니다.
  • public static Provider[] getProviders(Map<String,String> filter) — 맵으로 표현된 선택 기준을 모두 만족하는 프로바이더를 반환합니다.
  • public static String getProperty(String key) — 보안 속성 값을 가져옵니다.
  • public static void setProperty(String key, String datum) — 보안 속성 값을 설정합니다.
  • public static Set<String> getAlgorithms(String serviceName) — 지정된 Java 암호화 서비스(예: Signature, MessageDigest, Cipher, Mac, KeyStore)에 대해 사용 가능한 모든 알고리즘·타입 이름 집합을 반환합니다. 반환된 집합은 불변입니다.
  • public static String getAlgorithmProperty(String algName, String propName) — 알고리즘에 대한 지정된 속성을 가져옵니다(레거시).

프로바이더를 추가·제거할 때는 보안 관리자가 있으면 SecurityPermission을 검사합니다. 예를 들어 getProviders 필터는 "CertificateFactory.X.509"(서비스·타입) 또는 "Signature.SHA1withDSA KeySize:1024"(서비스·타입 + 속성 제약) 형식으로 지정합니다.

더 알아보기 (Learn more)

Java 공식 API