Friday, August 28, 2020

Alfresco 201911GAで管理ツールからユーザ検索できない問題の解決方法

こんにちは。てらしたです。今回はAlfresco 201911GAのリリースノートにKnown Issuesとして記載されている、Shareの管理ツールからユーザ検索ができない問題の解決方法についてです。

リリースノートからもリンクが貼られているこちらのissueに問題の内容と解決方法が書いてあるので、その内容のご紹介になります。どうやらEnterprise版(有償版)のための機能のバグ修正の結果として生まれた新たなバグのようです。

解決方法の前に、まずは問題の内容を確認します。Alfrescoを起動し、Shareにadminでログインしてヘッダの「管理ツール」をクリックします。次に管理ツール画面で左メニューの「ユーザー」をクリックします。本来はこのページでユーザを検索できるはずですが、検索しても「アイテム読み込み時のエラー」というエラーメッセージが表示されて検索できません。ブラウザの開発ツールで確認してみると、people-enterpriseというapiにリクエストを投げて404が返ってきていることが原因のようです(Enterprise版用のAPIだから)。



上にリンクを貼ったissueによると、share-config.xmlでshow-authorization-statusというプロパティがtrueになっていることが原因のようなので、これをfalseにしてあげれば解決します。

Alfresco SDK 4.1で修正する場合

SDKを使って修正する場合(SDK4.1の開発環境構築についてはこちら)は、share-jarプロジェクトの [artifactId]-share/src/main/resources/META-INF/share-config-custom.xmlの<alfresco-config>タグの間の適当な場所に以下のコードを追記してリビルドすればOKです。

<config evaluator="string-compare" condition="Users" replace="true">
    <users>
        <!-- minimum length for username and password -->
        <username-min-length>2</username-min-length>
        <password-min-length>3</password-min-length>
        <show-authorization-status>false</show-authorization-status>
     </users>
     <!-- This enables/disables the Add External Users Panel on the Add Users page. -->
     <enable-external-users-panel>false</enable-external-users-panel>
</config>
  

Dockerfileで修正する場合

201911GAをdocker composeを使って試用している場合(やり方についてはこちら)でも、show-authorization-statusというプロパティを書き換えればいいだけなので方法はいろいろあると思いますが、手っ取り早く確認したいのであれば以下の方法が簡単なのではないかと思います。

docker-compose.ymlと同じディレクトリに以下の内容を記載したDockerfileを作成します。

FROM alfresco/alfresco-share:6.2.0

ARG TOMCAT_DIR=/usr/local/tomcat

# Patch for https://github.com/Alfresco/acs-community-packaging/issues/367
RUN sed -i 's@true@false@' \
	$TOMCAT_DIR/webapps/share/WEB-INF/classes/alfresco/share-config.xml

次に、docker-compose.ymlの以下の部分を

share:
    image: alfresco/alfresco-share:6.2.0
    mem_limit: 1g
        environment:
    ...

以下のように書き換えます。image名は既存のものと被らなければ何でもいいと思いますし、指定しなくても動くはずです。

share:
    image: custom-alfresco-share:development
    build:
        dockerfile: ./Dockerfile
        context: ./
    mem_limit: 1g
        environment:
    ...

修正した後に確認してみると、以下のようにユーザ検索が問題なく実行できると思います。


こんなことをしなくてもいいようにいずれ修正されるのではないかと思いますが、今のところはこのような方法で修正することが可能です。

No comments: