IntelliJ 플러그인에서 HttpConfigurable 대체하기
프록시 구성을 읽고, 엔드포인트 자격 증명을 가져오며, IntelliJ 프록시 API로 플랫폼에 맞는 연결을 엽니다.
HttpConfigurable의 대체는 여러 API에 나뉘어 있습니다. HTTP 프록시 설정을 검사하는 플러그인은 이를 통해 요청을 보내는 플러그인과 다른 작업이 필요합니다.
| 기존 사용 | 마이그레이션 API |
|---|---|
| 선택된 프록시 구성 읽기 | ProxySettings.getInstance().getProxyConfiguration() |
| 알려진 자격 증명을 가져오거나 사용자에게 묻기 | ProxyAuthentication |
| 구성된 정적 엔드포인트의 자격 증명 얻기 | getStaticProxyCredentials, ProxyUtils를 통해 Java에 노출되는 Kotlin 확장입니다 |
| 플랫폼의 프록시 선택으로 URL 열기 | HttpConnectionUtils.openConnection(location) 또는 openHttpConnection(location) |
2024년 IntelliJ Platform 소스가 나타내는 마이그레이션 API에서 이러한 네트워크 유형은 com.intellij.util.net에 있습니다. 예를 들어 Kotlin은 프롬프트 없이 구성을 검사하고 알려진 정적 프록시 자격 증명을 조회할 수 있습니다.
import com.intellij.util.net.ProxyAuthentication
import com.intellij.util.net.ProxyCredentialProvider
import com.intellij.util.net.ProxySettings
import com.intellij.util.net.getStaticProxyCredentials
val settings = ProxySettings.getInstance()
val configuration = settings.getProxyConfiguration()
val credentials = settings.getStaticProxyCredentials(
ProxyCredentialProvider(
ProxyAuthentication.getInstance()::getKnownAuthentication
)
)
이 도우미에는 ProxyCredentialProvider가 필요합니다. 메서드 참조가 인증 서비스를 해당 인터페이스에 맞춰 줍니다. 자격 증명은 구성된 프록시의 호스트와 포트로 조회됩니다. null 결과는 구성이 정적이지 않음을 뜻할 수 있으므로, PAC로 선택된 프록시에 인증이 필요 없다는 것을 입증하지는 않습니다.
실제 작업이 HTTP 요청을 보내는 것이라면 호스트와 포트 필드에서 라우팅을 다시 구성하는 대신 플랫폼 연결 도우미를 사용하세요. 이 도우미는 대상 URL에 대해 플랫폼의 프록시 선택기에 문의합니다. asJavaProxy()로 정적 구성을 변환하면 예외 목록이 존중되지 않고 PAC 선택이 구현되지 않습니다.
대화형 인증이 필요하면 ProxyAuthentication.getPromptedAuthentication(prompt, host, port)는 별개의, 차단될 수 있는 작업입니다. 코드를 마이그레이션할 때 이 구분을 유지하고, 플러그인이 지원하는 최소 Platform SDK에 대해 API 가용성을 확인하세요.