[New] Added ReloadPrivilegeHandlerJob

This commit is contained in:
Robert von Burg 2019-05-07 14:05:37 +02:00
parent 29302a79b0
commit d70a4e8f62
3 changed files with 38 additions and 0 deletions

View File

@ -0,0 +1,17 @@
package li.strolch.policy;
import li.strolch.agent.api.StrolchAgent;
import li.strolch.job.StrolchJob;
import li.strolch.privilege.model.PrivilegeContext;
public class ReloadPrivilegeHandlerJob extends StrolchJob {
public ReloadPrivilegeHandlerJob(StrolchAgent agent) {
super(agent);
}
@Override
protected void execute(PrivilegeContext ctx) throws Exception {
getContainer().getPrivilegeHandler().reloadConfiguration();
}
}

View File

@ -66,6 +66,22 @@ public class DefaultStrolchPrivilegeHandler extends StrolchComponent implements
this.privilegeHandler = initializeFromXml(configuration, privilegeConfigFile);
}
@Override
public void reloadConfiguration() {
try {
runAsAgent(ctx -> this.privilegeHandler.persistSessions(ctx.getCertificate(), getClass().getName()));
} catch (Exception e) {
logger.error("Failed to persist sessions", e);
}
ComponentConfiguration configuration = getConfiguration();
RuntimeConfiguration runtimeConfiguration = configuration.getRuntimeConfiguration();
File privilegeConfigFile = configuration
.getConfigFile(PROP_PRIVILEGE_CONFIG_FILE, PRIVILEGE_CONFIG_XML, runtimeConfiguration);
this.privilegeHandler = initializeFromXml(configuration, privilegeConfigFile);
}
/**
* Initializes the {@link DefaultPrivilegeHandler} from the configuration file
*

View File

@ -29,6 +29,11 @@ import li.strolch.runtime.StrolchConstants;
*/
public interface PrivilegeHandler {
/**
* Reloads the configuration, by re-initializing the underlying privilege handler
*/
void reloadConfiguration();
/**
* Authenticate a user
*