Chapter 13. Security

Table of Contents

13.1. User Authentication
13.1.1. Login Passwords
13.1.2. PIN Codes
13.1.3. Authentication Tokens
13.1.4. One-time Authentication Tokens
13.1.5. User Dialog
13.2. Access over Internet
13.3. Web Sessions
13.3.1. Web Session Timeout
13.3.2. Web Session Cookies
13.4. SSL Passwords
13.5. Secured JMX Connection
13.6. Encrypted Secrets
13.7. Document Signature
13.8. User Client
13.9. Server Commands
13.10. Web Services
13.11. Log Files
13.12. Network Card Reader
13.13. Internal Services
13.14. External Services
13.14.1. Google Cloud Print Service
13.15. Vouchers

This chapter discusses how SavaPage secures sensitive user and application data, and how it communicates with external Information Providers.

13.1. User Authentication

This section discusses how user credentials are protected.

13.1.1. Login Passwords

This section is about the passwords and PIN codes entered in the Web App Login Dialog.


Users can use the HTTPS protocol for connecting to the Web App, so data is encrypted to and from the server. User Domain Passwords

SavaPage does not store or cache user domain login passwords. These passwords are always checked real-time at the source. Internal User Passwords

Passwords of Internal Users are stored as SHA1 hash in the database. Internal Admin Password

The SHA1 hashed password of the internal administrator admin is stored in a text file located at /opt/savapage/server/ Access to this file is restricted to the savapage user.

SavaPage installs with admin as initial password for user admin.


If you forgot the internal admin password, you can reset it by editing the admin.password property in the /opt/savapage/server/ text file. Ignore the existing HASH value. SavaPage will hash your password upon first use.

13.1.2. PIN Codes

User PIN codes are stored in the database as encrypted secret.

13.1.3. Authentication Tokens

When Authentication Persistence is enabled for Browser Local Storage, authentication tokens are stored in the Local Storage of the browser. See Section 4.10.3, “User Authentication”.

Separate authentication tokens are held for the User, Admin, POS and Job Tickets Web App context and the same token is used for different sessions (on different devices) of a single user. A explicit logout in the Web App destroys the token. Authentication tokens are managed in memory on the SavaPage server. So, when the server restarts all local tokens are implicitly invalidated.

13.1.4. One-time Authentication Tokens

A Trusted Third Party (TTP) can acquire a one-time token for Web App user authentication by calling an XML-RPC method. The expiration time of the token should be as short as possible to minimize the risk that an accidentally exposed token can be misused. See Section C.2.1.1, “onetime-auth.createToken” for details.

13.1.5. User Dialog

When authentication fails a neutral "Authentication failed" message is communicated to the user to prevent Account Enumeration and Guessable User Account.