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 の可用性を確認してください。