| | |
| | | * Copyright 2006-2008 Sun Microsystems, Inc. |
| | | */ |
| | | package org.opends.server.tools; |
| | | import org.opends.messages.Message; |
| | | |
| | | |
| | | |
| | | import static org.opends.messages.ConfigMessages.*; |
| | | import static org.opends.messages.ToolMessages.*; |
| | | import static org.opends.server.loggers.ErrorLogger.*; |
| | | import static org.opends.server.loggers.debug.DebugLogger.*; |
| | | import static org.opends.server.tools.ToolConstants.*; |
| | | import static org.opends.server.util.ServerConstants.*; |
| | | import static org.opends.server.util.StaticUtils.*; |
| | | |
| | | import java.io.OutputStream; |
| | | import java.io.PrintStream; |
| | | import java.util.ArrayList; |
| | |
| | | import java.util.HashSet; |
| | | import java.util.concurrent.ConcurrentHashMap; |
| | | |
| | | import org.opends.messages.Message; |
| | | import org.opends.server.admin.server.ServerManagementContext; |
| | | import org.opends.server.admin.std.server.BackendCfg; |
| | | import org.opends.server.admin.std.server.LDIFBackendCfg; |
| | |
| | | import org.opends.server.core.PasswordStorageSchemeConfigManager; |
| | | import org.opends.server.crypto.CryptoManagerSync; |
| | | import org.opends.server.extensions.ConfigFileHandler; |
| | | import org.opends.server.protocols.asn1.ASN1OctetString; |
| | | import org.opends.server.loggers.debug.DebugTracer; |
| | | import org.opends.server.protocols.ldap.LDAPResultCode; |
| | | import org.opends.server.schema.AuthPasswordSyntax; |
| | | import org.opends.server.schema.UserPasswordSyntax; |
| | |
| | | import org.opends.server.util.args.BooleanArgument; |
| | | import org.opends.server.util.args.FileBasedArgument; |
| | | import org.opends.server.util.args.StringArgument; |
| | | import static org.opends.server.loggers.ErrorLogger.logError; |
| | | import static org.opends.server.loggers.debug.DebugLogger.*; |
| | | |
| | | import org.opends.server.loggers.debug.DebugTracer; |
| | | import static org.opends.messages.ConfigMessages.*; |
| | | |
| | | import static org.opends.messages.ToolMessages.*; |
| | | import static org.opends.server.util.ServerConstants.*; |
| | | import static org.opends.server.util.StaticUtils.*; |
| | | import static org.opends.server.tools.ToolConstants.*; |
| | | |
| | | |
| | | |
| | |
| | | // If we are not going to just list the storage schemes, then the clear-text |
| | | // password must have been provided. If we're going to encode a password, |
| | | // then the scheme must have also been provided. |
| | | ASN1OctetString clearPW = null; |
| | | ByteString clearPW = null; |
| | | if (! listSchemes.isPresent()) |
| | | { |
| | | if (clearPassword.hasValue()) |
| | | { |
| | | clearPW = new ASN1OctetString(clearPassword.getValue()); |
| | | clearPW = ByteString.valueOf(clearPassword.getValue()); |
| | | } |
| | | else if (clearPasswordFile.hasValue()) |
| | | { |
| | | clearPW = new ASN1OctetString(clearPasswordFile.getValue()); |
| | | clearPW = ByteString.valueOf(clearPasswordFile.getValue()); |
| | | } |
| | | else |
| | | { |
| | |
| | | if (encodedPassword.hasValue()) |
| | | { |
| | | compareMode = true; |
| | | encodedPW = new ASN1OctetString(encodedPassword.getValue()); |
| | | encodedPW = ByteString.valueOf(encodedPassword.getValue()); |
| | | } |
| | | else if (encodedPasswordFile.hasValue()) |
| | | { |
| | | compareMode = true; |
| | | encodedPW = new ASN1OctetString(encodedPasswordFile.getValue()); |
| | | encodedPW = ByteString.valueOf(encodedPasswordFile.getValue()); |
| | | } |
| | | else |
| | | { |
| | |
| | | { |
| | | try |
| | | { |
| | | directoryServer.bootstrapClient(); |
| | | directoryServer.initializeJMX(); |
| | | DirectoryServer.bootstrapClient(); |
| | | DirectoryServer.initializeJMX(); |
| | | } |
| | | catch (Exception e) |
| | | { |
| | |
| | | try |
| | | { |
| | | StringBuilder[] authPWElements = |
| | | AuthPasswordSyntax.decodeAuthPassword(encodedPW.stringValue()); |
| | | AuthPasswordSyntax.decodeAuthPassword(encodedPW.toString()); |
| | | scheme = authPWElements[0].toString(); |
| | | authInfo = authPWElements[1].toString(); |
| | | authValue = authPWElements[2].toString(); |
| | |
| | | try |
| | | { |
| | | String[] userPWElements = |
| | | UserPasswordSyntax.decodeUserPassword(encodedPW.stringValue()); |
| | | UserPasswordSyntax.decodeUserPassword(encodedPW.toString()); |
| | | encodedPWString = userPWElements[1]; |
| | | |
| | | storageScheme = |
| | |
| | | encodedPWString = encodedPW.toString(); |
| | | |
| | | String scheme = toLowerCase(schemeName.getValue()); |
| | | storageScheme = directoryServer.getPasswordStorageScheme(scheme); |
| | | storageScheme = DirectoryServer.getPasswordStorageScheme(scheme); |
| | | if (storageScheme == null) |
| | | { |
| | | Message message = ERR_ENCPW_NO_SUCH_SCHEME.get(scheme); |
| | |
| | | } |
| | | |
| | | if (storageScheme.passwordMatches(clearPW, |
| | | new ASN1OctetString(encodedPWString))) |
| | | ByteString.valueOf(encodedPWString))) |
| | | { |
| | | Message message = INFO_ENCPW_PASSWORDS_MATCH.get(); |
| | | out.println(message); |
| | |
| | | encodedPW = storageScheme.encodeAuthPassword(clearPW); |
| | | |
| | | Message message = ERR_ENCPW_ENCODED_PASSWORD.get( |
| | | encodedPW.stringValue()); |
| | | encodedPW.toString()); |
| | | out.println(message); |
| | | } |
| | | catch (DirectoryException de) |
| | |
| | | encodedPW = storageScheme.encodePasswordWithScheme(clearPW); |
| | | |
| | | Message message = |
| | | ERR_ENCPW_ENCODED_PASSWORD.get(encodedPW.stringValue()); |
| | | ERR_ENCPW_ENCODED_PASSWORD.get(encodedPW.toString()); |
| | | out.println(message); |
| | | } |
| | | catch (DirectoryException de) |