/* * Licensed to the Apache Software Foundation (ASF) under one or more * contributor license agreements. See the NOTICE file distributed with * this work for additional information regarding copyright ownership. * The ASF licenses this file to You under the Apache License, Version 2.0 * (the "License"); you may not use this file except in compliance with * the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package org.apache.pdfbox.pdmodel.encryption; /** * This class represents the protection policy to add to a document * for password-based protection. * * The following example shows how to protect a PDF document with password. * In this example, the document will be protected so that someone opening * the document with the user password <code>user_pwd</code> will not be * able to modify the document. * * <pre> * AccessPermission ap = new AccessPermission(); * ap.setCanModify(false); * StandardProtectionPolicy policy = new StandardProtectionPolicy(owner_pwd, user_pwd, ap); * doc.protect(policy); * </pre> * * @author Benoit Guillon (benoit.guillon@snv.jussieu.fr) * @version $Revision: 1.3 $ */ public class StandardProtectionPolicy extends ProtectionPolicy { private AccessPermission permissions; private String ownerPassword = ""; private String userPassword = ""; /** * Creates an new instance of the standard protection policy * in order to protect a PDF document with passwords. * * @param ownerPass The owner's password. * @param userPass The users's password. * @param perms The access permissions given to the user. */ public StandardProtectionPolicy(String ownerPass, String userPass, AccessPermission perms) { this.permissions = perms; this.userPassword = userPass; this.ownerPassword = ownerPass; } /** * Getter of the property <tt>permissions</tt>. * * @return Returns the permissions. */ public AccessPermission getPermissions() { return permissions; } /** * Setter of the property <tt>permissions</tt>. * * @param perms The permissions to set. */ public void setPermissions(AccessPermission perms) { this.permissions = perms; } /** * Getter of the property <tt>ownerPassword</tt>. * * @return Returns the ownerPassword. */ public String getOwnerPassword() { return ownerPassword; } /** * Setter of the property <tt>ownerPassword</tt>. * * @param ownerPass The ownerPassword to set. */ public void setOwnerPassword(String ownerPass) { this.ownerPassword = ownerPass; } /** * Getter of the property <tt>userPassword</tt>. * * @return Returns the userPassword. */ public String getUserPassword() { return userPassword; } /** * Setter of the property <tt>userPassword</tt>. * * @param userPass The userPassword to set. */ public void setUserPassword(String userPass) { this.userPassword = userPass; } }