独自の Cipher の作成

このページの内容

お困りですか?

アトラシアン コミュニティをご利用ください。

コミュニティに質問

独自の SecretStore を作成することもできます。これは、特定の保管庫を使用してパスワードを保存する必要がある場合に特に便利です。

前提条件:

  • Maven の基本的な知識
  • Java の知識

ステップ 1: Maven プロジェクトを作成し、API 依存関係を取得

  1. <Jira_installation_directory>/atlassian-jira/WEB-INF/lib ディレクトリに移動します。

  2. 次のコマンドを使用して、 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
  3. 次のコマンドを使用して、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
  4. 次の 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 インターフェイスには、storeget という 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 インストール ディレクトリに再度コピーする必要があります。

最終更新日 2023 年 8 月 31 日

この内容はお役に立ちましたか?

はい
いいえ
この記事についてのフィードバックを送信する
Powered by Confluence and Scroll Viewport.