SSLSocketFactory — SSL 소켓을 만드는 팩토리
SSLSocketFactory — SSL 소켓을 만드는 팩토리
SSLSocketFactory는 SSLSocket을 생성하는 팩토리 클래스예요. 보안 소켓이 필요할 때 직접 생성자로 만들기보다 이 팩토리를 통해 만드는 게 일반적이에요. SocketFactory를 상속받아요.
본문
public abstract class SSLSocketFactory extends SocketFactory
생성자
SSLSocketFactory()— 하위 클래스에서만 사용하는 생성자예요.
메서드
Socket createSocket(Socket s, InputStream consumed, boolean autoClose)— 이미 연결된 소켓 위에 서버 모드Socket을 씌우고, 그 소켓의 기본InputStream에서 이미 소비·제거된 데이터를 읽을 수 있게 해요.abstract Socket createSocket(Socket s, String host, int port, boolean autoClose)— 주어진 포트의 이름 지정된 호스트에 연결된 기존 소켓 위에 소켓을 씌워 반환해요.static SocketFactory getDefault()— 기본 SSL 소켓 팩토리를 반환해요. 이 메서드가 처음 호출되면 보안 속성ssl.SocketFactory.provider를 조사해요. 값이null이 아니면 그 이름의 클래스를 로드·인스턴스화해요. 성공하고 그 객체가SSLSocketFactory의 인스턴스라면 기본 SSL 소켓 팩토리가 돼요. 그렇지 않으면SSLContext.getDefault().getSocketFactory()를 반환해요. 그 호출이 실패하면 동작하지 않는 팩토리를 반환해요.abstract String[] getDefaultCipherSuites()— 기본으로 활성화되는 암호 스위트 목록을 반환해요. 다른 목록이 활성화되지 않으면 SSL 연결의 핸드셰이킹은 이 중 하나의 암호 스위트를 사용해요. 기본값의 최소 품질 요구사항은 기밀성 보호와 서버 인증을 필요로 해요.abstract String[] getSupportedCipherSuites()— SSL 연결에서 활성화할 수 있는 암호 스위트의 이름들을 반환해요.
어떤 흐름으로 쓸까요?
SSLContext를 준비하고SSLSocketFactory를 얻어요 (getDefault()또는SSLContext.getSocketFactory()).- 팩토리의
createSocket메서드로 보안 소켓을 만들어요. - 만들어진 소켓에서 입출력 스트림을 얻어 통신해요.