Wednesday, August 27, 2014

The CmisSync context menu: Check out documents, modify metadata

Context: CmisSync synchronizes documents between Alfresco and your PC:


NEW: We implemented a CmisSync context menu for Windows Explorer:


From this context menu, you can check out a document.
This will lock the document for you, so that you can edit it:



The same dialog also allows you to view metadata of the document:



You can modify the metadata, even when offline. It will be synchronized as soon as you are back online.

The document's history is also visible:



The CmisSync context menu is part of CmisSync Business, which also includes Single-Sign-On and professional support.

Friday, August 1, 2014

Liferay WEBコンテンツのストラクチャーとテンプレートの紹介

こんにちは、かわべです。本格的な夏ですが、近年は夏になると夕立を通り越したゲリラ豪雨があったりしますよね。天気が怪しいときはアメッシュを定期的にチェックして帰るタイミングを逃さないようにしているのですが、ときどき失敗してしばらく帰れなくなります。今回は雨が止むのを待つ間にブログを書くことにしました。

以前にWEBコンテンツについて紹介した際にはスルーしてしまったWEBコンテンツのストラクチャーとテンプレートについて簡単に紹介したいと思います。

WEBコンテンツのストラクチャーとテンプレートとは?

WEBコンテンツを作成する際にはストラクチャーを選択します。インストールした直後のLiferayには、タイトルとHTMLコンテンツを要素として備えたデフォルトのストラクチャーのみ存在しています。HTMLエディタで編集できるので自由度は高いですが、決まった構造のコンテンツを繰り返し作成するには手間がかかることもありますし、作成者によって違う見た目になってしまうかもしれません。同じ種類のWEBコンテンツを何度も作成する場合は、入力する要素の構造(ストラクチャー)と各要素の表示方法(テンプレート)を事前に定義しておけば、どのユーザでも簡単に同じ見栄えのコンテンツが作成できるようになります。

今回はデモ目的で作成した「社長あいさつ」というWEBコンテンツのストラクチャーとテンプレートを例として見ていきます。
とてもシンプルな例なのですが、使用するとこのようなWEBコンテンツが作成できるようになります。

では、まずはストラクチャーから追加していきます。以下の手順はすべて管理者権限のあるユーザで実行しています。

ストラクチャーの追加

「システム管理→コンテンツ→WEBコンテンツ」と移動してWEBコンテンツの管理画面へと移動し、そこから「管理→ストラクチャー」を選択すると、ストラクチャーの管理画面が表示されます。ここからストラクチャーの新規追加や、既存のストラクチャーの編集ができます。



左側にWEBコンテンツに定義できる様々な項目が用意されています。ドラッグ&ドロップで項目を追加後、設定タブで表示値などを変更してストラクチャーを作成していきます。
先ほどの「社長あいさつ」のストラクチャーは以下のような定義にしました。



「内容」はHTML、「感想をお聞かせください」はページヘのリンクとなっています(これはサイト内のページへのリンクになります)。

テンプレートの追加

次に、作成したストラクチャーに対応するテンプレートを作成します。ストラクチャーの管理画面から「テンプレートの管理→追加」をクリックすると、テンプレートの作成/編集画面に遷移します。



 テンプレートの記述方法としてFreeMarker、拡張可能スタイルシート言語、Velocityが選択できるようになっています。今回はFreeMarkerで作成してみましょう。といっても、Liferay 6.2でのテンプレートエディタは高機能なので、ストラクチャーの要素を表示させるのは非常に簡単です。
ストラクチャーで定義した要素は左ペインに用意されているので、必要な場所でクリックするだけで表示可能な状態でテンプレートに追加されます。



テンプレートエディタ上部のコメントにもあるように、変数やメソッドの自動補完機能も備わっています。


ストラクチャーで定義した要素以外でWEBコンテンツが持っている値(例:タイトル)を表示させたい場合は以下のように記述します。

${.vars['reserved-article-title'].data}

FreeMarkerで記述する場合、変数名にダッシュ等が含まれる場合のFreeMarkerの記述方法Velocityの変数一覧が参考になるかと思います。

