alsutton/enterprisepasswordsafe

View on GitHub
src/main/java/com/enterprisepasswordsafe/database/UnfilteredPasswordDAO.java

Summary

Maintainability
A
30 mins
Test Coverage
F
0%
package com.enterprisepasswordsafe.database;

import com.enterprisepasswordsafe.engine.accesscontrol.AccessControl;

import java.io.IOException;
import java.security.GeneralSecurityException;
import java.sql.SQLException;

public class UnfilteredPasswordDAO
    extends PasswordStoreManipulator {

    /**
     * The SQL statement to get a password from an ID.
     */

    private static final String GET_BY_ID =
            "SELECT " + PASSWORD_FIELDS + "  FROM passwords pass WHERE pass.password_id = ?";

    private UnfilteredPasswordDAO() {
        super(GET_BY_ID);
    }

    public Password getById(final User user, final String id)
            throws SQLException, IOException, GeneralSecurityException {
        AccessControl ac = AccessControlDAO.getInstance().getReadAccessControl(user, id);
        if( ac == null )
            return null;

        return getById(id, ac);
    }

    //------------------------

    private static final class InstanceHolder {
        static final UnfilteredPasswordDAO INSTANCE = new UnfilteredPasswordDAO();
    }

    public static UnfilteredPasswordDAO getInstance() {
        return UnfilteredPasswordDAO.InstanceHolder.INSTANCE;
    }

}