MNT-16381 Transformers must validate the content stream mimetype

- Addition of AbstractContentTransformer2.strictMimeTypeCheck(...) to check that the
     declared mimetype is the same as the Tika derived mimetype. Controlled by a new alfresco
     global property content.transformer.strict.mimetype.check (set to true by default).
   - Added the UnsupportedTransformationException to a number of transformation callers as
     they should have been handling it already.
   - Modified DifferrentMimeTypeTest to test the new strictMimeTypeCheck.

git-svn-id: https://svn.alfresco.com/repos/alfresco-enterprise/alfresco/BRANCHES/DEV/5.2.N/root@128168 c4b6b30b-aa2e-2d43-bbcb-ca4b014f7261
This commit is contained in:
Alan Davis
2016-06-15 16:11:15 +00:00
parent c4c30abae0
commit 60a8b718bc
8 changed files with 177 additions and 69 deletions

View File

@@ -54,6 +54,7 @@ import org.alfresco.model.ContentModel;
import org.alfresco.repo.content.MimetypeMap;
import org.alfresco.repo.content.transform.ContentTransformer;
import org.alfresco.repo.content.transform.TransformerDebug;
import org.alfresco.repo.content.transform.UnsupportedTransformationException;
import org.alfresco.repo.dictionary.IndexTokenisationMode;
import org.alfresco.repo.search.AspectIndexFilter;
import org.alfresco.repo.search.IndexerException;
@@ -83,6 +84,7 @@ import org.alfresco.service.cmr.repository.ContentService;
import org.alfresco.service.cmr.repository.ContentWriter;
import org.alfresco.service.cmr.repository.InvalidNodeRefException;
import org.alfresco.service.cmr.repository.MLText;
import org.alfresco.service.cmr.repository.NoTransformerException;
import org.alfresco.service.cmr.repository.NodeRef;
import org.alfresco.service.cmr.repository.NodeService;
import org.alfresco.service.cmr.repository.Path;
@@ -1573,7 +1575,7 @@ public class ADMLuceneIndexerImpl extends AbstractLuceneIndexerImpl<NodeRef> imp
+ " transformer: " + transformer + "\n" + " temp writer: " + writer);
}
}
catch (ContentIOException e)
catch (ContentIOException|NoTransformerException|UnsupportedTransformationException e)
{
// log it
if (s_logger.isInfoEnabled())