/* * ==================== * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER. * * Copyright 2008-2009 Sun Microsystems, Inc. All rights reserved. * * The contents of this file are subject to the terms of the Common Development * and Distribution License("CDDL") (the "License"). You may not use this file * except in compliance with the License. * * You can obtain a copy of the License at * http://opensource.org/licenses/cddl1.php * See the License for the specific language governing permissions and limitations * under the License. * * When distributing the Covered Code, include this CDDL Header Notice in each file * and include the License file at http://opensource.org/licenses/cddl1.php. * If applicable, add the following below this CDDL Header, with the fields * enclosed by brackets [] replaced by your own identifying information: * "Portions Copyrighted [year] [name of copyright owner]" * ==================== * * Portions Copyrighted 2012 Evolveum, Radovan Semancik */ package org.identityconnectors.solaris.operation; import java.util.Collections; import java.util.Set; import org.identityconnectors.common.CollectionUtil; import org.identityconnectors.common.security.GuardedString; import org.identityconnectors.framework.common.exceptions.ConnectorException; import org.identityconnectors.solaris.SolarisConnection; import org.identityconnectors.solaris.operation.search.SolarisEntry; /** * @author David Adam * */ final class PasswdCommand extends CommandSwitches { private static final Set<String> NEW_PASSWORD_MATCHES = CollectionUtil.newSet("ew Password:", "ew UNIX password:", "password again:"); private final static Set<String> PASSWD_REJECTS = CollectionUtil.newSet("Permission denied", "command not found", "not allowed to execute"); private PasswdCommand() { } public static void configureUserPassword(SolarisEntry entry, GuardedString password, SolarisConnection conn) { try { if (password == null) { return; } String command = conn.getModeDriver().buildPasswdCommand(entry.getName()); conn.executeCommand(command, PASSWD_REJECTS, NEW_PASSWORD_MATCHES); conn.sendPassword(password, Collections.<String> emptySet(), NEW_PASSWORD_MATCHES); // conn.sendPassword(password, Collections.<String> emptySet(), NEW_PASSWORD_MATCHES); conn.sendPassword(password, Collections.<String> emptySet(), Collections.<String> emptySet()); } catch (Exception ex) { throw ConnectorException.wrap(ex); } } public static void configurePasswordProperties(SolarisEntry entry, SolarisConnection conn) { conn.getModeDriver().configurePasswordProperties(entry, conn); } }