さて、今回の「社長あいさつ」はhtmlのタグなども含めて、最終的に以下の内容でテンプレートを記述しました。



デフォルト値の設定

ストラクチャーを利用したWEBコンテンツの各要素にはデフォルト値を設定することができます。この機能も試してみましょう。ストラクチャーの管理画面から、今度は「デフォルト値の編集」を選択します。



表示される画面から、先ほど作成した感想リンク付きのテンプレートをデフォルトのテンプレートとして設定します。そして、「感想をお聞かせください」のリンクからは感想メールフォームのページへ遷移したいので、リンクのデフォルト値を「感想フォーム」として保存します。これは同じサイトに予め作成してあるページです。




これで準備は完了です。あとはこのストラクチャーを利用して好きなだけWEBコンテンツを作成しましょう。

ストラクチャーを利用したWEBコンテンツの作成

WEBコンテンツを作成するときに「社長あいさつ」ストラクチャーを選ぶと、デフォルト値の設定が反映された状態でコンテンツ作成画面が表示されます。






内容を適当に入力して保存し、どのように表示されるか見てみると…




こんな感じに表示されました。タイトル、内容、リンクが存在します。タイトルは<h3>要素として強調されています。また、リンク部分はテンプレートで指定したクラスに合わせてcssを適用しているので、ボタン風に表示されています。
感想リンクをクリックすると、感想フォームのページに飛ぶことができます。




ストラクチャーとテンプレートのいいところ

今回のはかなり単純な例ですが、ストラクチャー・テンプレートを適切に定義するとコンテンツ作成の手間が大幅に省けることがおわかりいただけるかと思います。もちろんストラクチャーやテンプレートを準備するユーザとコンテンツの作成者を別のユーザにすることも可能なので、コンテンツ作成者には難しい知識は必要ありません。

また、ストラクチャーは作成時に親を指定することで既存のものを拡張して作成することができます。例えば今回の「社長あいさつ」を拡張し、アイキャッチ用の写真を追加するのも簡単です。





WEBコンテンツの管理画面ではストラクチャーごとの閲覧ができますし、アセットパブリッシャーで特定のストラクチャーを持つWEBコンテンツのみを表示させるように設定することもできるので、コンテンツ管理も捗ります。





おわりに

WEBコンテンツでストラクチャーとテンプレートを利用するメリットが伝わったでしょうか。同種類のコンテンツを複数作成することが予めわかっている場合はぜひ利用してみてください!

Wednesday, July 9, 2014

Alfresco 5.0がリリースされたので早速インストールしてみた(Windows編) & 新機能の紹介を少々

こんにちは。大谷です。

今回は先日リリースされたAlfresco Community 5.0.aをWindowsにインストールする手順と、5.0.aの新機能について紹介したいと思います。インストールについてはデフォルトの簡易インストールで進めます。データベースとしてPostgreSQL、アプリケーションサーバとしてTomcatがインストールされます。


インストール手順


1. Alfrescoのダウンロードサイトからインストーラをダウンロードする。

2. インストーラを実行する。

3. インストーラの言語を指定する。



4. 次へをクリックし、インストールの種類を「簡易」に設定して次へをクリックする。


5. インストール先フォルダを指定して次へをクリックする。デフォルトではC:\Alfrescoにインストールされます。


6. 管理者パスワードを入力し、次へをクリックする。


7. 次へをクリックするとインストールが開始する。無事インストールされることを確認する。


以上でインストール完了です。alfrescoPostgreSQL、alfrescoTomcatの2サービスが追加されているはずです。これらのサービスを起動し、しばらくしてブラウザで http://localhost:8080/share にアクセスして以下のログイン画面が表示されて、管理者用のパスワードを入力してログインに成功したら準備完了です。




もしうまく動作しない場合は、 C:\Alfresco\tomcat\logs\alfrescotomcat-stderr.yyyy-mm-dd.log を確認してみてください。以下のようなログが出力されている可能性があります。

 2014/07/02 11:48:20 org.apache.catalina.core.StandardContext listenerStart
 致命的: クラス org.alfresco.web.app.ContextListener のアプリケーションリスナの設定中にエラーが発生しました
 java.lang.UnsupportedClassVersionError: org/alfresco/web/app/ContextListener : Unsupported major.minor version 51.0 (unable to load class org.alfresco.web.app.ContextListener)


