001: /**
002: * Copyright (c) 2003-2006, www.pdfbox.org
003: * All rights reserved.
004: *
005: * Redistribution and use in source and binary forms, with or without
006: * modification, are permitted provided that the following conditions are met:
007: *
008: * 1. Redistributions of source code must retain the above copyright notice,
009: * this list of conditions and the following disclaimer.
010: * 2. Redistributions in binary form must reproduce the above copyright notice,
011: * this list of conditions and the following disclaimer in the documentation
012: * and/or other materials provided with the distribution.
013: * 3. Neither the name of pdfbox; nor the names of its
014: * contributors may be used to endorse or promote products derived from this
015: * software without specific prior written permission.
016: *
017: * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
018: * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
019: * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
020: * DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE FOR ANY
021: * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
022: * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
023: * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
024: * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
025: * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
026: * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
027: *
028: * http://www.pdfbox.org
029: *
030: */package org.pdfbox.pdmodel.encryption;
031:
032: /**
033: * This class represents the protection policy to add to a document
034: * for password-based protection.
035: *
036: * The following example shows how to protect a PDF document with password.
037: * In this example, the document will be protected so that someone opening
038: * the document with the user password <code>user_pwd</code> will not be
039: * able to modify the document.
040: *
041: * <pre>
042: * AccessPermission ap = new AccessPermission();
043: * ap.setCanModify(false);
044: * StandardProtectionPolicy policy = new StandardProtectionPolicy(owner_pwd, user_pwd, ap);
045: * doc.protect(policy);
046: * </pre>
047: *
048: * @author Benoit Guillon (benoit.guillon@snv.jussieu.fr)
049: * @version $Revision: 1.3 $
050: */
051: public class StandardProtectionPolicy extends ProtectionPolicy {
052:
053: private AccessPermission permissions;
054:
055: private String ownerPassword = "";
056:
057: private String userPassword = "";
058:
059: /**
060: * Creates an new instance of the standard protection policy
061: * in order to protect a PDF document with passwords.
062: *
063: * @param ownerPass The owner's password.
064: * @param userPass The users's password.
065: * @param perms The access permissions given to the user.
066: */
067: public StandardProtectionPolicy(String ownerPass, String userPass,
068: AccessPermission perms) {
069: this .permissions = perms;
070: this .userPassword = userPass;
071: this .ownerPassword = ownerPass;
072: }
073:
074: /**
075: * Getter of the property <tt>permissions</tt>.
076: *
077: * @return Returns the permissions.
078: */
079: public AccessPermission getPermissions() {
080: return permissions;
081: }
082:
083: /**
084: * Setter of the property <tt>permissions</tt>.
085: *
086: * @param perms The permissions to set.
087: */
088: public void setPermissions(AccessPermission perms) {
089: this .permissions = perms;
090: }
091:
092: /**
093: * Getter of the property <tt>ownerPassword</tt>.
094: *
095: * @return Returns the ownerPassword.
096: */
097: public String getOwnerPassword() {
098: return ownerPassword;
099: }
100:
101: /**
102: * Setter of the property <tt>ownerPassword</tt>.
103: *
104: * @param ownerPass The ownerPassword to set.
105: */
106: public void setOwnerPassword(String ownerPass) {
107: this .ownerPassword = ownerPass;
108: }
109:
110: /**
111: * Getter of the property <tt>userPassword</tt>.
112: *
113: * @return Returns the userPassword.
114: */
115: public String getUserPassword() {
116: return userPassword;
117: }
118:
119: /**
120: * Setter of the property <tt>userPassword</tt>.
121: *
122: * @param userPass The userPassword to set.
123: */
124: public void setUserPassword(String userPass) {
125: this.userPassword = userPass;
126: }
127: }
|