FessのSAML対応

以前に対応しようと思ったときにAzure ADに対応したから良いか、という気分になり、SAML対応を一旦放置してしまったのですが、次のバージョンからSAML対応を入れました。OneLoginのライブラリを使っているので、動作確認とかはここの手順になります。

Fess側の設定としては、system.propertiesに以下のものを書いておけば良いです。値はIdPから取得します。OneLoginであれば、saml.〜はonelogin.saml2.〜に読み替えて、設定してください。

sso.type=saml
saml.idp.single_sign_on_service.url=https\://.../sso/...
saml.idp.x509cert=XBML...(一行にする)...rMdP
saml.idp.entityid=https\://.../metadata/...
saml.idp.single_logout_service.url=https\://.../slo/...

IdP側の設定は、OneLoginであれば以下のような感じで設定します。

あとは、http://localhost:8080/sso/ にアクセスすれば、SSOでログインされます。(SLOは設定しているけど、今のところ、処理してません…)

世の中にいろいろなIdPがあると思うので、何かあればフォーラムとかに投げてもらえればと思います。

注:AudienceのURLが…/metadata/samlから…/metadataに、Single Logout URLが…/logout/samlから…/logoutに変更しました。

Fess 13.8.1のリリース

Fess 13.8.1をリリースしました。13.7.2もリリースしてあります。依存関係の更新も少々しましたが、JAVA_OPTSを参照するのをやめた修正のせいで、Windowsでfess.batから起動できなくなっていたようなので、それに対する修正になります。たぶん、以前からあった問題だったと思うのですが、特定の条件でしか発生しなかったので、発覚しなかったのだと思います。そして、私はWindowsユーザーではないし、Windowsでfess.batで起動するパターンは商用で提供することはないので、気づかなかったという感じ…。Fessはテストケースが多いから商用で使わない部分までのテスト工数をまわすのも難しいところ。この手のは自動化したいところだけど、Windowsだとうまくできる方法があるのかが不明である。という感じで、今回はバグ修正的なリリースでした。

pdftoppmでPDF→画像にする

PDFファイルのサムネイル画像を作りたいときとか、今までだと、Imagemagickのconvertコマンドで作れていたのだが、最近のバージョンでは convertコマンドの脆弱性対応で、設定ファイルを変更しないと使えなくなってしまっている。なので、手軽な別な手段が必要になるのだが、画像変換するだけならpdftoppmコマンドが使えそうである。

pdftoppmコマンドを利用するために

$ sudo apt install xpdf

という感じで、xpdfをインストールする。あとは

$ pdftoppm -png test.pdf test

のようにすると、test-1.pngのようなファイルが生成される。

nvccでgccのバージョンエラー

nvccがgccのバージョンに依存しているので、新しいgccを使っていたりすると、cudaのバージョンによっては以下のような感じのエラーになる。

$ nvcc -o add_cuda add.cu
In file included from /usr/local/cuda/bin/../targets/x86_64-linux/include/cuda_runtime.h:83,
from :
/usr/local/cuda/bin/../targets/x86_64-linux/include/crt/host_config.h:138:2: error: #error -- unsupported GNU version! gcc versions later than 8 are not supported!
138 | #error -- unsupported GNU version! gcc versions later than 8 are not supported!

この場合だと、

$ sudo apt install g++-8

として、gcc 8をインストールして、nvccコマンドを以下のように実行すればコンパイルできる。

$ nvcc -o add_cuda add.cu -ccbin g++-8