JavaTM Platform
Standard Ed. 6

javax.net.ssl
클래스 SSLServerSocket

java.lang.Object 
  상위를 확장 java.net.ServerSocket 
      상위를 확장 javax.net.ssl.SSLServerSocket


public abstract class SSLServerSocket
extends ServerSocket

이 클래스는 ServerSocket 를 확장해, Secure Sockets Layer (SSL)나 Transport Layer Security (TLS)등의 프로토콜을 사용하는 시큐어 서버 소켓을 제공합니다.  

이 클래스의 인스턴스를 작성할 때는, 일반적으로,SSLServerSocketFactory 를 사용합니다. SSLServerSocket 는, 접속을 acceptSSLSocket 를 작성합니다.  

SSLServerSocket 의 일부 상태 데이터는, 작성되는 SSLSocket 에 상속됩니다. 예를 들어, 유효하게 되어 있는 암호화 방식군과 프로토콜, 클라이언트 인증이 필요한가 어떤가 이 소켓이 핸드 쉐이크를 개시할 때의 모드 (클라이언트 모드 또는 서버 모드), 등의 정보가 상속됩니다. 작성된 SSLSocket 에 상속된 상태는, 대응하는 메소드를 호출해 오버라이드(override) 할 수 있습니다.

도입된 버젼:
1.4
관련 항목:
ServerSocket , SSLSocket

생성자 의 개요
protected SSLServerSocket ()
          서브 클래스에서만 사용됩니다.
protected SSLServerSocket (int port)
          서브 클래스에서만 사용됩니다.
protected SSLServerSocket (int port, int backlog)
          서브 클래스에서만 사용됩니다.
protected SSLServerSocket (int port, int backlog, InetAddress  address)
          서브 클래스에서만 사용됩니다.
 
메소드의 개요
abstract  String [] getEnabledCipherSuites ()
          새롭게 받아들인 접속으로 현재 사용 가능하게 되어 있는 암호화 방식군의 리스트를 돌려줍니다.
abstract  String [] getEnabledProtocols ()
          새롭게 받아들인 접속으로 현재 사용 가능하게 되어 있는 프로토콜명을 돌려줍니다.
abstract  boolean getEnableSessionCreation ()
          이 서버 소켓으로부터 작성된 소켓으로, 새로운 SSL 세션을 확립하는 경우는 true 를 돌려줍니다.
abstract  boolean getNeedClientAuth ()
          새롭게 accept 한 서버 모드의 SSLSocket 상에서 클라이언트 인증이 「필수」의 경우, true 를 돌려줍니다.
abstract  String [] getSupportedCipherSuites ()
          SSL 접속으로 사용 가능하게 할 수 있는 암호화 방식군의 이름을 돌려줍니다.
abstract  String [] getSupportedProtocols ()
          사용 가능하게 할 수 있는 프로토콜의 이름을 돌려줍니다.
abstract  boolean getUseClientMode ()
          받아들인 접속이 SSL 클라이언트 모드가 되는 경우는 true 를 돌려줍니다.
abstract  boolean getWantClientAuth ()
          새롭게 받아들인 서버 모드의 접속상에서 클라이언트 인증이 「요구」되는 경우, true 를 돌려줍니다.
abstract  void setEnabledCipherSuites (String [] suites)
          받아들여진 접속으로 사용 가능한 암호화 방식군을 설정합니다.
abstract  void setEnabledProtocols (String [] protocols)
          받아들인 접속으로 사용 가능한 프로토콜을 제어합니다.
abstract  void setEnableSessionCreation (boolean flag)
          이 서버 소켓으로부터 작성된 소켓으로, 새로운 SSL 세션을 확립화도인지를 제어합니다.
abstract  void setNeedClientAuth (boolean need)
          받아들인서버 모드의 SSLSockets 로, 클라이언트 인증이 「필수」라고여겨지도록(듯이) 초기설정 할지 어떨지를 제어합니다.
abstract  void setUseClientMode (boolean mode)
          받아들인 접속이 디폴트로 SSL 서버 모드가 되는지, SSL 클라이언트 모드가 되는지를 제어합니다.
abstract  void setWantClientAuth (boolean want)
          받아들인서버 모드의 SSLSockets 가, 클라이언트 인증을 「요구」하도록(듯이) 초기설정 할지 어떨지를 제어합니다.
 
클래스 java.net. ServerSocket 로부터 상속된 메소드
accept , bind , bind , close , getChannel , getInetAddress , getLocalPort , getLocalSocketAddress , getReceiveBufferSize , getReuseAddress , getSoTimeout , implAccept , isBound , isClosed , setPerformancePreferences , setReceiveBufferSize , setReuseAddress , setSocketFactory , setSoTimeout , toString
 
클래스 java.lang. Object 로부터 상속된 메소드
clone , equals , finalize , getClass , hashCode , notify , notifyAll , wait , wait , wait
 

생성자 의 상세

SSLServerSocket

protected SSLServerSocket()
                   throws IOException 
서브 클래스에서만 사용됩니다.  

디폴트의 인증 문맥을 사용해, 바인드되어 있지 않은 TCP 서버 소켓을 작성합니다.

예외:
IOException - 소켓의 작성중에 입출력 에러가 발생했을 경우

SSLServerSocket

protected SSLServerSocket(int port)
                   throws IOException 
서브 클래스에서만 사용됩니다.  

디폴트의 인증 문맥을 사용해, 포트상에 TCP 서버 소켓을 작성합니다. 큐에 포함되는 접속 백 로그의 최대수는, 디폴트로 50 으로 설정되어 있습니다. 큐내의 접속 요구가 최대수를 넘으면(자), 새로운 접속 요구는 거부됩니다.

파라미터:
port - 대기하는 포트
예외:
IOException - 소켓의 작성중에 입출력 에러가 발생했을 경우

SSLServerSocket

protected SSLServerSocket(int port,
                          int backlog)
                   throws IOException 
서브 클래스에서만 사용됩니다.  

디폴트의 인증 문맥과 지정된 접속 백 로그를 사용해, 포트상에 TCP 서버 소켓을 작성합니다.

파라미터:
port - 대기하는 포트
backlog - 최대 보류 접속수. 이 접속수를 넘으면(자), 새로운 요구가 거부된다
예외:
IOException - 소켓의 작성중에 입출력 에러가 발생했을 경우

SSLServerSocket

protected SSLServerSocket(int port,
                          int backlog,
                          InetAddress  address)
                   throws IOException 
서브 클래스에서만 사용됩니다.  

디폴트의 인증 문맥, 지정된 접속 백 로그, 및 지정된 네트워크 인터페이스를 사용해, 포트상에 TCP 서버 소켓을 작성합니다. 이 생성자 은, 방화벽(fire wall)나 라우터로서 사용되는 multi-homed host상에서 사용되어 네트워크 서비스를 제공하는 인터페이스를 제어합니다.

파라미터:
port - 대기하는 포트
backlog - 최대 보류 접속수. 이 접속수를 넘으면(자), 새로운 요구가 거부되는
address - 접속을 받아들이는 네트워크 인터페이스의 주소
예외:
IOException - 소켓의 작성중에 입출력 에러가 발생했을 경우
메소드의 상세

getEnabledCipherSuites

public abstract String [] getEnabledCipherSuites()
새롭게 받아들인 접속으로 현재 사용 가능하게 되어 있는 암호화 방식군의 리스트를 돌려줍니다.  

이 리스트가 명시적으로 변경되어 있지 않은 경우는, 시스템 디폴트에 의해, 사용 가능한 모든 암호화 방식군으로, 최소한의 서비스 품질이 보증됩니다.  

실제로 사용하는 암호화 방식군은, 요건에 응해 적절히 선택해 주세요. 예를 들어, 서버 소켓이 하등의 인증을 요구하도록(듯이) 설정되어 있을 때, 암호화 방식군으로 사용할 수 있는 비공개키가 서버 소켓에 할당할 수 있지 않은 경우, 또는 암호화 방식군이 익명이기 (위해)때문에 클라이언트 인증을 사용할 수 없는 경우, 그러한 암호화 방식군은 실제로는 사용할 수 없습니다.

반환값:
사용 가능한 암호화 방식군의 배열
관련 항목:
getSupportedCipherSuites() , setEnabledCipherSuites(String [])

setEnabledCipherSuites

public abstract void setEnabledCipherSuites(String [] suites)
받아들여진 접속으로 사용 가능한 암호화 방식군을 설정합니다.  

암호화 방식군은, getSupportedCipherSuites()에 의해, 지원 대상으로 해 리스트되어 있지 않으면 안됩니다. 이 메소드의 호출이 정상적으로 행해졌을 때,suites 파라미터에 리스트 된 암호화 방식군만, 사용할 수가 있습니다.  

이 ServerSocket 의 인증 문맥으로 사용할 수 없는 인증 정보를 요구하는 암호화 방식군은, 비록 유효하게 되어 있어도 사용되지 않습니다.  

accept() 로부터 반환되는 SSLSocket 는, 이 설정을 상속합니다.

