# File lib/active_ldap/configuration.rb, line 124
      def prepare_configuration(configuration)
        configuration = configuration.symbolize_keys
        uri = configuration.delete(:uri)
        return configuration unless uri

        begin
          uri = URI.parse(uri)
        rescue URI::InvalidURIError
          raise ConfigurationError.new(_("invalid URI: %s") % uri)
        end
        unless uri.is_a?(URI::LDAP)
          raise ConfigurationError.new(_("not a LDAP URI: %s") % uri.to_s)
        end

        uri_configuration = {:port => uri.port}
        uri_configuration[:host] = uri.host if uri.host
        uri_configuration[:bind_dn] = uri.dn if uri.dn
        uri_configuration[:scope] = uri.scope if uri.scope
        uri_configuration[:method] = :ssl if uri.is_a?(URI::LDAPS)
        uri_configuration.merge(configuration)
      end