Spring security related configuration is packed in three context files:
Spring security related configuration is packed in three context files:
* security-context-common.xml contains
**security-context-common.xml* contains all security related beans that are relevant for both local and SAML based authentication methods. The common context is included in the -local and -saml context files.
* security-context-local.xml
**security-context-local.xml* defines beans only necessary in local authentication enviroments.
* security-context-saml.xml
**security-context-saml.xml* respectively only includes beans that are required for SAML processing.
With the environment flag `-Dsaml=true` the local context is no longer loaded and the saml context comes into play. When set to false or missing, the local context is loaded.
### Local user database
### Local user database
Without specifying the saml environment parameter, the sample application starts in local authentication mode.
Without specifying the saml environment parameter, the sample application starts in local authentication mode.
To support local authentication, configure this library as in the *security-local-context.xml* template. To complete the setup for this method, applications might want to implement the *UserService* interface (base implementation *BaseUserService*) to provide access to persisted user information.
A sample dariahsp.yml configuration
```yaml
auth:
local:
users:
-username:'admin'
#this hash represents the BCrypt encoded 'password'
#Uncomment if keystore is not protected by password
#pass: 'somepass'
alias:minfba.de.dariah.eu
#leave aliaspass empty if no password has been set
aliaspass:'aliaspass'
```
The implementation needs to be provided to the *LocalAuthenticationProvider*.
In cases that do not require user detail persistence, no implementation of the *UserDetails* should be provided to the *LocalAuthenticationProvider*.
### SAML
## Further info
### Java keystore
Based on a X.509 keypair and certificate chains, the required Java keystore can easily be consolidated with `openssl` and the `keytool` (comes with Java installation). The followings steps show the commands for the example of the keystore for dfa.de.dariah.eu and the appropriate input. Please modify accordingly:
**Convert pem/pem keypair to p12 for easier input:**
For the -name argument make sure to chose the later alias of the keypair in the keystore -- specified in the following step with the -alias argument.