dropwizard/dropwizard

View on GitHub
dropwizard-auth/src/test/java/io/dropwizard/auth/util/AuthUtil.java

Summary

Maintainability
A
1 hr
Test Coverage
package io.dropwizard.auth.util;

import io.dropwizard.auth.AuthenticationException;
import io.dropwizard.auth.Authenticator;
import io.dropwizard.auth.Authorizer;
import io.dropwizard.auth.PrincipalImpl;
import io.dropwizard.auth.basic.BasicCredentials;

import java.security.Principal;
import java.util.List;
import java.util.Optional;

public class AuthUtil {

    public static Authenticator<BasicCredentials, Principal> getBasicAuthenticator(final List<String> validUsers) {
        return credentials -> {
            if (validUsers.contains(credentials.getUsername()) && "secret".equals(credentials.getPassword())) {
                return Optional.of(new PrincipalImpl(credentials.getUsername()));
            }
            if ("bad-guy".equals(credentials.getUsername())) {
                throw new AuthenticationException("CRAP");
            }
            return Optional.empty();
        };
    }

    public static Authenticator<String, Principal> getSingleUserOAuthAuthenticator(final String presented,
                                                                                   final String returned) {
        return user -> {
            if (presented.equals(user)) {
                return Optional.of(new PrincipalImpl(returned));
            }
            if ("bad-guy".equals(user)) {
                throw new AuthenticationException("CRAP");
            }
            return Optional.empty();
        };
    }

    public static Authenticator<String, Principal> getMultiplyUsersOAuthAuthenticator(final List<String> validUsers) {
        return credentials -> {
            if (validUsers.contains(credentials)) {
                return Optional.of(new PrincipalImpl(credentials));
            }
            if ("bad-guy".equals(credentials)) {
                throw new AuthenticationException("CRAP");
            }
            return Optional.empty();
        };
    }

    public static Authorizer<Principal> getTestAuthorizer(final String validUser,
                                                          final String validRole) {
        return (principal, role) -> principal != null
            && validUser.equals(principal.getName())
            && validRole.equals(role);
    }
}