package org.dcache.gplazma.strategies; import java.security.Principal; import java.util.Set; import org.dcache.gplazma.AuthenticationException; import org.dcache.gplazma.monitor.LoginMonitor; import org.dcache.gplazma.plugins.GPlazmaAuthenticationPlugin; /** * Implementing classes will use (combinations of) * GPlazmaAuthenticationPlugins to extract principals from credentials. */ public interface AuthenticationStrategy extends GPlazmaStrategy<GPlazmaAuthenticationPlugin> { void authenticate(LoginMonitor monitor, Set<Object> publicCredential, Set<Object> privateCredential, Set<Principal> identifiedPrincipals) throws AuthenticationException; }