You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@pdfbox.apache.org by le...@apache.org on 2020/05/17 12:01:43 UTC
svn commit: r1877853 - in /pdfbox/trunk:
examples/src/main/java/org/apache/pdfbox/examples/signature/
pdfbox/src/main/java/org/apache/pdfbox/
pdfbox/src/main/java/org/apache/pdfbox/io/
pdfbox/src/main/java/org/apache/pdfbox/pdmodel/interactive/digitals...
Author: lehmi
Date: Sun May 17 12:01:42 2020
New Revision: 1877853
URL: http://svn.apache.org/viewvc?rev=1877853&view=rev
Log:
PDFBOX-4837: rename RandomAccessBufferedFileInputStream to RandomAccessBufferedFile and don't extend InputStream any more
Added:
pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/io/RandomAccessBufferedFile.java
- copied, changed from r1877852, pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/io/RandomAccessBufferedFileInputStream.java
Removed:
pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/io/RandomAccessBufferedFileInputStream.java
Modified:
pdfbox/trunk/examples/src/main/java/org/apache/pdfbox/examples/signature/ShowSignature.java
pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/Loader.java
pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/interactive/digitalsignature/SignatureOptions.java
pdfbox/trunk/pdfbox/src/test/java/org/apache/pdfbox/pdfparser/TestPDFParser.java
pdfbox/trunk/preflight/src/main/java/org/apache/pdfbox/preflight/parser/PreflightParser.java
Modified: pdfbox/trunk/examples/src/main/java/org/apache/pdfbox/examples/signature/ShowSignature.java
URL: http://svn.apache.org/viewvc/pdfbox/trunk/examples/src/main/java/org/apache/pdfbox/examples/signature/ShowSignature.java?rev=1877853&r1=1877852&r2=1877853&view=diff
==============================================================================
--- pdfbox/trunk/examples/src/main/java/org/apache/pdfbox/examples/signature/ShowSignature.java (original)
+++ pdfbox/trunk/examples/src/main/java/org/apache/pdfbox/examples/signature/ShowSignature.java Sun May 17 12:01:42 2020
@@ -56,7 +56,7 @@ import org.apache.pdfbox.cos.COSString;
import org.apache.pdfbox.examples.signature.cert.CertificateVerificationException;
import org.apache.pdfbox.examples.signature.cert.CertificateVerifier;
import org.apache.pdfbox.io.IOUtils;
-import org.apache.pdfbox.io.RandomAccessBufferedFileInputStream;
+import org.apache.pdfbox.io.RandomAccessBufferedFile;
import org.apache.pdfbox.pdfparser.PDFParser;
import org.apache.pdfbox.pdmodel.PDDocument;
import org.apache.pdfbox.pdmodel.PDDocumentCatalog;
@@ -136,7 +136,7 @@ public final class ShowSignature
File infile = new File(args[1]);
// use old-style document loading to disable leniency
// see also https://www.pdf-insecurity.org/
- RandomAccessBufferedFileInputStream raFile = new RandomAccessBufferedFileInputStream(infile);
+ RandomAccessBufferedFile raFile = new RandomAccessBufferedFile(infile);
// If your files are not too large, you can also download the PDF into a byte array
// with IOUtils.toByteArray() and pass a RandomAccessBuffer() object to the
// PDFParser constructor.
@@ -302,7 +302,7 @@ public final class ShowSignature
// comment by mkl: check whether gap contains a hex value equal
// byte-by-byte to the Content value, to prevent attacker from using a literal string
// to allow extra space
- try (RandomAccessBufferedFileInputStream raf = new RandomAccessBufferedFileInputStream(file))
+ try (RandomAccessBufferedFile raf = new RandomAccessBufferedFile(file))
{
raf.seek(byteRange[1]);
int c = raf.read();
Modified: pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/Loader.java
URL: http://svn.apache.org/viewvc/pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/Loader.java?rev=1877853&r1=1877852&r2=1877853&view=diff
==============================================================================
--- pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/Loader.java (original)
+++ pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/Loader.java Sun May 17 12:01:42 2020
@@ -26,7 +26,7 @@ import java.io.InputStream;
import org.apache.pdfbox.io.IOUtils;
import org.apache.pdfbox.io.MemoryUsageSetting;
import org.apache.pdfbox.io.RandomAccessBuffer;
-import org.apache.pdfbox.io.RandomAccessBufferedFileInputStream;
+import org.apache.pdfbox.io.RandomAccessBufferedFile;
import org.apache.pdfbox.io.RandomAccessRead;
import org.apache.pdfbox.io.ScratchFile;
import org.apache.pdfbox.pdfparser.FDFParser;
@@ -297,7 +297,7 @@ public class Loader
MemoryUsageSetting memUsageSetting) throws IOException
{
@SuppressWarnings({ "squid:S2095" }) // raFile not closed here, may be needed for signing
- RandomAccessBufferedFileInputStream raFile = new RandomAccessBufferedFileInputStream(file);
+ RandomAccessBufferedFile raFile = new RandomAccessBufferedFile(file);
try
{
return Loader.loadPDF(raFile, password, keyStore, alias, memUsageSetting);
@@ -309,7 +309,20 @@ public class Loader
}
}
- public static PDDocument loadPDF(RandomAccessBufferedFileInputStream raFile, String password,
+ /**
+ * Parses a PDF.
+ *
+ * @param rafile random access read representing the pdf to be loaded
+ * @param password password to be used for decryption
+ * @param keyStore key store to be used for decryption when using public key security
+ * @param alias alias to be used for decryption when using public key security
+ * @param memUsageSetting defines how memory is used for buffering PDF streams
+ *
+ * @return loaded document
+ *
+ * @throws IOException in case of a file reading or parsing error
+ */
+ public static PDDocument loadPDF(RandomAccessRead raFile, String password,
InputStream keyStore, String alias, MemoryUsageSetting memUsageSetting)
throws IOException
{
Copied: pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/io/RandomAccessBufferedFile.java (from r1877852, pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/io/RandomAccessBufferedFileInputStream.java)
URL: http://svn.apache.org/viewvc/pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/io/RandomAccessBufferedFile.java?p2=pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/io/RandomAccessBufferedFile.java&p1=pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/io/RandomAccessBufferedFileInputStream.java&r1=1877852&r2=1877853&rev=1877853&view=diff
==============================================================================
--- pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/io/RandomAccessBufferedFileInputStream.java (original)
+++ pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/io/RandomAccessBufferedFile.java Sun May 17 12:01:42 2020
@@ -25,17 +25,14 @@ import java.util.LinkedHashMap;
import java.util.Map;
/**
- * Provides {@link InputStream} access to portions of a file combined with
- * buffered reading of content. Start of next bytes to read can be set via seek
- * method.
+ * Provides random access to portions of a file combined with buffered reading of content. Start of next bytes to read
+ * can be set via seek method.
*
- * File is accessed via {@link RandomAccessFile} and is read in byte chunks
- * which are cached.
+ * File is accessed via {@link RandomAccessFile} and is read in byte chunks which are cached.
*
* @author Timo Boehme
*/
-public class RandomAccessBufferedFileInputStream
-extends InputStream implements RandomAccessRead
+public class RandomAccessBufferedFile implements RandomAccessRead
{
/**
* The prefix for the temp file being used.
@@ -78,23 +75,23 @@ extends InputStream implements RandomAcc
private boolean isClosed;
/**
- * Create a random access input stream instance for the file with the given name.
+ * Create a random access buffered file instance for the file with the given name.
*
* @param filename the filename of the file to be read.
* @throws IOException if something went wrong while accessing the given file.
*/
- public RandomAccessBufferedFileInputStream( String filename ) throws IOException
+ public RandomAccessBufferedFile( String filename ) throws IOException
{
this(new File(filename));
}
- /**
- * Create a random access input stream instance for the given file.
+ /**
+ * Create a random access buffered file instance for the given file.
*
* @param file the file to be read.
* @throws IOException if something went wrong while accessing the given file.
*/
- public RandomAccessBufferedFileInputStream( File file ) throws IOException
+ public RandomAccessBufferedFile( File file ) throws IOException
{
raFile = new RandomAccessFile(file, "r");
fileLength = file.length();
@@ -102,13 +99,12 @@ extends InputStream implements RandomAcc
}
/**
- * Create a random access input stream for the given input stream by copying the data to a
- * temporary file.
+ * Create a random access buffered file for the given input stream by copying the data to a temporary file.
*
* @param input the input stream to be read. It will be closed by this method.
* @throws IOException if something went wrong while creating the temporary file.
*/
- public RandomAccessBufferedFileInputStream( InputStream input ) throws IOException
+ public RandomAccessBufferedFile( InputStream input ) throws IOException
{
tempFile = createTmpFile(input);
fileLength = tempFile.length();
@@ -267,32 +263,6 @@ extends InputStream implements RandomAcc
}
@Override
- public long skip( long n ) throws IOException
- {
- // test if we have to reduce skip count because of EOF
- long toSkip = n;
-
- if ( fileLength - fileOffset < toSkip )
- {
- toSkip = fileLength - fileOffset;
- }
-
- if ( ( toSkip < pageSize ) && ( ( offsetWithinPage + toSkip ) <= pageSize ) )
- {
- // we can skip within current page
- offsetWithinPage += toSkip;
- fileOffset += toSkip;
- }
- else
- {
- // seek to the page we will get after skipping
- seek( fileOffset + toSkip );
- }
-
- return toSkip;
- }
-
- @Override
public long length() throws IOException
{
return fileLength;
Modified: pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/interactive/digitalsignature/SignatureOptions.java
URL: http://svn.apache.org/viewvc/pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/interactive/digitalsignature/SignatureOptions.java?rev=1877853&r1=1877852&r2=1877853&view=diff
==============================================================================
--- pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/interactive/digitalsignature/SignatureOptions.java (original)
+++ pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/interactive/digitalsignature/SignatureOptions.java Sun May 17 12:01:42 2020
@@ -23,7 +23,7 @@ import java.io.InputStream;
import org.apache.pdfbox.cos.COSDocument;
import org.apache.pdfbox.io.RandomAccessBuffer;
-import org.apache.pdfbox.io.RandomAccessBufferedFileInputStream;
+import org.apache.pdfbox.io.RandomAccessBufferedFile;
import org.apache.pdfbox.io.RandomAccessRead;
import org.apache.pdfbox.pdfparser.PDFParser;
import org.apache.pdfbox.pdmodel.interactive.digitalsignature.visible.PDVisibleSigProperties;
@@ -79,7 +79,7 @@ public class SignatureOptions implements
*/
public void setVisualSignature(File file) throws IOException
{
- initFromRandomAccessRead(new RandomAccessBufferedFileInputStream(file));
+ initFromRandomAccessRead(new RandomAccessBufferedFile(file));
}
/**
Modified: pdfbox/trunk/pdfbox/src/test/java/org/apache/pdfbox/pdfparser/TestPDFParser.java
URL: http://svn.apache.org/viewvc/pdfbox/trunk/pdfbox/src/test/java/org/apache/pdfbox/pdfparser/TestPDFParser.java?rev=1877853&r1=1877852&r2=1877853&view=diff
==============================================================================
--- pdfbox/trunk/pdfbox/src/test/java/org/apache/pdfbox/pdfparser/TestPDFParser.java (original)
+++ pdfbox/trunk/pdfbox/src/test/java/org/apache/pdfbox/pdfparser/TestPDFParser.java Sun May 17 12:01:42 2020
@@ -32,7 +32,7 @@ import java.net.URISyntaxException;
import org.apache.pdfbox.Loader;
import org.apache.pdfbox.io.MemoryUsageSetting;
-import org.apache.pdfbox.io.RandomAccessBufferedFileInputStream;
+import org.apache.pdfbox.io.RandomAccessBufferedFile;
import org.apache.pdfbox.io.RandomAccessRead;
import org.apache.pdfbox.io.ScratchFile;
import org.apache.pdfbox.pdmodel.PDDocument;
@@ -92,25 +92,25 @@ public class TestPDFParser
@Test
public void testPDFParserFile() throws IOException
{
- executeParserTest(new RandomAccessBufferedFileInputStream(new File(PATH_OF_PDF)), MemoryUsageSetting.setupMainMemoryOnly());
+ executeParserTest(new RandomAccessBufferedFile(new File(PATH_OF_PDF)), MemoryUsageSetting.setupMainMemoryOnly());
}
@Test
public void testPDFParserInputStream() throws IOException
{
- executeParserTest(new RandomAccessBufferedFileInputStream(new FileInputStream(PATH_OF_PDF)), MemoryUsageSetting.setupMainMemoryOnly());
+ executeParserTest(new RandomAccessBufferedFile(new FileInputStream(PATH_OF_PDF)), MemoryUsageSetting.setupMainMemoryOnly());
}
@Test
public void testPDFParserFileScratchFile() throws IOException
{
- executeParserTest(new RandomAccessBufferedFileInputStream(new File(PATH_OF_PDF)), MemoryUsageSetting.setupTempFileOnly());
+ executeParserTest(new RandomAccessBufferedFile(new File(PATH_OF_PDF)), MemoryUsageSetting.setupTempFileOnly());
}
@Test
public void testPDFParserInputStreamScratchFile() throws IOException
{
- executeParserTest(new RandomAccessBufferedFileInputStream(new FileInputStream(PATH_OF_PDF)), MemoryUsageSetting.setupTempFileOnly());
+ executeParserTest(new RandomAccessBufferedFile(new FileInputStream(PATH_OF_PDF)), MemoryUsageSetting.setupTempFileOnly());
}
@Test
Modified: pdfbox/trunk/preflight/src/main/java/org/apache/pdfbox/preflight/parser/PreflightParser.java
URL: http://svn.apache.org/viewvc/pdfbox/trunk/preflight/src/main/java/org/apache/pdfbox/preflight/parser/PreflightParser.java?rev=1877853&r1=1877852&r2=1877853&view=diff
==============================================================================
--- pdfbox/trunk/preflight/src/main/java/org/apache/pdfbox/preflight/parser/PreflightParser.java (original)
+++ pdfbox/trunk/preflight/src/main/java/org/apache/pdfbox/preflight/parser/PreflightParser.java Sun May 17 12:01:42 2020
@@ -40,7 +40,7 @@ import org.apache.pdfbox.cos.COSObject;
import org.apache.pdfbox.cos.COSObjectKey;
import org.apache.pdfbox.cos.COSStream;
import org.apache.pdfbox.cos.COSString;
-import org.apache.pdfbox.io.RandomAccessBufferedFileInputStream;
+import org.apache.pdfbox.io.RandomAccessBufferedFile;
import org.apache.pdfbox.io.ScratchFile;
import org.apache.pdfbox.pdfparser.PDFParser;
import org.apache.pdfbox.pdfparser.XrefTrailerResolver.XRefType;
@@ -100,7 +100,7 @@ public class PreflightParser extends PDF
*/
public PreflightParser(File file) throws IOException
{
- super(new RandomAccessBufferedFileInputStream(file));
+ super(new RandomAccessBufferedFile(file));
}
/**
@@ -112,7 +112,7 @@ public class PreflightParser extends PDF
*/
public PreflightParser(File file, ScratchFile scratch) throws IOException
{
- super(new RandomAccessBufferedFileInputStream(file), scratch);
+ super(new RandomAccessBufferedFile(file), scratch);
}
/**