シングルサインオン(3)| JIRAインストールとJIRA統合CASプラクティス

シングルサインオン(3)| JIRAインストールとJIRA統合CASプラクティス

著者:Adon
マイクロチャネル公開番号:ITのJiege旅行(ID:Jake_Internet)

JIRAの概要
Jiraは、アトラシアンが作成したビジネス管理ソフトウェアです。要件、バグ、タスクのいずれであっても、ビジネスの一種であるため、JIRAは要件管理、欠陥追跡、タスク管理など、多くの役割を実行できます。

Jiraは特別なスクラムビューとかんばんビューを提供するため、アジャイル開発チームに適しています。

ツールの基本概念の
問題:さまざまな組織がjiraを使用してさまざまな問題を追跡しています。Jiraのプロジェクトは、企業組織に応じてカスタマイズされており、問題のコレクションです。
モジュール:プロジェクトモジュールは、プロジェクト内の問題の論理的なコレクションです。各プロジェクトは、企業組織の要件に応じて複数のモジュールを設定できます。
例:ソフトウェア開発プロジェクトでは、「ドキュメント」、「メールシステム」、「ユーザーインターフェイス」などのモジュールを設定できます。

バージョン:一部のプロジェクトタイプ、特にソフトウェア開発プロジェクトでは、問題に関連する製品のバージョンが非常に役立ちます。
1つの質問に2種類のバージョン情報を設定できます。
影響を受けるバージョン----問題のエラーがどのバージョンにあるかを明確に反映できます。
例:ソフトウェアの欠陥は、製品の1.1および1.2に影響を与える可能性があります

修復されたバージョン-----報告された問題がどのバージョンにあるか、またはどのバージョンで修正されたかを反映できます。
例:ソフトウェアの欠陥は、製品の1.1および1.2バージョンに影響します。この欠陥は、バージョン2.0で修正されています。修正されていない問題は計画として分類されることに注意してください。
バージョンには3つの状態があります。リリース済み、未リリース、アーカイブ済みの
バージョンでリリース日を設定できます。jiraは、リリースされていない期限切れバージョンを自動的に強調表示し、「期限切れ」記号をマークします。

インストール
環境:Centos
7
Jdk-1.8 Mysql
-5.6 Jira
-7.8.1

Javaバージョンを表示

# java -version

Mysql(yum)を
インストールすると、mysqlがインストールされます。これは、一般的にjiraに対応するデータベース、ユーザー名、およびパスワードです。

yum install wget

mysqlソースをダウンロードする

安装rpm包
# wget http://repo.mysql.com/mysql-community-release-el7-5.noarch.rpm

安装后,会得到两个mysql的yum的repo源
# rpm -ivh mysql-community-release-el7-5.noarch.rpm

安装mysql
# yum install mysql-server mysql-client

启动mysql
# systemctl enable mysqld
# systemctl start mysqld

重置mysql密码
# mysql -u root 
> use mysql;
> update user set password=password(‘new passed’) where user=’user_name’;
> flush privileges;
> create database jira default characher set utf8 collate utf8_bin;
> show databases;
> grant all on jira. To ‘jira’@’%’ indentified by ‘jirapasswd’;
> flush privileges;


Linuxシステムのビット数を表示するには、jiraをダウンロードしてインストールします

# genconf LONG_BIT
64

JiraダウンロードWebサイト
アドレス:https//www.atlassian.com/software/jira/update

# wget https://product-downloads.atlassian.com/software/jira/downloads/atlassian-jira-software-7.8.1-x64.bin
# chmod 755 ./atlassian-jira-software-7.8.1-x64.bin
# ./atlassian-jira-software-7.8.1-x64.bin
Unpacking JRE ...
Starting Installer ...
This will install JIRA Software 7.4.1 on your computer.
OK [o, Enter], Cancel [c]
o                                                               # 按o安装
Choose the appropriate installation or upgrade option.
Please choose one of the following:
Express Install (use default settings) [1], Custom Install (recommended for advanced users) [2, Enter], Upgrade an existing JIRA installation [3]
2                                                               # 2 为自定义安装
Where should JIRA Software be installed?
[/opt/atlassian/jira]
/usr/local/atlassina/jira                                       # 自定义安装目录
Default location for JIRA Software data
[/var/atlassian/application-data/jira]
/usr/local/atlassina/jira_data                                  # 自定义数据目录
Configure which ports JIRA Software will use.
JIRA requires two TCP ports that are not being used by any other
applications on this machine. The HTTP port is where you will access JIRA
through your browser. The Control port is used to startup and shutdown JIRA.
Use default ports (HTTP: 8080, Control: 8005) - Recommended [1, Enter], Set custom value for HTTP and Control ports [2]
2                                                               # 2为自定义端口
HTTP Port Number
[8080]                                                          # 8080 为默认端口
8050                                                            # http连接端口
Control Port Number
[8005]
8040                                                            # 控制端口
JIRA can be run in the background.
You may choose to run JIRA as a service, which means it will start
automatically whenever the computer restarts.
Install JIRA as Service?
Yes [y, Enter], No [n]
y                                                               # 是否开机自启
Details on where JIRA Software will be installed and the settings that will be used.
Installation Directory: /usr/local/atlassina/jira 
Home Directory: /usr/local/atlassina/jira_data 
HTTP Port: 8050 
RMI Port: 8040 
Install as service: Yes 
Install [i, Enter], Exit [e]
i                                                               # 确认已选配置

