You can have forms in several ways in your application, from pretty straight forward input forms to very complex forms with lots of business logic in them. A great feature of a PDF-form is that you open this in Designer and can edit / view all the code inside your form. Although this is a great feature, you don’t want to expose your code to external developers.
This blogpost will explain how to protect your code with password encryption which is standard available in the Livecycle foundation.
I start with a simple render form process with a reader extensions operation after it
This will generate you a Reader extended form, which you just can open in Designer.
Adding password encryption
Next step is to add the step with the password encryption; in here you also have the option to assign a DocumentOpen password. This will prompt all users to enter a password when they want to open the form. What we want is that a user is only prompted whenever the form is opened in Designer. This is done via “Permissions Password”, you can enter the password here that is required to edit the form.
Here you see the step added in the process
When you open this document now in Reader / Acrobat, you will see a change in the title bar, it says now (SECURED).
Opening this document in Designer will prompt you now for a password.
Taking it a step further
When you have multiple processes that render forms you don’t want to maintain all the password encryption settings in every process. What you can to is to create a sub-process with encryption step in it, via a configuration parameter you can maintain the password you want to assign. Then you have no hardcoded passwords, and the system-administrator can maintain this via /adminui without the involvement of a developer.
Here you see the sub-process and the original process that is now calling the subprocess.
I have attached the lca-file to this blogpost so you can have a look at the processes yourself.