この場合は、コマンドプロンプトで以下のコマンドを実行します。

 c:\alfresco\tomcat\bin\tomcat7w //ES//alfrescoTomcat

以下のようにTomcatのサービス設定ダイアログが表示されるので、JavaタグのJava Virtual Machineのパスが C:\Alfresco\java\jre\bin\server\jvm.dll になっていることを確認し、異なる場合は修正してください。上記エラーが出ている場合は、既存のJavaインストール(しかも1.6以下)を指していることが多いです。



修正したらAlfrescoサービスを再起動し、ブラウザでアクセスしてログイン画面が表示されることを確認します。


Alfresco 5.0の新機能


続いて、Alfresco 5.0の新機能について見ていきましょう。大きく分けると検索機能の強化とプレビュー機能の強化が挙げられます。

検索機能の強化


Alfresco 5.0での一番大きな変更点が、検索機能の強化になります。主な機能強化は以下のとおりです。
  • ファセット検索と検索結果の絞り込み
  • 検索文字列を複数指定した場合の挙動がOR検索からAND検索に変更
  • 検索結果画面からのコンテンツアクション実行
  • インスタント検索(画面右上の検索ボックスでのリアルタイム検索結果表示)



ファセット検索はもちろん大きな機能強化なのですが、個人的にはAND検索とアクション実行が嬉しいところです。これまで要件としてよく出てきていた内容で、ありがちなカスタマイズ項目だったりしました。

プレビュー機能の強化


Alfresco 5.0ではプレビューの機能も大幅に強化されています。主な変更点は以下のとおりです。
  • プレビューがHTML5ベースとなり、Flashが不要になった
  • プレビューでの検索やPDF形式でのダウンロード
  • 動画の疑似ストリーミング(プログレッシブダウンロード)



Flashが不要になったことで、より多くのクライアントでプレビュー機能を利用できるようになりました。また、大容量の動画ファイルをダウンロードすることなく再生できるようになったため、このようなメディアファイルを管理する環境での使い勝手も大きく向上するものと思われます。

その他の新機能


  • リッチテキストエディタの改善
  • サイトマネージャ
これまでは各サイトを訪問してサイトの設定を変更する必要がありましたが、Alfresco 5.0では管理者向けにサイトの一覧と簡単な管理を行えるUIが追加されました。



その他にも細かいところで様々な改善がなされていたりしますが、主要な機能強化は以上になります。

(2014/12/01追記) その後5.0.bがリリースされてさらにいくつかのエンハンスメントがなされています。詳しくは「Alfresco 5.0.bの機能紹介」を参照してください。


本エントリは以上になりますが、いかがでしたでしょうか。まずはAlfresco 5.0をインストールし、簡単に触ってみて使用感を確認していただければと思います。

Tuesday, July 1, 2014

LiferayのDocuments and Mediaポートレットでウイルススキャンを行う

こんにちは。おおたにです。

先日、社員旅行で房総半島を訪れました。弊社の社員旅行は宿/夕食以外全て自由行動というゆるい感じなので、うちはマザー牧場や鴨川シーワールドを見て回りました。

マザー牧場のモルちゃん。ダッコできます。かわええええ!

さらに、今年の社員旅行は12歳未満お断りな宿に子連れで泊まれるという何ともありがたい企画でして(くわしくはこちら)、まあ子連れじゃ食べられないような料理をいただいたりしたわけです。ちなみに、料金は自分+同伴者1人+自分の子供分は全て会社が負担してくれるので、重ね重ねとてもありがたいです。

子連れではなかなか食べられないコース料理。美味しくいただきました。

もちろん子供向けにも本気料理が…。味見しましたが、とても美味しかった。

夜には蛍とウミホタルを見に行くツアーがあったので参加しましたが、臆病なうちの娘(3歳)はずっと号泣しておりました。まあ暗いので仕方ないですね…。