Extracting files ...
Please wait a few moments while JIRA Software is configured.
Installation of JIRA Software 7.4.1 is complete
Start JIRA Software 7.4.1 now?
Yes [y, Enter], No [n]
y                                                               # 启动
Please wait a few moments while JIRA Software starts up.
Launching JIRA Software ...
Installation of JIRA Software 7.4.1 is complete
Your installation of JIRA Software 7.4.1 is now ready and can be accessed
via your browser.
JIRA Software 7.4.1 can be accessed at http://localhost:8050
Finishing installation ...


/ opt / Atlassian / jiraおよび/ var / Atlassian / application-data / jiraディレクトリにインストールされているデフォルトのポートJiraを変更します。jiraがリッスンするポートは8080です。Jiraのメイン設定ファイルは/opt/Atlassian/jira/conf/server.xmlファイルに保存されています。

# vim /opt/Atlassian/jira/conf/server.xml
# cd /opt/Atlassian/jira/bin
# ./start-jira.sh

JIRAをクラックするには
、最初にjiraを閉じ、クラックされたパッケージ内の2つのファイルatlassian-extras-3.2.jarとmysql-connector-java-5.1.39-bin.jarを/ opt / Atlassian / jira / Atlassian-jira / WEBにコピーします。 -INF / libディレクトリ

Atlassian-extras-3..2.jarは、jiraシステムMysql
-connectir-javaをクラックしてmysqlデータベースドライバーパッケージに接続するために使用されます

# cp mysql-connector-java-5.1.47.jar /opt/atlassian/jira/lib/
# cp ./atlassian-extras-3.2.jar /opt/atlassian/jira/atlassian-jira/WEB-INF/lib

登録コードを使用して、公式Webサイトに30日間登録することもできます。
公式Webサイトを登録する:https//my.atlassian.com
または次のアドレスを使用する:
https//id.atlassian.com/signup?application = mac&continue = https:/ /my.atlassian.com
アカウントにログインした、[新しい評価ライセンス]を選択します

シングルサインオン(3)| JIRAインストールとJIRA統合CASプラクティス
上図で生成されたキーをページにコピーします

シングルサインオン(3)| JIRAインストールとJIRA統合CASプラクティス
管理者ユーザーを設定する
シングルサインオン(3)| JIRAインストールとJIRA統合CASプラクティス

インストールが完了しました。
シングルサインオン(3)| JIRAインストールとJIRA統合CASプラクティス

Jira統合cas
リファレンス記事:https//github.com/apereo/java-cas-client#atlassian-integration
ダウンロードcas-client依存関係パッケージアドレス:http//central.maven.org/maven2/org/jasig/cas /クライアント/

アイデア
の配置Casのクライアント実装は、クライアント側でcasのフィルターとリスナーを構成することによって実現され、最初にサブシステムのセッションを監視し、casサーバーから送信されたコマンドを受信するように構成されます。
Jiraには、ユーザーのログインとログアウトのための独自の認証メカニズムがあります。Jiraのログインは、主に認証機能com.atlassian.jira.security.login.JiraSeraphAuthenticatorに依存して
います次に、jiraの構成ファイルでcasのクライアント依存関係を構成し、置き換えます。 Jiraのオーセンティケーターはcasの統合を実現でき、casの公式Webサイトには関連するjarパッケージと構成手順が記載されています。

主な手順1.web.xmlを構成
します
フィルターとリスナーの場所に
注意を払う必要があります。2。seraph -config.xmlを構成し、ジャンプアドレスを設定します。3。依存パッケージをjiraディレクトリにコピーします。注意を払う必要があります。 2つのパッケージバージョンは一貫している必要があります

プロセス
1.web.xmlを構成します

フィルタとリスナーの2つの構成を構成する必要があります

# vim /opt/Atlassian/jira/Atlassian-jira/WEB-INF/web.xml
a.配置cas的过滤器
    <!-- CAS:START - JAVA Client Filters -->
    <filter>
         <filter-name>CasSingleSignOutFilter</filter-name>
         <filter-class>org.jasig.cas.client.session.SingleSignOutFilter</filter-class>
    </filter>
    <filter>
         <filter-name>CasAuthenticationFilter</filter-name>
         <filter-class>org.jasig.cas.client.authentication.AuthenticationFilter</filter-class>
         <init-param>
              <param-name>casServerLoginUrl</param-name>
              <param-value>http://192.168.1.133:8080/cas/login</param-value>
         </init-param>
         <init-param>
              <param-name>serverName</param-name>
              <param-value>http://192.168.1.20:8080/</param-value>
         </init-param>
    </filter>
    <filter>
         <filter-name>CasValidationFilter</filter-name>
         <filter-class>org.jasig.cas.client.validation.Cas20ProxyReceivingTicketValidationFilter</filter-class>
         <init-param>
               <param-name>casServerUrlPrefix</param-name>
               <param-value>http://192.168.1.133:8080/cas/</param-value>
         </init-param>
         <init-param>
               <param-name>serverName</param-name>
               <param-value>http://192.168.1.20:8080/</param-value>
         </init-param>
         <init-param>
               <param-name>redirectAfterValidation</param-name>
               <param-value>true</param-value>
         </init-param>
    </filter>
<!-- CAS:END-->

