Changing the Password of an Immutable Account
Use the CollectionSpace API to change the password of immutable accounts like the default administrator and reader accounts. Here are instructions for one way to do this.
Base 64 encode your new password
First, encode your new password as a base 64 string. You can do this on Linux using the base64 utility. For example:
$ echo -n 'This is the password' | base64 VGhpcyBpcyB0aGUgcGFzc3dvcmQ=
Create a file with the XML update payload
Next, you'll need to create the XML payload for the API and include the new base 64 encoded password. It should look something like this:
<ns2:accounts_common xmlns:ns2="http://collectionspace.org/services/account"> <userId>admin@core.collectionspace.org</userId> <password>VGhpcyBpcyB0aGUgcGFzc3dvcmQ=</password> </ns2:accounts_common>
Copy this XML to a file named something like:Â myAccountUpdate.xml
Get the account's CSID
Next, you'll need to get the CSID (CollectionSpace ID) of the account whose password you want to change. You can use a browser and a URL endpoint like this to get the CSID:
http://core.collectionspace.org:8180/cspace-services/accounts
Make an HTTP request
Once you have the account's CSID, you can make an HTTP PUT request that looks something like this:
curl -X PUT http://${domain}:8180/cspace-services/accounts/${csid} -i -u ${user}:${password} -H "Content-Type: application/xml" -T ${file}
${domain}Â - something like "core.collectionspace.org"
${csid}Â - CSID of the account
${user}Â - CollectionSpace username that has permissions to make changes to Accounts resources
${password}Â - The password for the ${user} account above.
${file}Â - The XML payload file containing the new password
For example, here is what an actual request might look like:
curl -X PUT http://core.collectionspace.org:8180/cspace-services/accounts/820b9795-fa4b-4142-9b61-e0f9de577d8f -i -u admin@core.collectionspace.org:Administrator -H "Content-Type: application/xml" -T myAccountUpdate.xml
The output of a successful API request will look something like this:
HTTP/1.1 200 OK Server: Apache-Coyote/1.1 Cache-Control: no-cache, no-store, max-age=0, must-revalidate Pragma: no-cache Expires: 0 X-XSS-Protection: 1; mode=block X-Frame-Options: DENY X-Content-Type-Options: nosniff Content-Type: application/xml Content-Length: 555
Verify the new password
Voila! Â The account has a new password. Â You can test it by trying to login to the UI.