package com.constellio.app.services.sso; import java.io.Serializable; @SuppressWarnings("serial") public class SSOServices implements Serializable { private boolean debug = false; private static SSOServices instance; private boolean enabled; private boolean enabledForAgent; private SSOAuthenticator authenticator; private SSOServices() { } public String getPrincipalName() { return authenticator != null ? authenticator.getPrincipalName() : null; } public String acceptSecurityContext(final byte[] serviceTicket) { String clientName; if (enabled && authenticator != null) { clientName = authenticator.acceptSecurityContext(serviceTicket); } else { clientName = null; } return clientName; } public boolean isEnabled() { return enabled; } public void setEnabled(boolean enabled) { this.enabled = enabled; } public boolean isEnabledForAgent() { return enabledForAgent; } public void setEnabledForAgent(boolean enabledForAgent) { this.enabledForAgent = enabledForAgent; } public boolean isDebug() { return debug; } public static SSOServices init(SSOAuthenticator authenticator, boolean debug) { instance = new SSOServices(); instance.authenticator = authenticator; instance.debug = debug; instance.enabled = authenticator != null && authenticator.isEnabled(); instance.enabledForAgent = authenticator != null && authenticator.isEnabledForAgent(); return instance; } public static SSOServices getInstance() { if (instance == null) { // Disabled instance instance = new SSOServices(); } return instance; } }