package edu.harvard.iq.dataverse.authorization.providers.echo; import edu.harvard.iq.dataverse.authorization.AuthenticatedUserDisplayInfo; import edu.harvard.iq.dataverse.authorization.AuthenticationProviderDisplayInfo; import edu.harvard.iq.dataverse.authorization.AuthenticationRequest; import edu.harvard.iq.dataverse.authorization.AuthenticationResponse; import edu.harvard.iq.dataverse.authorization.CredentialsAuthenticationProvider; import java.util.Arrays; import java.util.List; /** * A placeholder user provider, that authenticates everyone, using their credentials. * * @author michael */ public class EchoAuthenticationProvider implements CredentialsAuthenticationProvider { private final String id; private final String prefix; private final String postfix; private final AuthenticationProviderDisplayInfo info; public EchoAuthenticationProvider(String id, String prefix, String postfix, AuthenticationProviderDisplayInfo someInfo) { this.id = id; this.prefix = prefix; this.postfix = postfix; info = someInfo; } public EchoAuthenticationProvider(String id) { this(id, "", "", new AuthenticationProviderDisplayInfo(id, "Echo", "Authenticate everyone using their credentials") ); } @Override public List<Credential> getRequiredCredentials() { return Arrays.asList( new Credential("Name"), new Credential("Email"), new Credential("Affiliation") ); } @Override public String getId() { return id; } @Override public AuthenticationProviderDisplayInfo getInfo() { return info; } @Override public AuthenticationResponse authenticate(AuthenticationRequest request) { AuthenticatedUserDisplayInfo disinf = new AuthenticatedUserDisplayInfo( prefix + " " + request.getCredential("Name") + " " + postfix, prefix + " " + request.getCredential("Name") + " " + postfix, request.getCredential("Email"), request.getCredential("Affiliation"), null); return AuthenticationResponse.makeSuccess(disinf.getEmailAddress(), disinf); } }