こんな感じで今年も社員旅行を楽しんだわけですが、聞くところによると来年は弊社10周年とのことで、もうひと頑張りしてくれるとのこと。今から楽しみで仕方ありません。海外期待しちゃっていいのかな…

さて、前置きが長くなってしまいましたが、今回はLiferayのDocuments and Mediaポートレットでウイルススキャンを行う方法についてお話ししたいと思います。アップロードされたファイルのウイルスチェックというのはよく伺う要望なのですが、Liferayはその仕組みをデフォルトで備えています。具体的には、ウイルススキャンツールを別途導入し、そのツールとの連携設定を施すだけで実現できます。以下ではその設定手順を説明します。


まずはClam AntiVirusのインストールから


まず初めに、ウイルスチェックツールClam AntiVirusをインストールします。Clam AntiVirusであればLiferayがデフォルトで対応しており、簡単な設定だけで連携することができます。

インストール方法はOSによって異なるのですが、Windowsであればインストーラでインストールし、CentOSであればyumにRPMforgeリポジトリを追加してyum installで導入します。必要に応じて、clamscanコマンドをパス無しで実行できるようにパスを通してください。


Liferayでウイルススキャンの設定を行う


続いて、Liferay側でClam AntiVirusとの連携設定を行います。portal-ext.propertiesに以下の2行を追加します。

dl.store.antivirus.enabled=true
dl.store.antivirus.impl=com.liferay.portlet.documentlibrary.antivirus.ClamAntivirusScannerImpl

設定はこれだけ、とても簡単です。設定が終わったらLiferayを再起動します。


動作確認してみよう


設定が終わったら早速動作確認してみましょう。事前準備として、クライアントPCのリアルタイムスキャンを切っておくか、そのようなツールが入っていないPCをクライアントとして利用しましょう。クライアントPCにリアルタイムスキャンが設定されていると、テスト用のウイルスファイルが自動除去されてしまってテストができないからです。

テスト用のウイルスファイルをこちらからダウンロードし、このファイルをLiferayのDocuments and Mediaポートレットにアップロードします。正しく動作していると、以下の2点が確認できるはずです。
  • 画面に「Documents and Media is temporarily unavailable」と表示され、ファイルアップロードに失敗します。
  • ログファイル(catalina.out)に「com.liferay.portlet.documentlibrary.antivirus.AntivirusScannerException: Virus detected in...」と出力されます。ウイルスが検出されてExceptionが投げられていることが分かります。
もしファイルアップロードに成功してログに何も出力されない場合は、clamscanというコマンドを実行できるか否か、設定が正しく追記されているか等を確認してください。


いかがでしょうか。Liferayのウイルススキャン機能が比較的簡単に設定できることがお分かり頂けましたでしょうか。是非みなさまもお試しいただければと思います。







Friday, June 27, 2014

第22回Alfresco勉強会が開催されました

こんにちは。寺下です。この1年くらい体重が右肩上がりだったので何か手を打たないとこのままズルズルいってしまうと危機感を抱き、先々週くらいから弁当を持参するようにしています。ランチで外食に行ってしまうと、ごはんおかわり無料とか麺大盛り無料とかいう誘惑に抗い難く、ついつい食べ過ぎてしまうんですよね。そんなわけで弁当生活を始めたんですが、初めてなので当然弁当スキルなどなく、まずはできることからということで今のところ冷凍食品に頼っています。ただ、やってから気付いたんですがこの冷凍食品が普通においしい。僕の肥えてない舌では焼売とか店で出てきても気付けないんじゃないかと思われるレベル。このまま冷凍食品に頼る日がしばらく続きそうです。

さて、ここから本題ですが6/25(水)に22回目のAlfresco勉強会が開催されました。
今回もいつもどおり発表テーマを2つ用意してあったのですが、まだAlfrescoをインストールしただけであまりちゃんと触っていないという参加者の方が多かったため、発表は1つだけにして残りを質疑応答にするという前回と同じ形式で行いました。また、最後に少し時間があったのでAlfrescoの新しいWebクライアントであるWorkdeskを画面を見ながら簡単にご紹介させていただきました。今回見送った2つ目の発表は「Workdeskの検索テンプレートの作り方」だったのですが、これについては次回の勉強会で発表したいと思います。