파라미터:
suites - 사용 가능하게 하는 모든 암호화 방식군의 이름
예외:
IllegalArgumentException - 파라미터로 지정된 암호화 방식군의 일부가 지원되지 않는 경우, 또는 파라미터가 null 의 경우.
관련 항목:
getSupportedCipherSuites() , getEnabledCipherSuites()

getSupportedCipherSuites

public abstract String [] getSupportedCipherSuites()
SSL 접속으로 사용 가능하게 할 수 있는 암호화 방식군의 이름을 돌려줍니다.  

일반적으로은, 그 일부만이 디폴트로 사용 가능하게 됩니다. 디폴트의 서비스 품질 요건을 채우지 않은 암호화 방식군은, 사용 불가가 됩니다. 그러한 암호화 방식군은, 특수한 어플리케이션으로 사용합니다.

반환값:
암호화 방식군명의 배열
관련 항목:
getEnabledCipherSuites() , setEnabledCipherSuites(String [])

getSupportedProtocols

public abstract String [] getSupportedProtocols()
사용 가능하게 할 수 있는 프로토콜의 이름을 돌려줍니다.

반환값:
지원되고 있는 프로토콜명의 배열
관련 항목:
getEnabledProtocols() , setEnabledProtocols(String [])

getEnabledProtocols

public abstract String [] getEnabledProtocols()
새롭게 받아들인 접속으로 현재 사용 가능하게 되어 있는 프로토콜명을 돌려줍니다.

반환값:
프로토콜명의 배열
관련 항목:
getSupportedProtocols() , setEnabledProtocols(String [])

setEnabledProtocols

public abstract void setEnabledProtocols(String [] protocols)
받아들인 접속으로 사용 가능한 프로토콜을 제어합니다.  

프로토콜은, getSupportedProtocols()에 의해, 지원 대상으로 해 리스트되어 있지 않으면 안됩니다. 이 메소드의 호출이 정상적으로 행해졌을 때,protocols 파라미터에 리스트 된 프로토콜만, 사용할 수가 있습니다.  

accept() 로부터 반환되는 SSLSocket 는, 이 설정을 상속합니다.

파라미터:
protocols - 사용 가능하게 하는 모든 프로토콜의 이름
예외:
IllegalArgumentException - 파라미터로 지정된 프로토콜의 일부가 지원되지 않는 경우, 또는 파라미터가 null 의 경우.
관련 항목:
getEnabledProtocols() , getSupportedProtocols()

setNeedClientAuth

public abstract void setNeedClientAuth(boolean need)
받아들인서버 모드의 SSLSockets 로, 클라이언트 인증이 「필수」라고여겨지도록(듯이) 초기설정 할지 어떨지를 제어합니다.  

소켓의 클라이언트 인증 설정은, 다음의 어느 쪽인가에 됩니다.

setWantClientAuth(boolean) 와 달리, 받아들인 소켓의 옵션이 설정되어 있어, 한편 클라이언트 인증 정보가 제공되지 않는 경우는, 협상이 정지해, 접속이 절단 됩니다.  

이 메소드를 호출하면(자), 지금까지 이 메소드 또는 setWantClientAuth(boolean) 에 의해 설정된 내용이 오버라이드(override) 됩니다.  

SSLSocket.setNeedClientAuth(boolean) 또는 SSLSocket.setWantClientAuth(boolean) 를 호출하면(자), 상속된 초기설정이 오버라이드(override) 됩니다.

파라미터:
need - 클라이언트 인증이 필수의 경우는 true, 클라이언트 인증이 불필요한 경우는 false.
관련 항목:
getNeedClientAuth() , setWantClientAuth(boolean) , getWantClientAuth() , setUseClientMode(boolean)

getNeedClientAuth

public abstract boolean getNeedClientAuth()
새롭게 accept 한 서버 모드의 SSLSocket 상에서 클라이언트 인증이 「필수」의 경우, true 를 돌려줍니다.

SSLSocket.setNeedClientAuth(boolean) 또는 SSLSocket.setWantClientAuth(boolean) 를 호출하면(자), 상속된 초기설정이 오버라이드(override) 됩니다.

반환값:
클라이언트 인증이 필수의 경우는 true, 클라이언트 인증이 불필요한 경우는 false.
관련 항목:
setNeedClientAuth(boolean) , setWantClientAuth(boolean) , getWantClientAuth() , setUseClientMode(boolean)

setWantClientAuth

public abstract void setWantClientAuth(boolean want)
받아들인서버 모드의 SSLSockets 가, 클라이언트 인증을 「요구」하도록(듯이) 초기설정 할지 어떨지를 제어합니다.  

소켓의 클라이언트 인증 설정은, 다음의 어느 쪽인가에 됩니다.

setNeedClientAuth(boolean) 와 달리, 받아들인 소켓의 옵션이 설정되어 있어, 한편 클라이언트 인증 정보가 제공되지 않는 경우에서도, 협상은 속행됩니다.  

이 메소드를 호출하면(자), 지금까지 이 메소드 또는 setNeedClientAuth(boolean) 에 의해 설정된 내용이 오버라이드(override) 됩니다.  

SSLSocket.setNeedClientAuth(boolean) 또는 SSLSocket.setWantClientAuth(boolean) 를 호출하면(자), 상속된 초기설정이 오버라이드(override) 됩니다.

파라미터:
want - 클라이언트 인증이 요구되었을 경우는 true, 클라이언트 인증이 불필요한 경우는 false.
관련 항목:
getWantClientAuth() , setNeedClientAuth(boolean) , getNeedClientAuth() , setUseClientMode(boolean)

getWantClientAuth

public abstract boolean getWantClientAuth()
새롭게 받아들인 서버 모드의 접속상에서 클라이언트 인증이 「요구」되는 경우, true 를 돌려줍니다.  

SSLSocket.setNeedClientAuth(boolean) 또는 SSLSocket.setWantClientAuth(boolean) 를 호출하면(자), 상속된 초기설정이 오버라이드(override) 됩니다.

반환값:
클라이언트 인증이 요구되었을 경우는 true, 클라이언트 인증이 불필요한 경우는 false.
관련 항목:
setWantClientAuth(boolean) , setNeedClientAuth(boolean) , getNeedClientAuth() , setUseClientMode(boolean)

setUseClientMode

public abstract void setUseClientMode(boolean mode)
받아들인 접속이 디폴트로 SSL 서버 모드가 되는지, SSL 클라이언트 모드가 되는지를 제어합니다.  

일반적으로, 서버는 자신을 인증합니다만, 클라이언트는 반드시 그렇다고는 할 수 없습니다.  

새롭게 받아들인 접속이, SSL 클라이언트 모드의 TCP 서버를 요구하는 일이 있습니다. 예를 들어, FTP 클라이언트는, 서버 소켓을 취득하면(자), 그 소켓상에서 서버로부터의 접속을 대기합니다. FTP 클라이언트는, 서버로부터의 접속을 받아들일 때, 클라이언트 모드의 SSLServerSocket 를 사용합니다. FTP 서버는, 접속을 개시할 경우에 클라이언트 모드를 무효로 한 SSLSocket 를 사용합니다. 이 경우, 핸드 쉐이크를 실시할 때는, 기존의 SSL 세션이 재사용됩니다.  

accept() 로부터 반환되는 SSLSocket 는, 이 설정을 상속합니다.

파라미터:
mode - 새롭게 받아들인 접속이 SSL 클라이언트 모드를 사용하는 경우는 true.
관련 항목:
getUseClientMode()

getUseClientMode

public abstract boolean getUseClientMode()
받아들인 접속이 SSL 클라이언트 모드가 되는 경우는 true 를 돌려줍니다.

반환값:
접속이 SSL 클라이언트 모드를 사용하는 경우는 true.
관련 항목:
setUseClientMode(boolean)

setEnableSessionCreation

public abstract void setEnableSessionCreation(boolean flag)
이 서버 소켓으로부터 작성된 소켓으로, 새로운 SSL 세션을 확립화도인지를 제어합니다.  

accept() 로부터 반환되는 SSLSocket 는, 이 설정을 상속합니다.

파라미터:
flag - 세션을 작성하는 경우는 true (디폴트). 기존의 세션을 재개하는 경우는 false.
관련 항목:
getEnableSessionCreation()

getEnableSessionCreation

public abstract boolean getEnableSessionCreation()
이 서버 소켓으로부터 작성된 소켓으로, 새로운 SSL 세션을 확립하는 경우는 true 를 돌려줍니다.

반환값:
세션을 작성하는 경우는 true (디폴트). 기존의 세션을 재개하는 경우는 false.
관련 항목:
setEnableSessionCreation(boolean)

JavaTM Platform
Standard Ed. 6

버그의 보고와 기능의 요청
한층 더 자세한 API 레퍼런스 및 개발자 문서에 대해서는,Java SE 개발자용 문서를 참조해 주세요. 개발자전용의 상세한 해설, 개념의 개요, 용어의 정의, 버그의 회피책, 및 코드 실례가 포함되어 있습니다.

Copyright 2006 Sun Microsystems, Inc. All rights reserved. Use is subject to license terms . Documentation Redistribution Policy 도 참조해 주세요.