2017-03-16 4 views
0

Alfrescoはドキュメントの変更を監査するが、フォルダの変更は監査しないようにします。たとえば、文書を含むフォルダが削除された場合、文書の削除のみが監査に表示されます。 Alfrescoは5.1.0でフィルタにもかかわらず、 "type = cm:content"、Alfrescoの監査はフォルダについても書きます

が、私はこの構成では、単一の監査アプリケーションmyapp定義された:私の理解が正しければ

audit.tagging.enabled=false 
audit.myapp.enabled=true 
audit.myapp.sub-actions.enabled=false 
audit.filter.myapp.default.enabled=true 
audit.filter.myapp.transaction.type=cm:content 
audit.filter.myapp.transaction.path=/app:company_home/app:shared/.* 
audit.filter.myapp.transaction.action=CREATE|READ|UPDATE CONTENT|CHECK IN|DELETE|COPY|MOVE|DOWNLOAD|addNodeAspect|deleteNodeAspect 

を、Alfrescoは文書に関するもののみにtype=cm:content制限監査イベントを?私はフォルダについてのイベントも欲しければ、そこにcm:folder;cm:contentと書きます。

このコードにもかかわらず、http://localhost:8080/alfresco/service/api/audit/query/myappを照会するときに、フォルダが作成または削除されると、引き続き監査イベントが発生します。
何が間違っていますか?フォルダ作成後

監査:フォルダの削除後

{ 
    "id":945, 
    "application":"myapp", 
    "user":"user1", 
    "time":"2017-03-16T13:20:59.480+09:00", 
    "values": 
    { 
       "\/bmyapp\/transaction\/action":"CREATE" 
       ,"\/myapp\/transaction\/path":"\/app:company_home\/app:shared\/cm:folder1" 
    } 
    }, 

監査:

{ 
    "id":947, 
    "application":"myapp", 
    "user":"user1", 
    "time":"2017-03-16T13:24:51.098+09:00", 
    "values": 
    { 
       "\/myapp\/transaction\/action":"DELETE" 
       ,"\/myapp\/transaction\/path":"\/app:company_home\/app:shared\/cm:folder1" 
    } 
    }, 

答えて

1

ソリューションは、下図のように、私の監査アプリケーションのXML定義ファイルにRecordValue key="type"要素を追加しました:

<?xml version="1.0" encoding="UTF-8"?> 
<Audit xmlns="http://www.alfresco.org/repo/audit/model/3.2" 
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
    xsi:schemaLocation="http://www.alfresco.org/repo/audit/model/3.2 alfresco-audit-3.2.xsd"> 
    ... 
    <Application name="myapp" key="myapp"> 
     <AuditPath key="transaction"> 
      <RecordValue key="type" dataExtractor="simpleValue" dataSource="/myapp/transaction/type" dataTrigger="/myapp/transaction/type" /> 
      ... 
     </AuditPath> 
     ... 
    </Application> 
</Audit> 
0

このような監査データをフィルタリングしようとすると、間違って監査フィルタリングを取得しています! 実際にアプリケーションごとに監査データをフィルタリングする方法はありません。プロデューサごとにのみ行うことができます。ボックス監査アプリケーション名(屋外アクセス)は、データプロデューサ(屋外アクセス)の名前と同じになるので、屋外ドキュメントからいくらか混乱するかもしれないことは知っています。あなたが実際に何ができるか

があなたのフィルタリングの設定で屋外アクセス(データプロバイダ)を使用することです、そして、あなたのフィルタリングが動作します:

audit.filter.alfresco-access.transaction.type=cm:content;~.* 

ご注意:ただし、除外しますを(すべての監査アプリケーション用)

私はかつて監査コンポーネントの拡張を実装しており、監査アプリケーションレベルのエントリを、使用されているDataExtractorに基づいてフィルタすることができましたパスの命名規則を書き換えます蟻は達成する、それはおそらくそのようにそれを行うより良い;必要なデータを生成するために独自のデータプロパッサーを作成し、1つの監査アプリケーションでフィルタリングされたデータを消費させることができます。

関連する問題