TestLink1.8.5 / 1.9.2 CAS (SSO) パッチ
こんにちは、SundayWalkerです。
以前、TestLink1.9用のCASパッチを紹介しましたが、TestLink1.8.5 と 1.9.2用のパッチも提供します。
以前からTestLinkとRedmineは、非常に良いツールと思っており、2つのツールの連携がより強化できると良いと考えておりました。
TestLink 1.8.5 / 1.9.2とRedmine 1.2.0のCASを使用したSingle Sign Onを行い連携するための設定手順を示します。
Redmine1.2.0が公開され、このバージョンからパスワードにSaltを使用するようになったため、以前紹介したCASの設定手順を変更する必要が発生しました。
また、以前の手順には記載漏れがありました。
今回は、XAMPPなども新規にインストールしなおしたので、その手順も含めて記載します。
インストールするソフトのバージョンの組み合わせでうまく動作しない場合もあったので、バージョンなどがわかるようにファイル名を明示するようにしました。
CASでRedmineのDBのユーザ情報をもとに認証を行えるように設定しています。
手順中のlocalhostの部分は適切なホスト名に変更ください。
また、セキュリティ上はCASサーバはSSLを使用するのが良いのですが、簡単のため暗号化せずにhttpとしています。
Windows 7 64bit OSにて作業をしたため、32bitアプリケーションのインストールフォルダが C:\Program Files (x86) フォルダ以下になっていますが、
32bit OSの場合は C:\Program Files フォルダ以下になると思われますので、読み替えてください。
64bit OSの場合でも、xamppなどの中心になるアプリケーションが32bitなので、ほかのアプリケーションも32bitとしたほうが動作しないなどの問題を起こしにくいようです。
====================================================
(1) Redmineの設定 その1
====================================================
(参考文献: http://www.redmine.org/projects/redmine/wiki/HowTo_Install_Redmine_in_a_sub-URI_on_Windows_with_Apache )
xamppをインストールします。(既に古いバージョンがインストールされている場合はバックアップをとって、サービスなどを停止、サービスを削除し、アンインストールしておきます。不要なXAMPPのフォルダは削除しておく。)
http://www.apachefriends.org/jp/xampp-windows.html
xampp-win32-1.7.1-installer.exe
をダウンロード(TestLink1.8.xの動作環境PHP5.2系の最新版)し、実行、C:\xampp フォルダにインストールします。(インストール時にApache, MySQLのサービス登録を選択。)
システム環境変数 path に C:\xampp\mysql\bin の指定がない場合は追加します。
http://rubyforge.org/frs/?group_id=167
rubyinstaller-1.8.7-p334.exe
をダウンロード(Redmine1.2.0の要求バージョンンの最新版)し、実行、C:\Program Files (x86)\ruby-1.8 にインストールします。
システム環境変数 path に C:\Program Files (x86)\ruby-1.8\bin の指定がない場合は追加します。
http://rubyforge.org/frs/?group_id=12&release_id=42049
RMagick-2.12.0-ImageMagick-6.5.6-8-Q8.zip
をダウンロード(執筆時の最新版)し、解凍し、ImageMagick-6.5.6-8-Q8-windows-dll.exe を実行、C:\Program Files (x86)\ImageMagick-6.5.6-Q8 フォルダにインストールします。
>cd RMagick-2.12.0-ImageMagick-6.5.6-8-Q8
>gem install rmagick-2.12.0-x86-mswin32.gem
http://www.redmine.org/projects/redmine/wiki/Download
http://rubyforge.org/frs/?group_id=167
redmine-1.2.0.zip
をダウンロード(執筆時の最新版)し、解凍し、C:\redmine にコピーします。
http://rubyforge.org/frs/?group_id=126
rubygems-1.6.2.zip
をダウンロード(Redmine1.2.0の要求バージョンの最新版)し、解凍し、コマンドプロンプトで以下を実行します。
>cd rubygems-1.6.2
>ruby setup.rb
>gem -v
1.6.2
>gem install rails -v=2.3.11
>gem install rack -v=1.1.1
>gem install i18n -v=0.4.2
>gem install mysql
http://instantrails.rubyforge.org/svn/trunk/InstantRails-win/InstantRails/mysql/bin/libmySQL.dll
をダウンロードして C:\Program Files (x86)\ruby-1.8\bin にコピーします。
初めてRedmineをインストールするときは、コマンドプロンプトで以下を実行して、mysqlのrootパスワードを変更し、redmineのDBを作成します。
(MysqlRootPassword、MysalRedminePassword の部分は適宜変更ください。)
>mysql -u root -p
mysql> SET PASSWORD FOR root@localhost=PASSWORD('MysqlRootPassword');
mysql> create database redmine character set utf8;
mysql> grant all privileges on redmine.* to 'redmine'@'localhost' identified by 'MysalRedminePassword';
mysql> quit;
C:\redmine\config\database.yml.example を database.yml としてコピーし、以下を参考に編集します。
------------
production:
adapter: mysql
database: redmine
host: localhost
- username: admin
+ username: redmine
- password:
+ password: MysqlRedminePassword
encoding: utf8
------------
コマンドプロンプトで以下を実行し、redmineの初期化を行います。
>cd \redmine
>rake generate_session_store
>rake db:migrate RAILS_ENV="production"
初めてRedmineをインストールするときは、コマンドプロンプトで以下を実行し、redmineの初期データを設定します。
>rake redmine:load_default_data RAILS_ENV="production"
コマンドプロンプトで以下を実行し、webrickサーバを起動します。
>ruby script/server webrick -e production
Webブラウザで http://localhost:3000/ にアクセスして、redmineの画面が表示されることを確認します。(localhostの部分はホスト名を指定)
Redmineの「Administration/管理」「Settings/設定」の「General/全般」の「Host name and path/ホスト名」と「protocol/プロトコル」を適切に設定して、「Save/保存」
Redmineを再起動します。
コマンドプロンプトで以下を実行し、mongrelを設定します。
>gem install mongrel
>gem install mongrel_service
C:\redmine\config/enviroment.rb の最後に以下を追加します。
------------
Redmine::Utils::relative_url_root = "/redmine"
------------
コマンドプロンプトで以下を実行し、mongrelサービスを登録します。(以下の例ではmongrelサーバを3つ用意していますが、適宜変更ください。)
>mongrel_rails service::install -N mongrel_redmine_3001 -D "Mongrel serving Redmine on 3001" -p 3001 -e production -c C:\Redmine
>mongrel_rails service::install -N mongrel_redmine_3002 -D "Mongrel serving Redmine on 3002" -p 3002 -e production -c C:\Redmine
>mongrel_rails service::install -N mongrel_redmine_3003 -D "Mongrel serving Redmine on 3003" -p 3003 -e production -c C:\Redmine
コマンドプロンプトで以下を実行し、mongrelサービスを起動します。
>net start mongrel_redmine_3001
>net start mongrel_redmine_3002
>net start mongrel_redmine_3003
C:\xampp\apache\conf\extra\httpd-mongrel.conf を作成します。(以下を参考)
------------
LoadModule proxy_module modules/mod_proxy.so
LoadModule proxy_http_module modules/mod_proxy_http.so
LoadModule proxy_balancer_module modules/mod_proxy_balancer.so
ProxyPass /redmine balancer://redmine_cluster
ProxyPassReverse /redmine balancer://redmine_cluster
BalancerMember http://127.0.0.1:3001
BalancerMember http://127.0.0.1:3002
BalancerMember http://127.0.0.1:3003
------------
C:\xampp\apache\conf\httpd.conf の最後に以下を追加します。
------------
Include "conf/extra/httpd-mongrel.conf"
------------
apacheを再起動して、Webブラウザで http://localhost/redmine にアクセスしてredmineが正しく表示されることを確認します。(localhostの部分はホスト名を指定)
FirefoxでHTMLが表示される場合は、
https://gist.github.com/826692
mongrel.rb
をダウンロードし、 C:\redmine\config/initializers フォルダにコピーし、mongrelを再起動します。
(参考文献:http://www.redmine.org/issues/6887 )
====================================================
(2) CASの設定
====================================================
(参考文献: https://wiki.jasig.org/display/CASUM/JDBC )
(LDAP/ActiveDirectoryを使用する場合の参考文献: https://wiki.jasig.org/display/CASUM/LDAP )
JDKをインストールします。
http://www.oracle.com/technetwork/java/javase/downloads/index.html
jdk-6u26-windows-i586.exe
をダウンロード(執筆時の最新版)し、実行します。
環境変数 JAVA_HOME に C:\Program Files (x86)\Java\jdk1.6.0_26 を設定します。
環境変数 path に %JAVA_HOME%\bin を追加します。
http://www.apachefriends.org/jp/xampp-windows.html
xampp-win32-tomcat-addon-6.0.18-2.2.11-pl1-installer.exe
をダウンロード(xampp 1.7.1に含まれるapache 2.2.11に対応した版)し、実行、C:\xampp フォルダにインストールします。
http://www.jasig.org/cas/download
cas-server-3.4.8-release.zip
をダウンロード(執筆時の最新版)し、解凍します。
cas-server-3.4.8\modules\cas-server-webapp-3.4.8.war を C:\xampp\tomcat\webapps\cas.war という名称でコピーします。
>cd \xampp\tomcat\bin
>service install
C:\xampp\apache\conf\extra\mod_jk.conf ファイルを編集します。(以下を参考)
------------
JkMount /examples/* ajp13
+#JkMount /examples/* ajp13
+JkMount /cas/* ajp13
------------
C:\xampp\tomcat\conf\server.xml を編集します。(以下を参考)
------------
+
------------
CASでSSLを使用しない場合は、
C:\xampp\tomcat\webapps\cas\WEB-INF\spring-configuration\ticketGrantingTicketCookieGenerator.xml を編集します。(以下を参考)
(参考文献: http://rossy-dev.blogspot.com/2009/11/grails-cascas2.html )
------------
------------
tomcatを起動します。
Webブラウザで http://localhost/cas/ にアクセス(localhostの部分はホスト名を指定)
ネットID:admin
パスワード:admin
でログインできることを確認します。
Webブラウザで http://localhost:8080/cas/ にアクセスし接続できないことを確認します。
C:\xampp\tomcat\webapps\cas\WEB-INF\deployerContext.xml を修正します。(以下を参考)
------------
+
+
+ Select hashed_password from users where auth_source_id IS NULL AND status = 1 AND login = ?
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ com.mysql.jdbc.Driver
+
+
+ jdbc:mysql://localhost:3306/redmine
+
+ redmine
+ MysqlRedminePassword
+
------------
C:\xampp\tomcat\webapps\cas\META-INF\maven\org.jasig.cas\cas-server-webapp\pom.xml を修正します。(以下を参考)
------------
org.jasig.cas
cas-server-support-ldap
${project.version}
+
+ org.jasig.cas
+ cas-server-support-ldap
+ ${project.version}
+
+
+
+ org.jasig.cas
+ cas-server-support-generic
+ ${project.version}
+
+
+
+ org.jasig.cas
+ cas-server-support-jdbc
+ ${project.version}
+
------------
C:\xampp\tomcat\webapp\cas\WEB-INF\lib に
cas-server-3.4.8\modules\cas-server-support-generic-3.4.8.jar をコピーする。
C:\xampp\tomcat\webapp\cas\WEB-INF\lib に
cas-server-3.4.8\modules\cas-server-support-jdbc-3.4.8.jar をコピーする。
C:\xampp\tomcat\webapp\cas\WEB-INF\lib に
cas-server-3.4.8\modules\cas-server-support-ldap-3.4.8.jar をコピーする。
http://www.springsource.com/download/community
spring-ldap-1.3.1.RELEASE-with-dependencies.zip
をダウンロード(執筆時の最新版)し、解凍し、 C:\xampp\tomcat\webapp\cas\WEB-INFO\lib に
spring-ldap-1.3.1.RELEASE\dist\modules\spring-ldap-core-1.3.1.RELEASE.jar をコピーする。
http://dev.mysql.com/downloads/
http://dev.mysql.com/downloads/connector/j/
mysql-connector-java-5.1.16.zip
をダウンロード(執筆時の最新版)し、解凍して、C:\xampp\tomcat\common\lib に
mysql-connector-java-5.1.16-bin.jar をコピーする。
http://commons.apache.org/dbcp/
http://commons.apache.org/dbcp/download_dbcp.cgi
commons-dbcp-1.4-bin.zip
をダウンロード(執筆時の最新版)し、解凍して、C:\xampp\tomcat\common\lib に
commons-dbcp-1.4.jar をコピーする。
http://commons.apache.org/pool/
http://commons.apache.org/pool/download_pool.cgi
commons-pool-1.5.6-bin.zip
をダウンロード(執筆時の最新版)し、解凍して、C:\xampp\tomcat\common\lib に
commons-pool-1.5.6.jar をコピーする。
tomcatを再起動して、apacheを再起動し、
http://localhost/cas/ にアクセスし、Redmineのadminのパスワードでログインできることを確認します。(localhostの部分はホスト名を指定)
Redmine1.2.0以降の場合は、パスワードにsaltを使用するようになったため、上記adminでログインできないので、以下を行います。
-------------------------------------------------------
tomcatを停止します。
http://maven.apache.org/download.html
apache-maven-3.0.3-bin.zip
をダウンロード(執筆時の最新版)し、解凍して、C:\Program Files\apache-maven-3.0.3 フォルダにコピーします。
環境変数 path に C:\Program Files\apache-maven-3.0.3\bin を追加します。
コマンドプロンプトで、以下を実行します。
>cd cas-server-3.4.8
>mvn package
cas-server-3.4.8\cas-server-support-jdbc\src\main\java\org\jasig\cas\adaptors\jdbc\QueryDatabaseAuthenticationHandler.java
を編集します。
------------
@NotNull
private String sql;
+ private String sqlsalt = null;
+
protected final boolean authenticateUsernamePasswordInternal(final UsernamePasswordCredentials credentials) throws AuthenticationException {
final String username = getPrincipalNameTransformer().transform(credentials.getUsername());
final String password = credentials.getPassword();
- final String encryptedPassword = this.getPasswordEncoder().encode(
- password);
+ String encryptedPassword = null;
+ if (sqlsalt != null) {
+ try {
+ final String dbSalt = getJdbcTemplate().queryForObject(
+ this.sqlsalt, String.class, username);
+ encryptedPassword = this.getPasswordEncoder().encode(
+ dbSalt + this.getPasswordEncoder().encode(password));
+ } catch (final IncorrectResultSizeDataAccessException e) {
+ encryptedPassword = this.getPasswordEncoder().encode(
+ password);
+ }
+ } else {
+ encryptedPassword = this.getPasswordEncoder().encode(
+ password);
+ }
try {
final String dbPassword = getJdbcTemplate().queryForObject(
this.sql, String.class, username);
return dbPassword.equals(encryptedPassword);
} catch (final IncorrectResultSizeDataAccessException e) {
// this means the username was not found.
return false;
}
}
/**
* @param sql The sql to set.
*/
public void setSql(final String sql) {
this.sql = sql;
+ }
+
+ /**
+ * @param sqlsalt The sql to set.
+ */
+ public void setSqlsalt(final String sqlsalt) {
+ this.sqlsalt = sqlsalt;
}
}
------------
コマンドプロンプトで、以下を実行します。
>cd cas-server-3.4.8\cas-server-support-jdbc
>mvn package
C:\xampp\tomcat\webapp\cas\WEB-INF\lib に
cas-server-3.4.8\cas-server-support-jdbc\target\cas-server-support-jdbc-3.4.8.jar をコピーします。
C:\xampp\tomcat\webapps\cas\WEB-INF\deployerContext.xml を修正します。(以下を参考)
------------
Select hashed_password from users where auth_source_id IS NULL AND status = 1 AND login = ?
+ Select salt from users where auth_source_id IS NULL AND status = 1 AND login = ?
------------
tomcatを起動します。
http://localhost/cas/ にアクセスし、Redmineのadminのパスワードでログインできることを確認します。(localhostの部分はホスト名を指定)
-------------------------------------------------------
====================================================
(3) TestLinkの設定
====================================================
C:\xampp\php\php.ini を編集します。(以下を参考)
------------
-max_execution_time = 60 ; Maximum execution time of each script, in seconds
+max_execution_time = 120 ; Maximum execution time of each script, in seconds
-memory_limit = 32M ; Maximum amount of memory a script may consume (16MB)
+memory_limit = 128M ; Maximum amount of memory a script may consume (16MB)
-upload_max_filesize = 64M
+upload_max_filesize = 256M
-;extension=php_curl.dll
+extension=php_curl.dll
-;extension=php_ldap.dll
+extension=php_ldap.dll
-;extension=php_openssl.dll
+extension=php_openssl.dll
------------
C:\xampp\apache\conf\http.conf および Include しているファイルに以下の行がなければ追加します。(xampp 1.7.1では設定されている。)
PHPIniDir "c:/xampp/php"
コマンドプロンプトにて、以下を実行します。
>cd \xampp\php
>go-pear.bat
>pear install http://downloads.jasig.org/cas-clients/php/1.1.2/CAS-1.1.2.tgz
testlink1.8.5 / 1.9.2を適切なフォルダに展開します。
testlinkに添付のパッチ(testlink-1.8.5-CAS-1.patch / testlink-1.9.2-CAS-1.patch)を適用するか、
もしくはzipファイル(testlink-1.8.5-CAS-1-diff.zip / testlink-1.9.2-CAS-1-diff.zip)解凍してコピーします。
testlink\config.inc.php の以下の行を適切に設定します。(localhostの部分はホスト名を指定)
------------
$tlCfg->authentication['method'] = 'CAS';
$tlCfg->authentication['cas_server_name'] = 'localhost';
$tlCfg->authentication['cas_server_port'] = 80;
$tlCfg->authentication['cas_server_path'] = 'cas';
------------
CASサーバにてSSLを使用していない場合は、 C:\xampp/php/PEAR/CAS/client.php を編集します。(以下を参考)
ポート番号は実際に使用するものに適切に変更等行ってください。
------------
{
// the URL is build only when needed
if ( empty($this->_server['base_url']) ) {
- $this->_server['base_url'] = 'https://'
+ if (($this->getServerPort()==80)||($this->getServerPort()==8080)) {
+ $this->_server['base_url'] = 'http://' ;
+ } else {
+ $this->_server['base_url'] = 'https://' ;
+ }
+ $this->_server['base_url'] = $this->_server['base_url']
.$this->getServerHostname()
.':'
.$this->getServerPort()
------------
====================================================
(4) Redmineの設定 その2
====================================================
CASプラグインを
http://github.com/ifad/redmine-cas-plugin
の「Download」からダウンロードします。(ZIPを選択)
C:\redmine\vendor\plugins\redmine_cas に解凍したものをコピーします。
コマンドプロンプトで以下を実行します。
>gem install rubycas-client
Redmineを再起動します。
Redmineの「Administration/管理」「Plugins/プラグイン」の「CAS Authentication」の「Configure/設定」にて、
Enabledにチェック
CAS base urlにhttp://localhost/cas/ (localhostの部分はホスト名を指定)
Keep native login linkにチェック
「Apply/適用」
C:\redmine\config\initializers\session_store.rb を編集し、セッションタイムアウトを設定します。(以下を参考)
(参考文献: http://blog.redmine.jp/articles/cookie-expiration/ )
------------
ActionController::Base.session = {
+ :expire_after => 60.minutes,
:key => '_redmine_session',
------------
Redmineを再起動します。
Redmineにログインできることを確認します。
Redmineからlogout 時にエラーとなり、C:\redmine\log\production.log に以下の内容がログされている場合
------------
NoMethodError (undefined method `destroy' for {}:Hash):
app/controllers/application_controller.rb:89:in `logged_user='
app/controllers/account_controller.rb:134:in `logout_user'
config/initializers/mongrel.rb:62:in `dispatch_cgi'
Rendering c:/redmine/public/500.html (500 Internal Server Error)
------------
C:\redmine\vendor\rails\actionpack\lib\action_controller\request.rb を以下を参考に変更し、redmine を再起動します。
(参考文献:http://dora.bk.tsukuba.ac.jp/~takeuchi/index.php?%A5%BD%A5%D5%A5%C8%A5%A6%A5%A7%A5%A2%2Frails%2Freset_session%20%A4%CE%A5%D0%A5%B0%A1%A9 )
------------
def reset_session
- session.destroy if session
+ session.destroy if session and session.respond_to?(:destroy)
self.session = {}
end
------------
TestLinkプラグインを
http://sourceforge.jp/ticket/browse.php?group_id=3032&tid=23961
redmine_testlink0.0.1.zip
からダウンロードし、解凍して、
C:\redmine\vendor\plugins\redmine_testlink フォルダにコピーします。
Redmineを再起動します。
Redmineの'Administration'の'Plugins'の画面にて、 'TestLink plugin for Redmine'の'Configure'を選択し、 'TestLink base path'に適切な値(例:/testlink)を設定します。
Redmineの'Administration'の'Roles and permissions'の画面にて、 'Testlink'の機能を利用するRoleを選択し、 'TestLink'にチェックを付けます。
Redmineの各プロジェクトの'Settings'のModulesにて'Testlink'にチェックを付けます。
====================================================
(5) Subversionの設定 (Redmineのユーザ情報で認証)
====================================================
(参考文献:http://www.redmine.org/projects/redmine/wiki/Repositories_access_control_with_apache_mod_dav_svn_and_mod_perl )
http://helog.jp/environment/subversion/1324/
Setup-Subversion-1.6.17.msi
をダウンロードして、インストールします。
C:\svn\work1 リポジトリを作成します。(work1は適切な名称にしてください。)
C:\Program Files (x86)\Subversion\bin の以下のファイルを C:\xampp\apache\modules にコピーします。
mod_dav_svn.so
Mod_authz_svn.so
C:\xampp\apache\conf\httpd.conf の以下のコメントをはずします。
LoadModule dav_module modules/mod_dav.so
LoadModule dav_fs_module modules/mod_dav_fs.so
C:\xampp\apache\conf\extra\httpd-svn.conf を以下を参考にして作成します。
------------
LoadModule dav_svn_module modules/mod_dav_svn.so
LoadModule authz_avn_module modules/mod_authz_svn.so
DAV svn
SVNParentPath "C:/svn"
------------
C:\xampp\apache\conf\httpd.conf の最後に以下を追加します。
------------
Include "conf/extra/httpd-svn.conf"
------------
apacheを再起動します。
Webブラウザで http://localhost/svn/work1 にアクセスしてリポジトリの内容が表示されることを確認します。(localhostの部分はホスト名を指定。work1は適切な名称にしてください。)
http://www.activestate.com/activeperl/downloads
ActivePerl-5.10.1.1008-MSWin32-x86-294165.msi
をダウンロードして、C:\perl にインストールします。
環境変数 path に C:\perl\bin が追加されていることを確認します。
>ppm install http://ppm.activestate.com/PPMPackages/5.10-windows/Authen-Simple-LDAP.ppd
>ppm install http://ppm.activestate.com/PPMPackages/5.10-windows/DBI.ppd
>ppm install DBD-MySQL
>ppm install mod_perl
C:\xampp\apache\modules を指定する。
C:\xampp\apache\conf\extra\httpd-perl.conf を以下を参考に作成します。
------------
LoadFile "C:/perl/bin/perl510.dll"
LoadModule perl_module modules/mod_perl.so
AddType text/html .pl
SetHandler perl-script
PerlResponseHandler ModPerl::Registry
PerlOption +ParseHeaders
------------
C:\xampp\apache\conf\httpd.conf の最後に以下を追加します。
------------
Include "conf/extra/httpd-perl.conf"
------------
C:\xampp\apache\conf\extra\httpd-svn.conf を以下を参考にして修正します。
------------
LoadModule dav_svn_module modules/mod_dav_svn.so
LoadModule authz_svn_module modules/mod_authz_svn.so
PerlLoadModule Apache::Authn::Redmine
PerlLoadModule Authen::Simple::LDAP
# PerlLoadModule IO::Socket::SSL
DAV svn
SVNParentPath "C:/svn"
AuthType Basic
AuthName "Redmine SVN Repository"
Require valid-user
Satisfy any
PerlAccessHandler Apache::Authn::Redmine::access_handler
PerlAccessHandler Apache::Authn::Redmine::authen_handler
## for mysql
RedmineDSN "DBI:mysql:database=redmine;host=localhost"
## for postgres
# RedmineDSN "DBI:Pg:dbname=databasename;host=my.db.server"
RedmineDbUser "redmine"
RedmineDbPass "MysqlRedminePassword"
------------
C:\redmine\extra\svn\Redmine.pm を C:\perl\site\lib\Apache\Authn\ にコピーします。
この状態では、Subversionリポジトリ名称と同じRedmineのプロジェクトID(Identifier/識別子)のプロジェクトのユーザ情報で認証が行われます。
Subversionリポジトリ名称とRedmineのプロジェクトID(Identifier/識別子)が異なるものを使用したい場合は、コピーしたRedmine.pmを以下を参考に編集します。
(以下は、リポジトリ名称:work1に対応してプロジェクトID:wk1、リポジトリ名称:work2に対応してプロジェクトID:wk2を使用する場合の例。名称は適切に変更ください。)
------------
Sub get_project_identifier {
my $r = shift;
my $location = $r->location;
my ($identifier) = $r->uri =~ m{$location/*([^/]+)};
+
+ $identifier = lc $identifier;
+ if ($identifier =~ /^work1$/) {
+ $identifier = 'wk1';
+ } elsif ($identifier =~ /^work2$/) {
+ $identifier = 'wk2';
+ }
+
$identifier;
}
------------
apacheを再起動します。
Webブラウザで http://localhost/svn/work1 にアクセスして認証が正しく行われて、リポジトリの内容が表示されることを確認します。(localhostの部分はホスト名を指定。work1は適切な名称にしてください。)
====================================================
(付録) 操作画面
====================================================
(1) testlink-cas-01.png Webブラウザで http://localhost/testlink/ にアクセスした時の画面
(2) testlink-cas-02.png IDとパスワードを入力後の画面
(3) testlink-cas-03.png Webブラウザで http://localhost/redmine/ にアクセスした時の画面
(4) testlink-cas-04.png work1プロジェクトを選択し、Testlinkタブをクリックした時の画面
(5) testlink-cas-04.png Webブラウザで http://localhost/testlink/ にアクセスし、Logoutをクリックした時の画面
以上、皆さんの参考になれば幸いです。