独自の Cipher の作成
独自の SecretStore
を作成することもできます。これは、特定の保管庫を使用してパスワードを保存する必要がある場合に特に便利です。
前提条件:
- Maven の基本的な知識
- Java の知識
ステップ 1: Maven プロジェクトを作成し、API 依存関係を取得
<Jira_installation_directory>/atlassian-jira/WEB-INF/lib
ディレクトリに移動します。次のコマンドを使用して、
atlassian-secrets-api.jar
ファイルをローカルの Maven リポジトリにインストールします。mvn install:install-file \ -Dfile=./atlassian-secrets-api-<version>.jar \ -DgroupId=com.atlassian.secrets \ -DartifactId=atlassian-secrets-api \ -Dversion=<version> \ -Dpackaging=jar \ -DgeneratePom=true
次のコマンドを使用して、
atlassian-secrets-store.jar
ファイルをローカルの Maven リポジトリにインストールします。mvn install:install-file \ -Dfile=./atlassian-secrets-store-<version>.jar \ -DgroupId=com.atlassian.secrets \ -DartifactId=atlassian-secrets-store \ -Dversion=<version> \ -Dpackaging=jar \ -DgeneratePom=true
次の pom を使用して Maven プロジェクトを作成します。
<?xml version="1.0" encoding="UTF-8"?> <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0http://maven.apache.org/xsd/maven-4.0.0.xsd"> <modelVersion>4.0.0</modelVersion> <groupId><your_group_ID></groupId> <artifactId><your_artifact_ID></artifactId> <version><your_version></version> <properties> <maven.compiler.source>1.8</maven.compiler.source> <maven.compiler.target>1.8</maven.compiler.target> </properties> <build> <resources> <resource> <directory>src/main/resources/libs</directory> <excludes> <exclude>*</exclude> </excludes> <filtering>false</filtering> </resource> </resources> </build> <dependencies> <dependency> <groupId>com.atlassian.secrets</groupId> <artifactId>atlassian-secrets-api</artifactId> <version><api_version></version> <scope>provided</scope> </dependency> <dependency> <groupId>com.atlassian.secrets</groupId> <artifactId>atlassian-secrets-store</artifactId> <version><api_version></version> <scope>provided</scope> </dependency> </dependencies> </project>
ステップ 2: SecretStore インターフェイスを実装する
SecretStore インターフェイスには、store
と get
という 2 つのメソッドのみが含まれています。get
メソッドは Jira の起動中に呼び出されるため、長期実行タスクが起動時間に影響を与える可能性があります。store
メソッドは暗号化ツールでのみ使用されるため、Jira から呼び出されることはありません。
Jira 9.12 以降では、Cipher
インターフェイスは廃止されたものと見なしてください。代わりに、新しいインターフェイスの SecretStore
とそのメソッド store
および get
を使用してください。これらのメソッドは、対応する Cipher
インターフェイスのメソッド encrypt
および decrypt
に優先します。
Cipher
インターフェイスとそのメソッドは引き続き使用できますが、将来的には廃止されるため、新しい暗号化機能を設定するときには使用しないでください。
You can use Base64Cipher
and AlgorithmSecretStore
as examples.
ステップ 3: 実装のテスト
「Base64 エンコーディング」および「AES 暗号化」で説明されている暗号化ツールでは、Jira と同じコードを使用してパスワードを復号化します。これを使用して実装をテストできます。
CLI と jar が同じフォルダーにある場合、以下のコマンドを実行します。
java -cp "./*" com.atlassian.secrets.cli.db.DbCipherTool -c your.package.here.ClassName
ステップ 4: lib を Jira から利用可能にする
Jira が lib にアクセスできる必要があります。クラスはリフレクションを使用して初期化されます。lib を以下のディレクトリに配置します。
<Jira_installation_directory>/atlassian-jira/WEB-INF/lib
Jira をアップグレードした後で、lib を Jira インストール ディレクトリに再度コピーする必要があります。