> 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.3.0.md).

# Java SDK 17.3.0

> **互換性に影響する変更**
>
> **`KeeperFile.url`:** `String` から `String?` に変更。`url` を必ず存在するものとして扱っていたコードでは、nullの可能性を考慮した処理が必要です。サーバー側でこのフィールドが省略される場合があり、以前の動作ではNPEクラッシュが発生していました。
>
> **`KeeperRecordData.custom`:** `MutableList<KeeperRecordField>?` からnull不可の `MutableList<KeeperRecordField>` に変更。このフィールドに `null` を代入するとコンパイルエラーとなるため、空のリストを使用してください。
>
> **`KEY_SERVER_PUBIC_KEY_ID` の非推奨化:** 17.2.0で公開された誤記を含む定数名を正しい `KEY_SERVER_PUBLIC_KEY_ID` に置き換えました。旧名称はソースおよびバイトコード互換性維持のため `@Deprecated` エイリアスとして引き続き利用できます。保存される構成キー (`"serverPublicKeyId"`) に変更はありません。

* **KSM-878 / KSM-1032:** 指数バックオフによる自動スロットリングリトライ機能を追加。HTTP 403によるスロットリング応答を最大5回まで自動的に再試行 (11～176秒、±25%のジッター付き）。応答に `retry_after` が含まれる場合はその値を優先。再試行回数を超えた場合は `KeeperThrottleException` を送出。
* **KSM-1008:** 型付きの `KeeperRecordLink` アクセサを追加 (Python版と同等)。権限のブール値 (`allowsRotation`、`allowsConnections` など、`allowedSettings` をフォールバックとして利用)、認証情報フラグ、AI/JIT設定およびメタデータへのアクセサに対応。
* **KSM-902:** カスタムサーバー公開鍵のサポートを追加。構成項目 `serverPublicKey`、4セグメント形式のワンタイムトークン、または `SecretsManagerOptions` から指定可能。カスタム公開鍵が有効な間、サーバーからの鍵ローテーション通知は暗黙的に上書きせず、明確なエラーを送出。
* **KSM-1026:** `SecretsManagerException` を公開 (`open class`) クラスに変更。SDKの例外を型で捕捉できるようになりました。`KeeperThrottleException` もこのクラスを継承する公開クラスとなりました。
* **KSM-1072:** `PamSettingsConnection` に `dbConnectionMethod` フィールドを追加。他SDKと同等のフィールド構成となりました。
* **KSM-823:** カスタムフィールド未設定時に、レコード作成ペイロードから `KeeperRecordData.custom` が欠落する不具合を修正。デフォルトで空のリストが設定されるようになりました。
* **KSM-854:** iOS、Android、またはウェブボルトで作成されたレコードからファイルメタデータをダウンロードする際にクラッシュする不具合を修正。これらのクライアントでは `lastModified` を省略するため、従来はデシリアライザーで必須項目として扱われていました。
* **KSM-753:** 共有フォルダ内レコードのフィールドがnullを返していた不具合を修正。コマンダーまたはPowerShellで作成され、フォルダキーで暗号化されたレコードを誤ってアプリキーで復号していた不具合を解消しました。
* **KSM-765:** ファイルの `url` フィールドが欠落している場合にNPEクラッシュが発生していた不具合を修正。`downloadFile()` は型付きの例外を送出。
* **KSM-855:** `LocalConfigStorage` におけるファイルディスクリプタリーク、および `downloadFile`、`uploadFile`、`postFunction` における接続リークを修正。
* **KSM-985:** `base64ToBytes("")` および `webSafe64ToBytes("")` の不具合を修正。空の入力時に不可解なNPEが発生していた不具合を解消し、両関数とも対象フィールド名を示す `SecretsManagerException` を送出。
* **KSM-1066 / KSM-1067:** IL5環境で `serverPublicKey` が初期化後に `LocalConfigStorage` へ保存されない不具合を修正。また、サーバーからの鍵ローテーション通知によって設定済みのカスタム鍵が暗黙的に上書きされる不具合も修正。

**リンク**

* [Maven Centralパッケージ](https://central.sonatype.com/artifact/com.keepersecurity.secrets-manager/core/17.3.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.3.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.