今回発表した方の内容は、前回の予告どおりAlfrescoのマルチテナントについてでした。以下、簡単にご紹介します。詳しい内容は発表資料を見ていただければと思います。

Alfrescoのマルチテナント機能


発表資料はこちら

発表者は戸谷で、テナントの作り方やテナントを指定してログインする方法といったマルチテナント機能の使い方から始まり、各テナントのコンテンツの保存場所を分ける方法、カスタムモデルやWebScriptをテナント毎に管理することができるか、等の内容について紹介してくれました。最後にマルチテナントでは使えない機能の説明もあり、この機能を使用するかどうか検討する際には参考になるのではないかと思います。

次回の勉強会は8月27日(水)に開催予定です。たくさんの方のご参加をお待ちしております。参加申し込みはこちらからお願いします。

Thursday, June 19, 2014

Activiti BPM Platformことはじめ4(レポートを追加してみよう)

こんにちは。おおたにです。

今回はActiviti BPM Platformのレポート機能について紹介します。Activitiは簡易的なレポーティング機能を備えており、シンプルなレポートであればActivitiのみで完結して出力することができます。以下では新しいレポートを作成してみたいと思います。なお、Activitiのインストール、利用方法については以下の記事を参考にしてください。

Activiti BPM Platformことはじめ(インストール方法とか)
Activiti BPM Platformことはじめ2(Activiti Explorerの使い方とか)
Activiti BPM Platformことはじめ3(Activiti Modelerの使い方)


レポートの仕組み


Activitiにおけるレポートの実体はプロセスです。具体的には、レポートのデータを生成するスクリプトを実行するプロセスということになります。レポートを実行すると、プロセス開始時のフォームでパラメータを入力し、それを受けてスクリプトが実行されて結果が出力されます。


カスタムレポートを追加してみよう


というわけで、早速カスタムレポートを追加してみましょう。レポート定義=プロセス定義なので、Activiti ModelerやEclipse Designer(Eclipseのプラグインですね)などで定義を作成してActivitiにデプロイするという流れになります。ここでは、ユーザごとのワークフロー開始数を表示するレポートを作ってみたいと思います。なお、今回はActiviti 5.15.1を使っています。

1. 新規モデルを追加する

Activiti Explorerにユーザkermitでログインし、「Processes」->「Model workspace」に移動して「New Model」をクリックします。Nameに「Sample Model」と入力し、「Activiti Modeler」を選択して「Craete
」をクリックします。



2. レポート定義(プロセス定義)を作成する

自動的にActiviti Modelerの画面に遷移するので、まずはプロセスの属性を設定します。ここで重要なのは、Target namespaceをactiviti-reportとすることです。Activitiはこの属性を見てレポート用のプロセス定義であることを識別します。
  • Name : Sample Report
  • Target namespace : activiti-report


続いて、Start event、Script task、End eventを以下のように接続、設定します。
  • Start event
    • Id : start
    • Name : start
    • Form properties : 後述
  • Script task
    • Id : createReport
    • Name : createReport
    • Script format : js
    • Script : 後述
  • End event
    • Id : end
    • Name : end


Start eventのForm properties属性については、Start eventの属性設定欄のForm propertiesをクリックし、以下の内容を入力して「Ok」をクリックします。Start eventのフォーム設定は、一般的にはワークフロー開始時の情報入力のために使われますが、レポートにおいてはレポート出力に必要なパラメータを指定するために使われます。
  • Id : chartType
  • Name : Chart Name
  • Type : enum
  • Required : Yes
  • 選択肢
    • Id : pieChart, Name : Pie chart
    • Id : barChart, Name : Bar chart



Script taskのScriptも同様に属性設定欄のScriptをクリックし、以下のスクリプトを入力して「Ok」をクリックします。

importPackage(java.sql);
importPackage(java.lang);
importPackage(org.activiti.explorer.reporting);

var reportData = new ReportData();
var dataset = reportData.newDataset(); 
dataset.type = execution.getVariable("chartType");
dataset.description = "Test Report ";

