> For the complete documentation index, see [llms.txt](https://docs.keeper.io/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.keeper.io/release-notes/jp/enterprise/keeper-secrets-manager/2026/java-sdk-17.4.0.md).

# Java SDK 17.4.0

### 新機能

* **KSM-531:** HTTP/HTTPSプロキシのサポートを追加。SDKのすべての接続 (シークレットの取得、ファイルのアップロード、ファイルのダウンロード) をプロキシ経由で行えるようになりました。
  * `SecretsManagerOptions` に新しい `proxyUrl` オプションを追加。Java利用者向けに `SecretsManagerOptions.withProxy(storage, proxyUrl)` も追加。
  * 優先順位: 明示的な `proxyUrl` → `https.proxyHost` / `https.proxyPort` → `HTTPS_PROXY` / `https_proxy`。`NO_PROXY` および `http.nonProxyHosts` の除外設定も反映されます。KSMの通信はすべてHTTPSのため、`HTTP_PROXY` は無視されます。
  * 認証付きプロキシは `http://user:pass@host:port` 形式を使用します。407エラー発生時は、型付きの `SecretsManagerException` が送出され、他のHTTP/HTTPS呼び出しを行う前に設定が必要な `jdk.http.auth.tunneling.disabledSchemes` JVMフラグの名前が示されます。
  * オプション指定形式の新しいオーバーロード `downloadFile(options, file)` および `downloadThumbnail(options, file)` は、`proxyUrl`、`allowUnverifiedCertificate`、および設定済みのタイムアウトを反映します。引数1つの従来形式は変更ありません。
* **KSM-1176:** `KeeperRecord` に `isEditable` を追加。サーバー応答のエンベロープから転送される値で、`updateSecret` の呼び出し前に書き込み権限を確認できます。

### セキュリティ

* **KSM-1203:** `generatePassword` の最終文字のシャッフルで、暗号学的な乱数源ではなくKotlinの `Random.Default` を使用していた不具合を修正。`SecureRandom` を使用するようになりました。
* **KSM-1207:** `HttpsURLConnection` の呼び出し (クエリ、アップロード、ダウンロード) にタイムアウトが設定されておらず、無期限にハングする可能性があった不具合を修正。`SecretsManagerOptions` に `connectTimeoutMillis` (デフォルト5秒) および `readTimeoutMillis` (デフォルト30秒) を追加。
* **KSM-1248:** サーバーから提供されるキーIDを、保存前に組み込みの公開鍵テーブルと照合して検証するようになりました。認識できないIDは、保存済みの鍵状態を上書きせずに拒否されます。キーローテーションの再試行回数は最大3回に制限されます。
* **KSM-1262:** 構成ファイルおよびキャッシュファイルの書き込みを、アトミックな一時ファイル置き換え方式に変更し、データ書き込み前に0600権限を設定するようにしました。これにより、書き込み中に他のローカルユーザーがファイルを読み取れる可能性があった問題を解消しました。

### バグ修正

* **KSM-1081:** レスポンス内のいずれかのフォルダのキーが破損または欠落している場合に `getFolders()` がクラッシュしていた不具合を修正。復号できないフォルダはスキップされ、残りのフォルダは正常に返されるようになりました。
* **KSM-1086:** `deleteFolder()` が誤ったレスポンス型を返していた不具合を修正。`deleteSecret()` と同様に、フォルダ単位のステータスを含む `SecretsManagerDeleteFolderResponse` を返すようになりました。両方の呼び出しで、アイテム単位のサーバー側の失敗が呼び出し元に伝わるようになりました。
* **KSM-1270:** サーバーのフォルダデータに親の循環参照が含まれる場合に `getSharedFolderKey()` が無限ループしていた不具合を修正。該当するフォルダはスキップされるようになりました。

### 互換性に影響する変更

1. **`deleteFolder()` の戻り値の型。** `SecretsManagerDeleteResponse` の代わりに `SecretsManagerDeleteFolderResponse` を返すようになりました。`.records` を参照していた呼び出し元は、新しい型の `.folders` リストへ切り替える必要があります。実際には、既存の動作しているコードへの影響はありません。旧型はバックエンドが送信しない `records` フィールドを必須としていたため、以前はすべての呼び出しで値を返さず `MissingFieldException` が送出されていました。
2. **コンストラクタの拡張 (バイトコードレベルのみ)。** `KeeperRecord` および `SecretsManagerOptions` にコンストラクタパラメータが追加されました。Javaの呼び出し元は `@JvmOverloads` により17.3.0の全コンストラクタ形式を引き続き利用できますが、17.3.0向けにコンパイルされたKotlinコードは、再コンパイルせずに17.4.0のjarに入れ替えると `NoSuchMethodError` が発生します。jarをそのまま置き換えるのではなく、依存先を再ビルドしてください。

### **リソース**

* [Maven Centralパッケージ](https://central.sonatype.com/artifact/com.keepersecurity.secrets-manager/core/17.4.0)
* [Java SDKに関するドキュメント](/keeperpam/jp/secrets-manager/developer-sdk-library/java-sdk.md)


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter, and the optional `goal` query parameter:

```
GET https://docs.keeper.io/release-notes/jp/enterprise/keeper-secrets-manager/2026/java-sdk-17.4.0.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
