You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@tika.apache.org by ju...@apache.org on 2012/06/30 13:53:32 UTC
svn commit: r1355712 - in /tika/trunk: CHANGES.txt
tika-app/src/main/java/org/apache/tika/cli/TikaCLI.java
Author: jukka
Date: Sat Jun 30 11:53:31 2012
New Revision: 1355712
URL: http://svn.apache.org/viewvc?rev=1355712&view=rev
Log:
TIKA-943: Add parameter to tika-app to supply password for decryption
Modified:
tika/trunk/CHANGES.txt
tika/trunk/tika-app/src/main/java/org/apache/tika/cli/TikaCLI.java
Modified: tika/trunk/CHANGES.txt
URL: http://svn.apache.org/viewvc/tika/trunk/CHANGES.txt?rev=1355712&r1=1355711&r2=1355712&view=diff
==============================================================================
--- tika/trunk/CHANGES.txt (original)
+++ tika/trunk/CHANGES.txt Sat Jun 30 11:53:31 2012
@@ -33,6 +33,10 @@ Release 1.2 - Current Development
(KML and KMZ) used by tools like Google Earth. See also
http://www.opengeospatial.org/standards/kml/. (TIKA-941)
+ * CLI: You can now use the TIKA_PASSWORD environment variable or the
+ --password=X command line option to specify the password that Tika CLI
+ should use for opening encrypted documents (TIKA-943).
+
Release 1.1 - 3/7/2012
---------------------------------
Modified: tika/trunk/tika-app/src/main/java/org/apache/tika/cli/TikaCLI.java
URL: http://svn.apache.org/viewvc/tika/trunk/tika-app/src/main/java/org/apache/tika/cli/TikaCLI.java?rev=1355712&r1=1355711&r2=1355712&view=diff
==============================================================================
--- tika/trunk/tika-app/src/main/java/org/apache/tika/cli/TikaCLI.java (original)
+++ tika/trunk/tika-app/src/main/java/org/apache/tika/cli/TikaCLI.java Sat Jun 30 11:53:31 2012
@@ -71,6 +71,7 @@ import org.apache.tika.parser.NetworkPar
import org.apache.tika.parser.ParseContext;
import org.apache.tika.parser.Parser;
import org.apache.tika.parser.ParserDecorator;
+import org.apache.tika.parser.PasswordProvider;
import org.apache.tika.parser.html.BoilerpipeContentHandler;
import org.apache.tika.sax.BodyContentHandler;
import org.apache.tika.sax.XMPContentHandler;
@@ -278,6 +279,11 @@ public class TikaCLI {
*/
private String encoding = null;
+ /**
+ * Password for opening encrypted documents, or <code>null</code>.
+ */
+ private String password = System.getenv("TIKA_PASSWORD");
+
private boolean pipeMode = true;
private boolean serverMode = false;
@@ -293,6 +299,11 @@ public class TikaCLI {
detector = new DefaultDetector();
parser = new AutoDetectParser(detector);
context.set(Parser.class, parser);
+ context.set(PasswordProvider.class, new PasswordProvider() {
+ public String getPassword(Metadata metadata) {
+ return password;
+ }
+ });
}
public void process(String arg) throws Exception {
@@ -331,6 +342,10 @@ public class TikaCLI {
encoding = arg.substring("-e".length());
} else if (arg.startsWith("--encoding=")) {
encoding = arg.substring("--encoding=".length());
+ } else if (arg.startsWith("-p") && !arg.equals("-p")) {
+ password = arg.substring("-p".length());
+ } else if (arg.startsWith("--password=")) {
+ password = arg.substring("--password=".length());
} else if (arg.equals("-j") || arg.equals("--json")) {
type = JSON;
} else if (arg.equals("-y") || arg.equals("--xmp")) {
@@ -424,8 +439,9 @@ public class TikaCLI {
out.println(" -l or --language Output only language");
out.println(" -d or --detect Detect document type");
out.println(" -eX or --encoding=X Use output encoding X");
- out.println(" -z or --extract Extract all attachements into current directory");
- out.println(" --extract-dir=<dir> Specify target directory for -z");
+ out.println(" -pX or --password=X Use document password X");
+ out.println(" -z or --extract Extract all attachements into current directory");
+ out.println(" --extract-dir=<dir> Specify target directory for -z");
out.println(" -r or --pretty-print For XML and XHTML outputs, adds newlines and");
out.println(" whitespace, for better readability");
out.println();