var result = ReportingUtil.executeSelectSqlQuery("SELECT START_USER_ID_, count(ID_) FROM ACT_HI_PROCINST where START_USER_ID_ is not null group by START_USER_ID_");
while (result.next()) {
    dataset.add(result.getString(1), result.getLong(2)); 
}
execution.setVariable("reportData", reportData.toBytes());



最後に、画面左上のSaveアイコンをクリックし、表示された保存ダイアログで「Save」をクリックします。保存が完了したら画面右上の×をクリックしてActiviti Modelerを終了します。

コードについて補足すると、実行変数reportDataにReportData型のオブジェクトを格納することで、このオブジェクトを使ったレポート表示が行われます。また、ReportingUtil#executeSelectSqlQuery()を使うとDBに対して直接クエリを発行することができるので、レポート内容の取得によく利用されます。

3. レポート定義をデプロイする

自動的にActiviti Explorerの「Processes」->「Model workspace」に戻るので、先ほど作ったSample Modelを選択して画面右上の「Deploy」を実行します。



デプロイに成功すると、「Reports」->「Generate reports」に「Sample Report」が表示されるようになります。



動作確認してみよう


では、動作確認してみましょう。Chart typeを選択して「Generate report」をクリックすると、指定した形式でユーザ毎のプロセス数が表示されるはずです。



どうでしょうか。単純なレポートであれば比較的簡単に作成できることがお分かり頂けたかと思います。皆さんも是非カスタムレポートにチャレンジしてみてください。なお、今回はActiviti Modelerを使いましたが、このツールの制約により定義できないような項目がある場合にはEclipse Designerを利用するとよいかと思います。

Wednesday, June 11, 2014

Alfresco 4.2のMicrosoft Office連携(オンライン編集機能)をSSL化する

こんにちは。最近めっきり運動不足なおおたにです。

あまりに運動不足なので久々にテニスを再開しようと考えていたところ、なかなか興味深いガジェットがソニーから出てました。SSE-TN1というものです。ざっくり言うと、テニスのプレーをリアルタイムに分析してくれるセンサーです。ラケットのグリップエンドに付けて使うもので、ショットの種類を始め、インパクトの位置やラケット速度、ボールの回転や速度などを分析してくれます。さらに、動画を撮影しながら分析することで、ショットの質を動画と併せて確認できるとか。詳しくはこちらとかでレビューされてますので参考までに。

ただし、このセンサーに対応しているラケットがYONEXの一部モデルのみというところには注意が必要です。ちょうど道具を一通り買い換えようと思っていたところだったのですが、色々試打した結果他社のラケットを買ってしまいました(まあはやりのBabolatです)。これからラケットを買おうという方、そしてガジェット好きな方は是非ご一考を。

というわけで、今回はAlfresco 4.2のMicrosoft Office連携(オンライン編集)機能について書いていこうと思います。


AlfrescoのMicrosoft Office連携とは?なぜSSL化するのか?


以前、「AlfrescoのMicrosoft Office連携(オンライン編集機能)を試してみよう」という記事でAlfrescoのMicrosoft Office連携について説明しましたので、詳しくはそちらをご覧ください。この設定を行うと、Alfresco上のファイルをMicrosoft Officeで直接開き、編集、保存できるようになります。

この機能は、AlfrescoがSharePointの振りをすることで実現しているのですが、この記事では1つ問題を棚上げしていました。それは、以下のどちらかを行わないとMicrosoft Officeでファイルを開けないというところで、後者についてしか説明していませんでした。
  • 通信をSSL化する
  • クライアントPCのレジストリをいじる
前者の方がより好ましい解決方法ですので、以下ではこのSSL化の方法について説明していきます。


どこをSSL化するのか?


これは、Microsoft OfficeとAlfresco間の接続をSSL化するということになります。AlfrescoはVTIモジュールと呼ばれるSharePointのフリをするためのモジュールを用意しており、Microsoft Officeとの通信はこのVTIモジュールが担当します。VTIモジュールは、Alfrescoサーバ上のjettyにホストされ、デフォルト7070番で通信します(もちろん変更可能です)。SSL化すべきはこのVTIモジュールということです。


SSLの設定を行う


以下、具体的な手順を説明するのですが、まずはMicrosoft Office連携機能をインストールしましょう。手順は「AlfrescoのMicrosoft Office連携(オンライン編集機能)を試してみよう」を参考にしてください。

準備ができたら早速SSLの設定を行っていきましょう。今回はテスト用の自己署名証明書を作成しますが、実運用に向けては正統な証明書を準備する必要があります。

1. 自己署名証明書を作成する

まずはSSL用の自己署名証明書(いわゆるオレオレ証明書)を作成します。以下のコマンドを実行します(以下はWindowsでのものですが、Linuxも同様です)。キーストアのパスやパスワードは適宜変更してください。
> %JAVA_HOME%/bin/keytool.exe -genkeypair -alias alfresco -keystore D:/alfresco/alf_data/keystore/vti.ssl.keystore -storepass changeit -keypass changeit  -keyalg RSA -validity 365 -keysize 2048 -storetype JKS


2. VTIの設定を変更する

続いて、VTIモジュールの設定を変更します。以下の2つのファイルを弄る必要があります。まずはalfresco-global.propertiesに以下の3プロパティを設定します。vti.server.ssl.keystoreは先ほど作成したキーストアのパス、vti.server.ssl.passwordは先ほど指定したパスワードを設定します。

<tomcat_dir>/shared/classes/alfresco-global.properties
vti.server.external.protocol=https
vti.server.ssl.keystore=D:/alfresco/alf_data/keystore/vti.ssl.keystore
vti.server.ssl.password=changeit

続いて、vti-context.xmlというVTIモジュールの定義ファイルを修正します。vtiServerConnectorのbean定義が2つあるので、non-SSL用をコメントアウトし、SSL用のものを有効にします。

<tomcat_dir>/webapps/alfresco/WEB-INF/classes/alfresco/module/org.alfresco.module.vti/context/vti-context.xml
<!-- Use this Connector for plain text (non-SSL) communications -->
<!--
<bean id="vtiServerConnector" class="org.mortbay.jetty.bio.SocketConnector">
    <property name="port">
         <value>${vti.server.port}</value>
    </property>
    <property name="headerBufferSize">
         <value>32768</value>
    </property>
</bean>
-->
<!-- Use this Connector instead for SSL communications -->
<!-- You will need to set the location of the KeyStore holding your -->
<!--  server certificate, along with the KeyStore password -->
<!-- You should also update the vti.server.protocol property to https -->
<bean id="vtiServerConnector" class="org.mortbay.jetty.security.SslSocketConnector">
    <property name="port">
         <value>${vti.server.port}</value>
    </property>
    <property name="headerBufferSize">
         <value>32768</value>
    </property>
    <property name="maxIdleTime">
         <value>30000</value>
    </property>
    <property name="keystore">
         <value>${vti.server.ssl.keystore}</value>
    </property>
    <property name="keyPassword">
         <value>${vti.server.ssl.password}</value>
    </property>
    <property name="password">
         <value>${vti.server.ssl.password}</value>
    </property>
    <property name="keystoreType">
         <value>JCEKS</value>
    </property>
</bean>


早速試してみよう


以上の設定が終わったら、Alfrescoを再起動して http://localhost:8080/share/ にアクセスしてみましょう。もしレジストリを非SSLでの認証を許可するために弄ってある人は、元に戻してPCを再起動しておきます。あとは「AlfrescoのMicrosoft Office連携(オンライン編集機能)を試してみよう」の記事にある手順でオンライン編集を実行し、「このWebサーバーへのアクセスは規定で無効になっています。...」のダイアログが表示されずにMicrosoft Officeでファイルを開ければ設定成功です。

もちろん本番環境で利用する際は自己署名証明書では問題なので、適切な証明書を適用する必要があります。また、更に詳しい説明はAlfresco Documentationを参照してください。

今回の説明は以上になります。是非VTIモジュールのSSL化に挑戦し、快適なオンライン編集ライフを楽しんでください(って何だ!)