Short answer: yes.
If none of the out-of-the-box provided security realm implementation does not suit your needs, you can use your own implementation. This custom implementation must implement the com.quartzdesk.core.security.realm.ISecurityRealm interface.
When implementing a custom realm, it is often easier to extend one of the provided security realm implementations and just override the relevant method, or use the abstract security realm base class com.quartzdesk.core.security.realm.AbstractSecurityRealm.
Once the custom security realm implementation class is ready, copy this class and all of its dependencies to quartzdesk-web.war/WEB-INF/classes (*.class files) and quartzdesk-web.war/WEB-INF/lib (JAR files). This is required because the security realm implementation class must be on the QuartzDesk Web Application's classpath.
All of the afore-mentioned security APIs are available in quartzdesk-core.jar located in quartzdesk-web.war/WEB-INF/lib. If you need to compile your custom security realm implementation against these APIs, please extract quartzdesk-core.jar from the WAR file and upload it to your Maven repository.
To make QuartzDesk Web Application use the custom security realm, you will need to add the following configuration property to your quartzdesk-web.properties:
security.realm.implementation = <class_name>
where <class_name> is the fully-qualified name of the custom security realm implementation class.
If your custom security realm implementation requires some initialization parameters, please add these parameters to quartzdesk-web.properties like so:
security.realm.param.<param_name> = <param_value>
where <param_name> is the parameter name and <param_value> is the parameter value. Once a security realm instance has been created, the parameters are passed to it by invoking its setParameters( Map<String,String> parameters ) method.
If you need any assistance, please do not hesitate and contact our Technical Support through our online chat or via email at support@quartzdesk.com.