...
- Attempting to retrieve a password that doesn't exist returns an empty node set, it does not throw an error.
- In xpath "$provided_password != $vault_password" will return true if either variable is an empty node set. Combined with the observation above, if the password is not set in the vault, comparing it against a string will always return true. This is because the != operator checks if any elements don't match, if there aren't any elements to check then it's considered a success. To avoid this, always separately verify that the values aren't empty. https://stackoverflow.com/questions/4629416/xpath-operator-how-does-it-work
- Because passwords must be entered by an ESB administrator, they are a common source of deployment problems. ESB developer's must be very clear with what passwords are used by their project and explicitly check for the case that a password hasn't been entered.
- A password entered with the wrong key will look successfull to the ESB Administrator. Be sure to use the full, quoted password key in all documentation.
- Password keys must be unique. Use a key that is prefixed by the applications common prefix. See "Prefix Idiom" See /wiki/spaces/APIArchive/pages/22675749
Solutions
Password Storage
- Access the ESB Admin Console (https://soa-qa-esb-1.ucsd.edu:9443/carbon).
- Click on Main->Manage->Secure Vault Tool->Manage Passwords
- Click on "Add New Password to encrypt and store"
Note | ||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| ||||||||||||||
To be able to use the secure vault on a local install the ESB must be configured for password encryption. Either follow the instructions for encrypting the passwords stored in the config files, or follow these instructions to bypass this error quickly. Add the following to repository/conf/secret-conf.properties. If that file already has non-commented values then encryption is likely already setup.
Change the root XML node of repository/conf/tomcat/catalina-server.xml. There is a bug in WSO2 Carbon that causes a failure if this namespace attribute isn't present.
|
Password Retrieval
- Check that the password is set. If not clearly indicate the problem with whatever reporting mechanism you have. Include the full, quoted key that was being looked for.
- Use the "wso2:vault-lookup" xpath function to retrieve the password.
- Document clearly which passwords are expected, and some information about their use, source and format. See "Install_Instructions.txt Idiom"
...