<!-- CAS:START Java client filter mappings-->
    <filter-mapping>
          <filter-name>CasSingleSignOutFilter</filter-name>
          <url-pattern>/*</url-pattern>
    </filter-mapping>
    <filter-mapping>
          <filter-name>CasAuthenticationFilter</filter-name>
          <url-pattern>/*</url-pattern>
          <!--需要全匹配,不然就会直接可以访问到登录页面的问题-->
    </filter-mapping>
    <filter-mapping>
          <filter-name>CasValidationFilter</filter-name>
          <url-pattern>/*</url-pattern>
     </filter-mapping>
  <!--CAS:END-->
     <filter-mapping>
          <filter-name>login</filter-name>
          <url-pattern>/*</url-pattern>
          <dispatcher>REQUEST</dispatcher>
          <dispatcher>FORWARD</dispatcher>
     </filter-mapping>

フィルタ構成の概要

シングルサインオン(3)| JIRAインストールとJIRA統合CASプラクティス
フィルタマッピングの設定手順

ログインフィルターでマッピングを構成する必要があります


b.配置监听器
<listener>
          <listener-class>org.jasig.cas.client.session.SingleSignOutHttpSessionListener</listener-class>
</listener>


リスナーの構成は、リスナーを「サーブレットコンテキストリスナーを追加しない」という段落の上または下に構成する必要があることを示しています。

シングルサインオン(3)| JIRAインストールとJIRA統合CASプラクティス
2.seraph-config.xmlを構成します

seraph-config.xmlを変更し、認証をcasに変更し、ログアウトおよびログイン情報を構成する必要があります

a。ログインおよびログアウト情報を構成します

# vim /opt/atlassian/jira/atlassian-jira/WEB-INF/classes/seraph-config.xml
-->
            <param-name>login.url</param-name>
            <param-value>http://192.168.1.133:8080/cas/login?service=${originalurl}</param-value>
<!--
            <param-value>/login.jsp?permissionViolation=true&amp;os_destination=${originalurl}&amp;page_caps=${pageCaps}&amp;user_role=${userRole}</param-value>
-->
            <!--<param-value>http://sso.mycompany.com/login?redirectTo=${originalurl}</param-value>-->
        </init-param>
        <init-param>
            <!--
              the URL to redirect to when the user explicitly clicks on a login link (rather than being redirected after
              trying to access a protected resource). Most of the time, this will be the same value as 'login.url'.
                - same properties as login.url above
            -->
            <param-name>link.login.url</param-name>
            <param-value>http://192.168.1.133:8080/cas/login?service=${originalurl}</param-value>

<!--
            <param-value>/login.jsp?os_destination=${originalurl}</param-value>
-->
            <!--<param-value>/secure/Dashboard.jspa?os_destination=${originalurl}</param-value>-->
            <!--<param-value>http://sso.mycompany.com/login?redirectTo=${originalurl}</param-value>-->
        </init-param>
        <init-param>
            <!-- URL for logging out.
                 - If relative, Seraph just redirects to this URL, which is responsible for calling Authenticator.logout().
                 - If absolute (eg. SSO applications), Seraph calls Authenticator.logout() and redirects to the URL
                 -->
            <param-name>logout.url</param-name>
            <param-value>http://192.168.1.133:8080/cas/logout</param-value>
            <!--<param-value>/secure/Logout!default.jspa</param-value>-->
            <!--<param-value>http://sso.mycompany.com/logout</param-value>-->
        </init-param>

シングルサインオン(3)| JIRAインストールとJIRA統合CASプラクティス

casの認証方法を設定します。元の認証方法に注意してください

シングルサインオン(3)| JIRAインストールとJIRA統合CASプラクティス
3.cas依存関係パッケージをコピーします

casクライアントが依存するjarパッケージ(cas-client-core-3.3.3.jar、cas-client-integration-atlassian-3.3.3.jar)を/ opt / atlassian / jira / Atlassian-jira / WEBにコピーします。 -INF / lib


#  cp cas-client-* /opt/atlassian/jira/atlassian-jira/WEB-INF/lib/

4.jiraサービスを再起動します

サービス開始

# /opt/Atlassian/jira/bin/start-jira.sh
关闭服务
# /opt/Atlassian/jira/bin/shutdown.sh
#查看日志
# tail -f /opt/Atlassian/jira/logs/Catalina.out

考えられる問題
1.com.atlassian.plugin.osgi.container.OsgiContainerException:プラグインを開始できません:com.atlassian.jira.plugins.jira-development-integration-plugin
理由:質問
2をクラックするときに言語パックの問題が存在し
ますサービス追加するには認証されていないサービスのcasaに、casがjsonからのデータを初期化できるように、。/ tomcat / webapps / cas / WEB-INF / class /application.propertiesでcas.serviceRegistry.initFromJson = trueを構成する必要もあります。

Confluenceがcasを統合
するため主な手順: 1。web.xml
ファイルを構成し、フィルターを設定して一致させます
2.
seraph -config.xmlを構成し、cas情報へのアクセスを設定します3. xwork.xmlを変更します(このファイルはconfluenceに存在します-3.0。1.jar)、ログアウトを構成します4.cas
ログイン用のjarパッケージをインポートします5.cas
サービスを再起動します
6.ログインテスト

1.web.xmlを構成します

web.xmlを編集して、フィルターとリスナーを追加します

# vim /opt/Atlassian/confluence/confluence/confluence/WEB-INF/web.xml

フィルター定義:すべてのフィルターの背後で、casフィルターを構成します

<!—配置过滤器和cas以及本地服务的路径信息>
<!--CAS:START - Java Client Filters-->
    <filter>
        <filter-name>CasSingleSignOutFilter</filter-name>
        <filter-class>org.jasig.cas.client.session.SingleSignOutFilter</filter-class>
    </filter>
    <filter>
        <filter-name>CasAuthenticationFilter</filter-name>
        <filter-class>org.jasig.cas.client.authentication.AuthenticationFilter</filter-class>
        <init-param>
            <param-name>casServerLoginUrl</param-name>
            <param-value>http://192.168.1.136:8080/cas/login</param-value>
        </init-param>
        <init-param>
            <param-name>serverName</param-name>
            <param-value>http://192.168.1.30:8090/</param-value>
        </init-param>
    </filter>
    <filter>
        <filter-name>CasValidationFilter</filter-name>
        <filter-class>org.jasig.cas.client.validation.Cas20ProxyReceivingTicketValidationFilter</filter-class>
        <init-param>
            <param-name>casServerUrlPrefix</param-name>
            <param-value>http://192.168.1.136:8080/cas/</param-value>
        </init-param>
        <init-param>
            <param-name>serverName</param-name>
            <param-value>http://192.168.1.30:8090/</param-value>
        </init-param>
    </filter>
<!--CAS:END-->

シングルサインオン(3)| JIRAインストールとJIRA統合CASプラクティス
フィルターの一致、ログイン時の一致


<!-- End plugins 2.5 filter changes -->
    <!--CAS:START - Java Client Filter Mappings-->
    <filter-mapping>
         <filter-name>CasSingleSignOutFilter</filter-name>
         <url-pattern>/*</url-pattern>
    </filter-mapping>
    <filter-mapping>
         <filter-name>CasAuthenticationFilter</filter-name>
         <url-pattern>/login.action</url-pattern>
    </filter-mapping>
    <filter-mapping>
         <filter-name>CasValidationFilter</filter-name>
         <url-pattern>/*</url-pattern>
    </filter-mapping>

    <!--CAS:END -->
    <filter-mapping>
        <filter-name>login</filter-name>
        <url-pattern>/*</url-pattern>
        <dispatcher>FORWARD</dispatcher>
        <dispatcher>REQUEST</dispatcher>
        <dispatcher>ERROR</dispatcher>
</filter-mapping>

シングルサインオン(3)| JIRAインストールとJIRA統合CASプラクティス
リスナー構成アドレス

すべてのリスナーの前に、リスナーを構成します。つまり、サーブレットコンテキストリスナー(アプリの起動/シャットダウン時に実行)の段落の後に、リスナーを構成します。

<listener>
        <listener-class>org.jasig.cas.client.session.SingleSignOutHttpSessionListener</listener-class>
</listener>

シングルサインオン(3)| JIRAインストールとJIRA統合CASプラクティス
2.seraph-config.xmlを構成します

seraph-config.xmlを構成し、casログイン情報へのアクセスを設定し、confluenceの認証情報をcasに設定​​します

#  vim /opt/Atlassian/confluence/confluence/WEB-INF/classes/seraph-config,xml

デフォルトのログイン構成を変更する


<parameters>
        <init-param>
            <param-name>login.url</param-name>
          <!--  <param-value>/login.action?os_destination=${originalurl}&amp;permissionViolation=true</param-value>
                -->
            <param-value>http://192.168.1.136:8080/cas/login?service=${originalurl}</param-value>
        </init-param>
        <init-param>
            <param-name>link.login.url</param-name>
           <!-- <param-value>/login.action</param-value>-->
            <param-value>http://192.168.1.136:8080/cas/login?service=${originalurl}</param-value>
        </init-param>
        <init-param>
设定授权信息
   <!-- Default Confluence authenticator, which uses the configured user management for authentication. -->
  <!--  <authenticator class="com.atlassian.confluence.user.ConfluenceAuthenticator"/>-->
    <authenticator class="org.jasig.cas.client.integration.atlassian.ConfluenceCasAuthenticator"/>

シングルサインオン(3)| JIRAインストールとJIRA統合CASプラクティス

シングルサインオン(3)| JIRAインストールとJIRA統合CASプラクティス
3.ログアウトを構成します

xwork.xmlファイルを取得するには、libディレクトリからconfluence-6.9.0.jarファイルを取得し、jarパッケージを解凍用のディレクトリにコピーする必要があります。

# `` `
cp /opt/Atlassian/confluence/confluence/WEB-INF/lib/confluence-6.9.0.jar / home / ceshi /

yum install -y unzip

confluenceを解凍-6.9.0.jar-d / home / ceshi / confluence

取得したxwork.xmlファイルを/ opt / Atlassian / confluence / confluence / WEB-INF / classesディレクトリにコピーします

cp /home/ceshi/confluence/xwork.xml /opt/Atlassian/confluence/confluence/WEB-INF/classes/xwork.xml

vim /opt/Atlassian/confluence/confluence/WEB-INF/classes/xwork.xml


设定退出重定向到cas服务器上

<action name = "logout" class = "com.atlassian.confluence.user.actions.LogoutAction">
<interceptor-ref name = "defaultStack" />
<!-<result name = "error" type = "velocity" > /logout.vm </ result>->
<result name = "success" type = "redirect"> http://192.168.1.136:8080/cas/logout </ result> ;
</ action>



![](https://s4.51cto.com/images/blog/202101/25/971ab3b78f039b56a04b5566e38f0be0.png?x-oss-process=image/watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_90,type_ZmFuZ3poZW5naGVpdGk=)

**4.添加jar包**

添加的jar包为csa-client-core-3.3.3.jar和cas-client-integration-atlassian-3.5.0.jar,貌似版本不同不会报错

# cp ./cas-client* /opt/Atlassian/confluence/confluence/WEB-INF/lib/

**5.重启confluence服务**

# /opt/Atlassian/confluence/bin/stop-confluence.sh
# /opt/Atlassian/confluence.bin/start-confluence.sh
6.登录测试

おすすめ

転載: blog.51cto.com/15067236/2606461