| | |
| | | * Portions Copyright 2012-2014 ForgeRock AS |
| | | */ |
| | | package org.opends.server.tools; |
| | | import org.opends.messages.Message; |
| | | import org.forgerock.i18n.LocalizableMessage; |
| | | |
| | | |
| | | |
| | |
| | | * specified SASL mechanism, mapped from the property names to their |
| | | * corresponding descriptions. |
| | | */ |
| | | public static LinkedHashMap<String,Message> getSASLProperties( |
| | | public static LinkedHashMap<String,LocalizableMessage> getSASLProperties( |
| | | String mechanism) |
| | | { |
| | | String upperName = toUpperCase(mechanism); |
| | |
| | | } |
| | | catch (IOException ioe) |
| | | { |
| | | Message message = |
| | | LocalizableMessage message = |
| | | ERR_LDAPAUTH_CANNOT_SEND_SIMPLE_BIND.get(getExceptionMessage(ioe)); |
| | | throw new ClientException( |
| | | LDAPResultCode.CLIENT_SIDE_SERVER_DOWN, message, ioe); |
| | | } |
| | | catch (Exception e) |
| | | { |
| | | Message message = |
| | | LocalizableMessage message = |
| | | ERR_LDAPAUTH_CANNOT_SEND_SIMPLE_BIND.get(getExceptionMessage(e)); |
| | | throw new ClientException(LDAPResultCode.CLIENT_SIDE_ENCODING_ERROR, |
| | | message, e); |
| | |
| | | responseMessage = reader.readMessage(); |
| | | if (responseMessage == null) |
| | | { |
| | | Message message = |
| | | LocalizableMessage message = |
| | | ERR_LDAPAUTH_CONNECTION_CLOSED_WITHOUT_BIND_RESPONSE.get(); |
| | | throw new ClientException(LDAPResultCode.CLIENT_SIDE_SERVER_DOWN, |
| | | message); |
| | |
| | | } |
| | | catch (IOException ioe) |
| | | { |
| | | Message message = |
| | | LocalizableMessage message = |
| | | ERR_LDAPAUTH_CANNOT_READ_BIND_RESPONSE.get(getExceptionMessage(ioe)); |
| | | throw new ClientException( |
| | | LDAPResultCode.CLIENT_SIDE_SERVER_DOWN, message, ioe); |
| | | } |
| | | catch (ASN1Exception ae) |
| | | { |
| | | Message message = |
| | | LocalizableMessage message = |
| | | ERR_LDAPAUTH_CANNOT_READ_BIND_RESPONSE.get(getExceptionMessage(ae)); |
| | | throw new ClientException(LDAPResultCode.CLIENT_SIDE_DECODING_ERROR, |
| | | message, ae); |
| | | } |
| | | catch (LDAPException le) |
| | | { |
| | | Message message = |
| | | LocalizableMessage message = |
| | | ERR_LDAPAUTH_CANNOT_READ_BIND_RESPONSE.get(getExceptionMessage(le)); |
| | | throw new ClientException(LDAPResultCode.CLIENT_SIDE_DECODING_ERROR, |
| | | message, le); |
| | | } |
| | | catch (Exception e) |
| | | { |
| | | Message message = |
| | | LocalizableMessage message = |
| | | ERR_LDAPAUTH_CANNOT_READ_BIND_RESPONSE.get(getExceptionMessage(e)); |
| | | throw new ClientException( |
| | | LDAPResultCode.CLIENT_SIDE_LOCAL_ERROR, message, e); |
| | |
| | | if ((responseOID != null) && |
| | | responseOID.equals(OID_NOTICE_OF_DISCONNECTION)) |
| | | { |
| | | Message message = ERR_LDAPAUTH_SERVER_DISCONNECT. |
| | | LocalizableMessage message = ERR_LDAPAUTH_SERVER_DISCONNECT. |
| | | get(extendedResponse.getResultCode(), |
| | | extendedResponse.getErrorMessage()); |
| | | throw new LDAPException(extendedResponse.getResultCode(), message); |
| | | } |
| | | else |
| | | { |
| | | Message message = ERR_LDAPAUTH_UNEXPECTED_EXTENDED_RESPONSE.get( |
| | | LocalizableMessage message = ERR_LDAPAUTH_UNEXPECTED_EXTENDED_RESPONSE.get( |
| | | String.valueOf(extendedResponse)); |
| | | throw new ClientException(LDAPResultCode.CLIENT_SIDE_LOCAL_ERROR, |
| | | message); |
| | | } |
| | | |
| | | default: |
| | | Message message = ERR_LDAPAUTH_UNEXPECTED_RESPONSE.get( |
| | | LocalizableMessage message = ERR_LDAPAUTH_UNEXPECTED_RESPONSE.get( |
| | | String.valueOf(responseMessage.getProtocolOp())); |
| | | throw new ClientException( |
| | | LDAPResultCode.CLIENT_SIDE_LOCAL_ERROR, message); |
| | |
| | | |
| | | // FIXME -- Add support for referrals. |
| | | |
| | | Message message = ERR_LDAPAUTH_SIMPLE_BIND_FAILED.get(); |
| | | LocalizableMessage message = ERR_LDAPAUTH_SIMPLE_BIND_FAILED.get(); |
| | | throw new LDAPException(resultCode, bindResponse.getErrorMessage(), |
| | | message, bindResponse.getMatchedDN(), null); |
| | | } |
| | |
| | | |
| | | if ((mechanism == null) || (mechanism.length() == 0)) |
| | | { |
| | | Message message = ERR_LDAPAUTH_NO_SASL_MECHANISM.get(); |
| | | LocalizableMessage message = ERR_LDAPAUTH_NO_SASL_MECHANISM.get(); |
| | | throw new ClientException( |
| | | LDAPResultCode.CLIENT_SIDE_PARAM_ERROR, message); |
| | | } |
| | |
| | | } |
| | | else |
| | | { |
| | | Message message = ERR_LDAPAUTH_UNSUPPORTED_SASL_MECHANISM.get(mechanism); |
| | | LocalizableMessage message = ERR_LDAPAUTH_UNSUPPORTED_SASL_MECHANISM.get(mechanism); |
| | | throw new ClientException( |
| | | LDAPResultCode.CLIENT_SIDE_AUTH_UNKNOWN, message); |
| | | } |
| | |
| | | |
| | | if (iterator.hasNext()) |
| | | { |
| | | Message message = ERR_LDAPAUTH_TRACE_SINGLE_VALUED.get(); |
| | | LocalizableMessage message = ERR_LDAPAUTH_TRACE_SINGLE_VALUED.get(); |
| | | throw new ClientException(LDAPResultCode.CLIENT_SIDE_PARAM_ERROR, |
| | | message); |
| | | } |
| | |
| | | } |
| | | else |
| | | { |
| | | Message message = ERR_LDAPAUTH_INVALID_SASL_PROPERTY.get( |
| | | LocalizableMessage message = ERR_LDAPAUTH_INVALID_SASL_PROPERTY.get( |
| | | name, SASL_MECHANISM_ANONYMOUS); |
| | | throw new ClientException(LDAPResultCode.CLIENT_SIDE_PARAM_ERROR, |
| | | message); |
| | |
| | | } |
| | | catch (IOException ioe) |
| | | { |
| | | Message message = ERR_LDAPAUTH_CANNOT_SEND_SASL_BIND.get( |
| | | LocalizableMessage message = ERR_LDAPAUTH_CANNOT_SEND_SASL_BIND.get( |
| | | SASL_MECHANISM_ANONYMOUS, getExceptionMessage(ioe)); |
| | | throw new ClientException( |
| | | LDAPResultCode.CLIENT_SIDE_SERVER_DOWN, message, ioe); |
| | | } |
| | | catch (Exception e) |
| | | { |
| | | Message message = ERR_LDAPAUTH_CANNOT_SEND_SASL_BIND.get( |
| | | LocalizableMessage message = ERR_LDAPAUTH_CANNOT_SEND_SASL_BIND.get( |
| | | SASL_MECHANISM_ANONYMOUS, getExceptionMessage(e)); |
| | | throw new ClientException(LDAPResultCode.CLIENT_SIDE_ENCODING_ERROR, |
| | | message, e); |
| | |
| | | responseMessage = reader.readMessage(); |
| | | if (responseMessage == null) |
| | | { |
| | | Message message = |
| | | LocalizableMessage message = |
| | | ERR_LDAPAUTH_CONNECTION_CLOSED_WITHOUT_BIND_RESPONSE.get(); |
| | | throw new ClientException(LDAPResultCode.CLIENT_SIDE_SERVER_DOWN, |
| | | message); |
| | |
| | | } |
| | | catch (IOException ioe) |
| | | { |
| | | Message message = |
| | | LocalizableMessage message = |
| | | ERR_LDAPAUTH_CANNOT_READ_BIND_RESPONSE.get(getExceptionMessage(ioe)); |
| | | throw new ClientException( |
| | | LDAPResultCode.CLIENT_SIDE_SERVER_DOWN, message, ioe); |
| | | } |
| | | catch (ASN1Exception ae) |
| | | { |
| | | Message message = |
| | | LocalizableMessage message = |
| | | ERR_LDAPAUTH_CANNOT_READ_BIND_RESPONSE.get(getExceptionMessage(ae)); |
| | | throw new ClientException(LDAPResultCode.CLIENT_SIDE_DECODING_ERROR, |
| | | message, ae); |
| | | } |
| | | catch (LDAPException le) |
| | | { |
| | | Message message = |
| | | LocalizableMessage message = |
| | | ERR_LDAPAUTH_CANNOT_READ_BIND_RESPONSE.get(getExceptionMessage(le)); |
| | | throw new ClientException(LDAPResultCode.CLIENT_SIDE_DECODING_ERROR, |
| | | message, le); |
| | | } |
| | | catch (Exception e) |
| | | { |
| | | Message message = |
| | | LocalizableMessage message = |
| | | ERR_LDAPAUTH_CANNOT_READ_BIND_RESPONSE.get(getExceptionMessage(e)); |
| | | throw new ClientException( |
| | | LDAPResultCode.CLIENT_SIDE_LOCAL_ERROR, message, e); |
| | |
| | | if ((responseOID != null) && |
| | | responseOID.equals(OID_NOTICE_OF_DISCONNECTION)) |
| | | { |
| | | Message message = ERR_LDAPAUTH_SERVER_DISCONNECT. |
| | | LocalizableMessage message = ERR_LDAPAUTH_SERVER_DISCONNECT. |
| | | get(extendedResponse.getResultCode(), |
| | | extendedResponse.getErrorMessage()); |
| | | throw new LDAPException(extendedResponse.getResultCode(), message); |
| | | } |
| | | else |
| | | { |
| | | Message message = ERR_LDAPAUTH_UNEXPECTED_EXTENDED_RESPONSE.get( |
| | | LocalizableMessage message = ERR_LDAPAUTH_UNEXPECTED_EXTENDED_RESPONSE.get( |
| | | String.valueOf(extendedResponse)); |
| | | throw new ClientException(LDAPResultCode.CLIENT_SIDE_LOCAL_ERROR, |
| | | message); |
| | | } |
| | | |
| | | default: |
| | | Message message = ERR_LDAPAUTH_UNEXPECTED_RESPONSE.get( |
| | | LocalizableMessage message = ERR_LDAPAUTH_UNEXPECTED_RESPONSE.get( |
| | | String.valueOf(responseMessage.getProtocolOp())); |
| | | throw new ClientException(LDAPResultCode.CLIENT_SIDE_LOCAL_ERROR, |
| | | message); |
| | |
| | | |
| | | // FIXME -- Add support for referrals. |
| | | |
| | | Message message = |
| | | LocalizableMessage message = |
| | | ERR_LDAPAUTH_SASL_BIND_FAILED.get(SASL_MECHANISM_ANONYMOUS); |
| | | throw new LDAPException(resultCode, bindResponse.getErrorMessage(), |
| | | message, bindResponse.getMatchedDN(), null); |
| | |
| | | * SASL ANONYMOUS bind, mapped from the property names to their |
| | | * corresponding descriptions. |
| | | */ |
| | | public static LinkedHashMap<String, Message> getSASLAnonymousProperties() |
| | | public static LinkedHashMap<String, LocalizableMessage> getSASLAnonymousProperties() |
| | | { |
| | | LinkedHashMap<String,Message> properties = |
| | | new LinkedHashMap<String,Message>(1); |
| | | LinkedHashMap<String,LocalizableMessage> properties = |
| | | new LinkedHashMap<String,LocalizableMessage>(1); |
| | | |
| | | properties.put(SASL_PROPERTY_TRACE, |
| | | INFO_LDAPAUTH_PROPERTY_DESCRIPTION_TRACE.get()); |
| | |
| | | // properties are allowed. |
| | | if ((saslProperties == null) || saslProperties.isEmpty()) |
| | | { |
| | | Message message = |
| | | LocalizableMessage message = |
| | | ERR_LDAPAUTH_NO_SASL_PROPERTIES.get(SASL_MECHANISM_CRAM_MD5); |
| | | throw new ClientException( |
| | | LDAPResultCode.CLIENT_SIDE_PARAM_ERROR, message); |
| | |
| | | |
| | | if (iterator.hasNext()) |
| | | { |
| | | Message message = ERR_LDAPAUTH_AUTHID_SINGLE_VALUED.get(); |
| | | LocalizableMessage message = ERR_LDAPAUTH_AUTHID_SINGLE_VALUED.get(); |
| | | throw new ClientException(LDAPResultCode.CLIENT_SIDE_PARAM_ERROR, |
| | | message); |
| | | } |
| | |
| | | } |
| | | else |
| | | { |
| | | Message message = ERR_LDAPAUTH_INVALID_SASL_PROPERTY.get( |
| | | LocalizableMessage message = ERR_LDAPAUTH_INVALID_SASL_PROPERTY.get( |
| | | name, SASL_MECHANISM_CRAM_MD5); |
| | | throw new ClientException( |
| | | LDAPResultCode.CLIENT_SIDE_PARAM_ERROR, message); |
| | |
| | | // Make sure that the authID was provided. |
| | | if ((authID == null) || (authID.length() == 0)) |
| | | { |
| | | Message message = |
| | | LocalizableMessage message = |
| | | ERR_LDAPAUTH_SASL_AUTHID_REQUIRED.get(SASL_MECHANISM_CRAM_MD5); |
| | | throw new ClientException( |
| | | LDAPResultCode.CLIENT_SIDE_PARAM_ERROR, message); |
| | |
| | | } |
| | | catch (IOException ioe) |
| | | { |
| | | Message message = ERR_LDAPAUTH_CANNOT_SEND_INITIAL_SASL_BIND.get( |
| | | LocalizableMessage message = ERR_LDAPAUTH_CANNOT_SEND_INITIAL_SASL_BIND.get( |
| | | SASL_MECHANISM_CRAM_MD5, getExceptionMessage(ioe)); |
| | | throw new ClientException( |
| | | LDAPResultCode.CLIENT_SIDE_SERVER_DOWN, message, ioe); |
| | | } |
| | | catch (Exception e) |
| | | { |
| | | Message message = ERR_LDAPAUTH_CANNOT_SEND_INITIAL_SASL_BIND.get( |
| | | LocalizableMessage message = ERR_LDAPAUTH_CANNOT_SEND_INITIAL_SASL_BIND.get( |
| | | SASL_MECHANISM_CRAM_MD5, getExceptionMessage(e)); |
| | | throw new ClientException(LDAPResultCode.CLIENT_SIDE_ENCODING_ERROR, |
| | | message, e); |
| | |
| | | responseMessage1 = reader.readMessage(); |
| | | if (responseMessage1 == null) |
| | | { |
| | | Message message = |
| | | LocalizableMessage message = |
| | | ERR_LDAPAUTH_CONNECTION_CLOSED_WITHOUT_BIND_RESPONSE.get(); |
| | | throw new ClientException(LDAPResultCode.CLIENT_SIDE_SERVER_DOWN, |
| | | message); |
| | |
| | | } |
| | | catch (IOException ioe) |
| | | { |
| | | Message message = ERR_LDAPAUTH_CANNOT_READ_INITIAL_BIND_RESPONSE.get( |
| | | LocalizableMessage message = ERR_LDAPAUTH_CANNOT_READ_INITIAL_BIND_RESPONSE.get( |
| | | SASL_MECHANISM_CRAM_MD5, getExceptionMessage(ioe)); |
| | | throw new ClientException( |
| | | LDAPResultCode.CLIENT_SIDE_SERVER_DOWN, message, ioe); |
| | | } |
| | | catch (ASN1Exception ae) |
| | | { |
| | | Message message = ERR_LDAPAUTH_CANNOT_READ_INITIAL_BIND_RESPONSE.get( |
| | | LocalizableMessage message = ERR_LDAPAUTH_CANNOT_READ_INITIAL_BIND_RESPONSE.get( |
| | | SASL_MECHANISM_CRAM_MD5, getExceptionMessage(ae)); |
| | | throw new ClientException(LDAPResultCode.CLIENT_SIDE_DECODING_ERROR, |
| | | message, ae); |
| | | } |
| | | catch (LDAPException le) |
| | | { |
| | | Message message = ERR_LDAPAUTH_CANNOT_READ_INITIAL_BIND_RESPONSE.get( |
| | | LocalizableMessage message = ERR_LDAPAUTH_CANNOT_READ_INITIAL_BIND_RESPONSE.get( |
| | | SASL_MECHANISM_CRAM_MD5, getExceptionMessage(le)); |
| | | throw new ClientException(LDAPResultCode.CLIENT_SIDE_DECODING_ERROR, |
| | | message, le); |
| | | } |
| | | catch (Exception e) |
| | | { |
| | | Message message = ERR_LDAPAUTH_CANNOT_READ_INITIAL_BIND_RESPONSE.get( |
| | | LocalizableMessage message = ERR_LDAPAUTH_CANNOT_READ_INITIAL_BIND_RESPONSE.get( |
| | | SASL_MECHANISM_CRAM_MD5, getExceptionMessage(e)); |
| | | throw new ClientException( |
| | | LDAPResultCode.CLIENT_SIDE_LOCAL_ERROR, message, e); |
| | |
| | | if ((responseOID != null) && |
| | | responseOID.equals(OID_NOTICE_OF_DISCONNECTION)) |
| | | { |
| | | Message message = ERR_LDAPAUTH_SERVER_DISCONNECT. |
| | | LocalizableMessage message = ERR_LDAPAUTH_SERVER_DISCONNECT. |
| | | get(extendedResponse.getResultCode(), |
| | | extendedResponse.getErrorMessage()); |
| | | throw new LDAPException(extendedResponse.getResultCode(), message); |
| | | } |
| | | else |
| | | { |
| | | Message message = ERR_LDAPAUTH_UNEXPECTED_EXTENDED_RESPONSE.get( |
| | | LocalizableMessage message = ERR_LDAPAUTH_UNEXPECTED_EXTENDED_RESPONSE.get( |
| | | String.valueOf(extendedResponse)); |
| | | throw new ClientException(LDAPResultCode.CLIENT_SIDE_LOCAL_ERROR, |
| | | message); |
| | | } |
| | | |
| | | default: |
| | | Message message = ERR_LDAPAUTH_UNEXPECTED_RESPONSE.get( |
| | | LocalizableMessage message = ERR_LDAPAUTH_UNEXPECTED_RESPONSE.get( |
| | | String.valueOf(responseMessage1.getProtocolOp())); |
| | | throw new ClientException( |
| | | LDAPResultCode.CLIENT_SIDE_LOCAL_ERROR, message); |
| | |
| | | int resultCode1 = bindResponse1.getResultCode(); |
| | | if (resultCode1 != LDAPResultCode.SASL_BIND_IN_PROGRESS) |
| | | { |
| | | Message errorMessage = bindResponse1.getErrorMessage(); |
| | | LocalizableMessage errorMessage = bindResponse1.getErrorMessage(); |
| | | if (errorMessage == null) |
| | | { |
| | | errorMessage = Message.EMPTY; |
| | | errorMessage = LocalizableMessage.EMPTY; |
| | | } |
| | | |
| | | Message message = ERR_LDAPAUTH_UNEXPECTED_INITIAL_BIND_RESPONSE. |
| | | LocalizableMessage message = ERR_LDAPAUTH_UNEXPECTED_INITIAL_BIND_RESPONSE. |
| | | get(SASL_MECHANISM_CRAM_MD5, resultCode1, |
| | | LDAPResultCode.toString(resultCode1), errorMessage); |
| | | throw new LDAPException(resultCode1, errorMessage, message, |
| | |
| | | ByteString serverChallenge = bindResponse1.getServerSASLCredentials(); |
| | | if (serverChallenge == null) |
| | | { |
| | | Message message = ERR_LDAPAUTH_NO_CRAMMD5_SERVER_CREDENTIALS.get(); |
| | | LocalizableMessage message = ERR_LDAPAUTH_NO_CRAMMD5_SERVER_CREDENTIALS.get(); |
| | | throw new LDAPException(LDAPResultCode.PROTOCOL_ERROR, message); |
| | | } |
| | | |
| | |
| | | } |
| | | catch (IOException ioe) |
| | | { |
| | | Message message = ERR_LDAPAUTH_CANNOT_SEND_SECOND_SASL_BIND.get( |
| | | LocalizableMessage message = ERR_LDAPAUTH_CANNOT_SEND_SECOND_SASL_BIND.get( |
| | | SASL_MECHANISM_CRAM_MD5, getExceptionMessage(ioe)); |
| | | throw new ClientException( |
| | | LDAPResultCode.CLIENT_SIDE_SERVER_DOWN, message, ioe); |
| | | } |
| | | catch (Exception e) |
| | | { |
| | | Message message = ERR_LDAPAUTH_CANNOT_SEND_SECOND_SASL_BIND.get( |
| | | LocalizableMessage message = ERR_LDAPAUTH_CANNOT_SEND_SECOND_SASL_BIND.get( |
| | | SASL_MECHANISM_CRAM_MD5, getExceptionMessage(e)); |
| | | throw new ClientException( |
| | | LDAPResultCode.CLIENT_SIDE_LOCAL_ERROR, message, e); |
| | |
| | | responseMessage2 = reader.readMessage(); |
| | | if (responseMessage2 == null) |
| | | { |
| | | Message message = |
| | | LocalizableMessage message = |
| | | ERR_LDAPAUTH_CONNECTION_CLOSED_WITHOUT_BIND_RESPONSE.get(); |
| | | throw new ClientException(LDAPResultCode.CLIENT_SIDE_SERVER_DOWN, |
| | | message); |
| | |
| | | } |
| | | catch (IOException ioe) |
| | | { |
| | | Message message = ERR_LDAPAUTH_CANNOT_READ_SECOND_BIND_RESPONSE.get( |
| | | LocalizableMessage message = ERR_LDAPAUTH_CANNOT_READ_SECOND_BIND_RESPONSE.get( |
| | | SASL_MECHANISM_CRAM_MD5, getExceptionMessage(ioe)); |
| | | throw new ClientException( |
| | | LDAPResultCode.CLIENT_SIDE_SERVER_DOWN, message, ioe); |
| | | } |
| | | catch (ASN1Exception ae) |
| | | { |
| | | Message message = ERR_LDAPAUTH_CANNOT_READ_SECOND_BIND_RESPONSE.get( |
| | | LocalizableMessage message = ERR_LDAPAUTH_CANNOT_READ_SECOND_BIND_RESPONSE.get( |
| | | SASL_MECHANISM_CRAM_MD5, getExceptionMessage(ae)); |
| | | throw new ClientException(LDAPResultCode.CLIENT_SIDE_DECODING_ERROR, |
| | | message, ae); |
| | | } |
| | | catch (LDAPException le) |
| | | { |
| | | Message message = ERR_LDAPAUTH_CANNOT_READ_SECOND_BIND_RESPONSE.get( |
| | | LocalizableMessage message = ERR_LDAPAUTH_CANNOT_READ_SECOND_BIND_RESPONSE.get( |
| | | SASL_MECHANISM_CRAM_MD5, getExceptionMessage(le)); |
| | | throw new ClientException(LDAPResultCode.CLIENT_SIDE_DECODING_ERROR, |
| | | message, le); |
| | | } |
| | | catch (Exception e) |
| | | { |
| | | Message message = ERR_LDAPAUTH_CANNOT_READ_SECOND_BIND_RESPONSE.get( |
| | | LocalizableMessage message = ERR_LDAPAUTH_CANNOT_READ_SECOND_BIND_RESPONSE.get( |
| | | SASL_MECHANISM_CRAM_MD5, getExceptionMessage(e)); |
| | | throw new ClientException( |
| | | LDAPResultCode.CLIENT_SIDE_LOCAL_ERROR, message, e); |
| | |
| | | if ((responseOID != null) && |
| | | responseOID.equals(OID_NOTICE_OF_DISCONNECTION)) |
| | | { |
| | | Message message = ERR_LDAPAUTH_SERVER_DISCONNECT. |
| | | LocalizableMessage message = ERR_LDAPAUTH_SERVER_DISCONNECT. |
| | | get(extendedResponse.getResultCode(), |
| | | extendedResponse.getErrorMessage()); |
| | | throw new LDAPException(extendedResponse.getResultCode(), message); |
| | | } |
| | | else |
| | | { |
| | | Message message = ERR_LDAPAUTH_UNEXPECTED_EXTENDED_RESPONSE.get( |
| | | LocalizableMessage message = ERR_LDAPAUTH_UNEXPECTED_EXTENDED_RESPONSE.get( |
| | | String.valueOf(extendedResponse)); |
| | | throw new ClientException(LDAPResultCode.CLIENT_SIDE_LOCAL_ERROR, |
| | | message); |
| | | } |
| | | |
| | | default: |
| | | Message message = ERR_LDAPAUTH_UNEXPECTED_RESPONSE.get( |
| | | LocalizableMessage message = ERR_LDAPAUTH_UNEXPECTED_RESPONSE.get( |
| | | String.valueOf(responseMessage2.getProtocolOp())); |
| | | throw new ClientException( |
| | | LDAPResultCode.CLIENT_SIDE_LOCAL_ERROR, message); |
| | |
| | | |
| | | // FIXME -- Add support for referrals. |
| | | |
| | | Message message = |
| | | LocalizableMessage message = |
| | | ERR_LDAPAUTH_SASL_BIND_FAILED.get(SASL_MECHANISM_CRAM_MD5); |
| | | throw new LDAPException(resultCode2, bindResponse2.getErrorMessage(), |
| | | message, bindResponse2.getMatchedDN(), null); |
| | |
| | | } |
| | | catch (Exception e) |
| | | { |
| | | Message message = ERR_LDAPAUTH_CANNOT_INITIALIZE_MD5_DIGEST.get( |
| | | LocalizableMessage message = ERR_LDAPAUTH_CANNOT_INITIALIZE_MD5_DIGEST.get( |
| | | getExceptionMessage(e)); |
| | | throw new ClientException(LDAPResultCode.CLIENT_SIDE_LOCAL_ERROR, |
| | | message, e); |
| | |
| | | * SASL CRAM-MD5 bind, mapped from the property names to their |
| | | * corresponding descriptions. |
| | | */ |
| | | public static LinkedHashMap<String,Message> getSASLCRAMMD5Properties() |
| | | public static LinkedHashMap<String,LocalizableMessage> getSASLCRAMMD5Properties() |
| | | { |
| | | LinkedHashMap<String,Message> properties = |
| | | new LinkedHashMap<String,Message>(1); |
| | | LinkedHashMap<String,LocalizableMessage> properties = |
| | | new LinkedHashMap<String,LocalizableMessage>(1); |
| | | |
| | | properties.put(SASL_PROPERTY_AUTHID, |
| | | INFO_LDAPAUTH_PROPERTY_DESCRIPTION_AUTHID.get()); |
| | |
| | | // QoP, digest URI, and authzID are optional. |
| | | if ((saslProperties == null) || saslProperties.isEmpty()) |
| | | { |
| | | Message message = |
| | | LocalizableMessage message = |
| | | ERR_LDAPAUTH_NO_SASL_PROPERTIES.get(SASL_MECHANISM_DIGEST_MD5); |
| | | throw new ClientException(LDAPResultCode.CLIENT_SIDE_PARAM_ERROR, |
| | | message); |
| | |
| | | |
| | | if (iterator.hasNext()) |
| | | { |
| | | Message message = ERR_LDAPAUTH_AUTHID_SINGLE_VALUED.get(); |
| | | LocalizableMessage message = ERR_LDAPAUTH_AUTHID_SINGLE_VALUED.get(); |
| | | throw new ClientException(LDAPResultCode.CLIENT_SIDE_PARAM_ERROR, |
| | | message); |
| | | } |
| | |
| | | |
| | | if (iterator.hasNext()) |
| | | { |
| | | Message message = ERR_LDAPAUTH_REALM_SINGLE_VALUED.get(); |
| | | LocalizableMessage message = ERR_LDAPAUTH_REALM_SINGLE_VALUED.get(); |
| | | throw new ClientException(LDAPResultCode.CLIENT_SIDE_PARAM_ERROR, |
| | | message); |
| | | } |
| | |
| | | |
| | | if (iterator.hasNext()) |
| | | { |
| | | Message message = ERR_LDAPAUTH_QOP_SINGLE_VALUED.get(); |
| | | LocalizableMessage message = ERR_LDAPAUTH_QOP_SINGLE_VALUED.get(); |
| | | throw new ClientException(LDAPResultCode.CLIENT_SIDE_PARAM_ERROR, |
| | | message); |
| | | } |
| | |
| | | else if (qop.equals("auth-int") || qop.equals("auth-conf")) |
| | | { |
| | | // FIXME -- Add support for integrity and confidentiality. |
| | | Message message = ERR_LDAPAUTH_DIGESTMD5_QOP_NOT_SUPPORTED.get(qop); |
| | | LocalizableMessage message = ERR_LDAPAUTH_DIGESTMD5_QOP_NOT_SUPPORTED.get(qop); |
| | | throw new ClientException(LDAPResultCode.CLIENT_SIDE_PARAM_ERROR, |
| | | message); |
| | | } |
| | | else |
| | | { |
| | | // This is an illegal value. |
| | | Message message = ERR_LDAPAUTH_DIGESTMD5_INVALID_QOP.get(qop); |
| | | LocalizableMessage message = ERR_LDAPAUTH_DIGESTMD5_INVALID_QOP.get(qop); |
| | | throw new ClientException(LDAPResultCode.CLIENT_SIDE_PARAM_ERROR, |
| | | message); |
| | | } |
| | |
| | | |
| | | if (iterator.hasNext()) |
| | | { |
| | | Message message = ERR_LDAPAUTH_DIGEST_URI_SINGLE_VALUED.get(); |
| | | LocalizableMessage message = ERR_LDAPAUTH_DIGEST_URI_SINGLE_VALUED.get(); |
| | | throw new ClientException(LDAPResultCode.CLIENT_SIDE_PARAM_ERROR, |
| | | message); |
| | | } |
| | |
| | | |
| | | if (iterator.hasNext()) |
| | | { |
| | | Message message = ERR_LDAPAUTH_AUTHZID_SINGLE_VALUED.get(); |
| | | LocalizableMessage message = ERR_LDAPAUTH_AUTHZID_SINGLE_VALUED.get(); |
| | | throw new ClientException(LDAPResultCode.CLIENT_SIDE_PARAM_ERROR, |
| | | message); |
| | | } |
| | |
| | | } |
| | | else |
| | | { |
| | | Message message = ERR_LDAPAUTH_INVALID_SASL_PROPERTY.get( |
| | | LocalizableMessage message = ERR_LDAPAUTH_INVALID_SASL_PROPERTY.get( |
| | | name, SASL_MECHANISM_DIGEST_MD5); |
| | | throw new ClientException(LDAPResultCode.CLIENT_SIDE_PARAM_ERROR, |
| | | message); |
| | |
| | | // Make sure that the authID was provided. |
| | | if ((authID == null) || (authID.length() == 0)) |
| | | { |
| | | Message message = |
| | | LocalizableMessage message = |
| | | ERR_LDAPAUTH_SASL_AUTHID_REQUIRED.get(SASL_MECHANISM_DIGEST_MD5); |
| | | throw new ClientException(LDAPResultCode.CLIENT_SIDE_PARAM_ERROR, |
| | | message); |
| | |
| | | } |
| | | catch (IOException ioe) |
| | | { |
| | | Message message = ERR_LDAPAUTH_CANNOT_SEND_INITIAL_SASL_BIND.get( |
| | | LocalizableMessage message = ERR_LDAPAUTH_CANNOT_SEND_INITIAL_SASL_BIND.get( |
| | | SASL_MECHANISM_DIGEST_MD5, getExceptionMessage(ioe)); |
| | | throw new ClientException( |
| | | LDAPResultCode.CLIENT_SIDE_SERVER_DOWN, message, ioe); |
| | | } |
| | | catch (Exception e) |
| | | { |
| | | Message message = ERR_LDAPAUTH_CANNOT_SEND_INITIAL_SASL_BIND.get( |
| | | LocalizableMessage message = ERR_LDAPAUTH_CANNOT_SEND_INITIAL_SASL_BIND.get( |
| | | SASL_MECHANISM_DIGEST_MD5, getExceptionMessage(e)); |
| | | throw new ClientException(LDAPResultCode.CLIENT_SIDE_ENCODING_ERROR, |
| | | message, e); |
| | |
| | | responseMessage1 = reader.readMessage(); |
| | | if (responseMessage1 == null) |
| | | { |
| | | Message message = |
| | | LocalizableMessage message = |
| | | ERR_LDAPAUTH_CONNECTION_CLOSED_WITHOUT_BIND_RESPONSE.get(); |
| | | throw new ClientException(LDAPResultCode.CLIENT_SIDE_SERVER_DOWN, |
| | | message); |
| | |
| | | } |
| | | catch (IOException ioe) |
| | | { |
| | | Message message = ERR_LDAPAUTH_CANNOT_READ_INITIAL_BIND_RESPONSE.get( |
| | | LocalizableMessage message = ERR_LDAPAUTH_CANNOT_READ_INITIAL_BIND_RESPONSE.get( |
| | | SASL_MECHANISM_DIGEST_MD5, getExceptionMessage(ioe)); |
| | | throw new ClientException( |
| | | LDAPResultCode.CLIENT_SIDE_SERVER_DOWN, message, ioe); |
| | | } |
| | | catch (ASN1Exception ae) |
| | | { |
| | | Message message = ERR_LDAPAUTH_CANNOT_READ_INITIAL_BIND_RESPONSE.get( |
| | | LocalizableMessage message = ERR_LDAPAUTH_CANNOT_READ_INITIAL_BIND_RESPONSE.get( |
| | | SASL_MECHANISM_DIGEST_MD5, getExceptionMessage(ae)); |
| | | throw new ClientException(LDAPResultCode.CLIENT_SIDE_DECODING_ERROR, |
| | | message, ae); |
| | | } |
| | | catch (LDAPException le) |
| | | { |
| | | Message message = ERR_LDAPAUTH_CANNOT_READ_INITIAL_BIND_RESPONSE.get( |
| | | LocalizableMessage message = ERR_LDAPAUTH_CANNOT_READ_INITIAL_BIND_RESPONSE.get( |
| | | SASL_MECHANISM_DIGEST_MD5, getExceptionMessage(le)); |
| | | throw new ClientException(LDAPResultCode.CLIENT_SIDE_DECODING_ERROR, |
| | | message, le); |
| | | } |
| | | catch (Exception e) |
| | | { |
| | | Message message = ERR_LDAPAUTH_CANNOT_READ_INITIAL_BIND_RESPONSE.get( |
| | | LocalizableMessage message = ERR_LDAPAUTH_CANNOT_READ_INITIAL_BIND_RESPONSE.get( |
| | | SASL_MECHANISM_DIGEST_MD5, getExceptionMessage(e)); |
| | | throw new ClientException( |
| | | LDAPResultCode.CLIENT_SIDE_LOCAL_ERROR, message, e); |
| | |
| | | if ((responseOID != null) && |
| | | responseOID.equals(OID_NOTICE_OF_DISCONNECTION)) |
| | | { |
| | | Message message = ERR_LDAPAUTH_SERVER_DISCONNECT. |
| | | LocalizableMessage message = ERR_LDAPAUTH_SERVER_DISCONNECT. |
| | | get(extendedResponse.getResultCode(), |
| | | extendedResponse.getErrorMessage()); |
| | | throw new LDAPException(extendedResponse.getResultCode(), message); |
| | | } |
| | | else |
| | | { |
| | | Message message = ERR_LDAPAUTH_UNEXPECTED_EXTENDED_RESPONSE.get( |
| | | LocalizableMessage message = ERR_LDAPAUTH_UNEXPECTED_EXTENDED_RESPONSE.get( |
| | | String.valueOf(extendedResponse)); |
| | | throw new ClientException(LDAPResultCode.CLIENT_SIDE_LOCAL_ERROR, |
| | | message); |
| | | } |
| | | |
| | | default: |
| | | Message message = ERR_LDAPAUTH_UNEXPECTED_RESPONSE.get( |
| | | LocalizableMessage message = ERR_LDAPAUTH_UNEXPECTED_RESPONSE.get( |
| | | String.valueOf(responseMessage1.getProtocolOp())); |
| | | throw new ClientException( |
| | | LDAPResultCode.CLIENT_SIDE_LOCAL_ERROR, message); |
| | |
| | | int resultCode1 = bindResponse1.getResultCode(); |
| | | if (resultCode1 != LDAPResultCode.SASL_BIND_IN_PROGRESS) |
| | | { |
| | | Message errorMessage = bindResponse1.getErrorMessage(); |
| | | LocalizableMessage errorMessage = bindResponse1.getErrorMessage(); |
| | | if (errorMessage == null) |
| | | { |
| | | errorMessage = Message.EMPTY; |
| | | errorMessage = LocalizableMessage.EMPTY; |
| | | } |
| | | |
| | | Message message = ERR_LDAPAUTH_UNEXPECTED_INITIAL_BIND_RESPONSE. |
| | | LocalizableMessage message = ERR_LDAPAUTH_UNEXPECTED_INITIAL_BIND_RESPONSE. |
| | | get(SASL_MECHANISM_DIGEST_MD5, resultCode1, |
| | | LDAPResultCode.toString(resultCode1), errorMessage); |
| | | throw new LDAPException(resultCode1, errorMessage, message, |
| | |
| | | bindResponse1.getServerSASLCredentials(); |
| | | if (serverCredentials == null) |
| | | { |
| | | Message message = ERR_LDAPAUTH_NO_DIGESTMD5_SERVER_CREDENTIALS.get(); |
| | | LocalizableMessage message = ERR_LDAPAUTH_NO_DIGESTMD5_SERVER_CREDENTIALS.get(); |
| | | throw new LDAPException(LDAPResultCode.PROTOCOL_ERROR, message); |
| | | } |
| | | |
| | |
| | | { |
| | | // This is bad because we're not at the end of the string but we don't |
| | | // have a name/value delimiter. |
| | | Message message = |
| | | LocalizableMessage message = |
| | | ERR_LDAPAUTH_DIGESTMD5_INVALID_TOKEN_IN_CREDENTIALS.get( |
| | | credString, pos); |
| | | throw new LDAPException(LDAPResultCode.PROTOCOL_ERROR, message); |
| | |
| | | // The value must be the string "utf-8". If not, that's an error. |
| | | if (! tokenValue.equalsIgnoreCase("utf-8")) |
| | | { |
| | | Message message = |
| | | LocalizableMessage message = |
| | | ERR_LDAPAUTH_DIGESTMD5_INVALID_CHARSET.get(tokenValue); |
| | | throw new LDAPException(LDAPResultCode.PROTOCOL_ERROR, message); |
| | | } |
| | |
| | | |
| | | if (! qopModes.contains(qop)) |
| | | { |
| | | Message message = ERR_LDAPAUTH_REQUESTED_QOP_NOT_SUPPORTED_BY_SERVER. |
| | | LocalizableMessage message = ERR_LDAPAUTH_REQUESTED_QOP_NOT_SUPPORTED_BY_SERVER. |
| | | get(qop, tokenValue); |
| | | throw new ClientException(LDAPResultCode.CLIENT_SIDE_PARAM_ERROR, |
| | | message); |
| | |
| | | // Make sure that the nonce was included in the response from the server. |
| | | if (nonce == null) |
| | | { |
| | | Message message = ERR_LDAPAUTH_DIGESTMD5_NO_NONCE.get(); |
| | | LocalizableMessage message = ERR_LDAPAUTH_DIGESTMD5_NO_NONCE.get(); |
| | | throw new LDAPException(LDAPResultCode.PROTOCOL_ERROR, message); |
| | | } |
| | | |
| | |
| | | } |
| | | catch (Exception e) |
| | | { |
| | | Message message = ERR_LDAPAUTH_DIGESTMD5_CANNOT_CREATE_RESPONSE_DIGEST. |
| | | LocalizableMessage message = ERR_LDAPAUTH_DIGESTMD5_CANNOT_CREATE_RESPONSE_DIGEST. |
| | | get(getExceptionMessage(e)); |
| | | throw new ClientException( |
| | | LDAPResultCode.CLIENT_SIDE_LOCAL_ERROR, message, e); |
| | |
| | | } |
| | | catch (IOException ioe) |
| | | { |
| | | Message message = ERR_LDAPAUTH_CANNOT_SEND_SECOND_SASL_BIND.get( |
| | | LocalizableMessage message = ERR_LDAPAUTH_CANNOT_SEND_SECOND_SASL_BIND.get( |
| | | SASL_MECHANISM_DIGEST_MD5, getExceptionMessage(ioe)); |
| | | throw new ClientException( |
| | | LDAPResultCode.CLIENT_SIDE_SERVER_DOWN, message, ioe); |
| | | } |
| | | catch (Exception e) |
| | | { |
| | | Message message = ERR_LDAPAUTH_CANNOT_SEND_SECOND_SASL_BIND.get( |
| | | LocalizableMessage message = ERR_LDAPAUTH_CANNOT_SEND_SECOND_SASL_BIND.get( |
| | | SASL_MECHANISM_DIGEST_MD5, getExceptionMessage(e)); |
| | | throw new ClientException(LDAPResultCode.CLIENT_SIDE_ENCODING_ERROR, |
| | | message, e); |
| | |
| | | responseMessage2 = reader.readMessage(); |
| | | if (responseMessage2 == null) |
| | | { |
| | | Message message = |
| | | LocalizableMessage message = |
| | | ERR_LDAPAUTH_CONNECTION_CLOSED_WITHOUT_BIND_RESPONSE.get(); |
| | | throw new ClientException(LDAPResultCode.CLIENT_SIDE_SERVER_DOWN, |
| | | message); |
| | |
| | | } |
| | | catch (IOException ioe) |
| | | { |
| | | Message message = ERR_LDAPAUTH_CANNOT_READ_SECOND_BIND_RESPONSE.get( |
| | | LocalizableMessage message = ERR_LDAPAUTH_CANNOT_READ_SECOND_BIND_RESPONSE.get( |
| | | SASL_MECHANISM_DIGEST_MD5, getExceptionMessage(ioe)); |
| | | throw new ClientException( |
| | | LDAPResultCode.CLIENT_SIDE_SERVER_DOWN, message, ioe); |
| | | } |
| | | catch (ASN1Exception ae) |
| | | { |
| | | Message message = ERR_LDAPAUTH_CANNOT_READ_SECOND_BIND_RESPONSE.get( |
| | | LocalizableMessage message = ERR_LDAPAUTH_CANNOT_READ_SECOND_BIND_RESPONSE.get( |
| | | SASL_MECHANISM_DIGEST_MD5, getExceptionMessage(ae)); |
| | | throw new ClientException(LDAPResultCode.CLIENT_SIDE_DECODING_ERROR, |
| | | message, ae); |
| | | } |
| | | catch (LDAPException le) |
| | | { |
| | | Message message = ERR_LDAPAUTH_CANNOT_READ_SECOND_BIND_RESPONSE.get( |
| | | LocalizableMessage message = ERR_LDAPAUTH_CANNOT_READ_SECOND_BIND_RESPONSE.get( |
| | | SASL_MECHANISM_DIGEST_MD5, getExceptionMessage(le)); |
| | | throw new ClientException(LDAPResultCode.CLIENT_SIDE_DECODING_ERROR, |
| | | message, le); |
| | | } |
| | | catch (Exception e) |
| | | { |
| | | Message message = ERR_LDAPAUTH_CANNOT_READ_SECOND_BIND_RESPONSE.get( |
| | | LocalizableMessage message = ERR_LDAPAUTH_CANNOT_READ_SECOND_BIND_RESPONSE.get( |
| | | SASL_MECHANISM_DIGEST_MD5, getExceptionMessage(e)); |
| | | throw new ClientException( |
| | | LDAPResultCode.CLIENT_SIDE_LOCAL_ERROR, message, e); |
| | |
| | | if ((responseOID != null) && |
| | | responseOID.equals(OID_NOTICE_OF_DISCONNECTION)) |
| | | { |
| | | Message message = ERR_LDAPAUTH_SERVER_DISCONNECT. |
| | | LocalizableMessage message = ERR_LDAPAUTH_SERVER_DISCONNECT. |
| | | get(extendedResponse.getResultCode(), |
| | | extendedResponse.getErrorMessage()); |
| | | throw new LDAPException(extendedResponse.getResultCode(), message); |
| | | } |
| | | else |
| | | { |
| | | Message message = ERR_LDAPAUTH_UNEXPECTED_EXTENDED_RESPONSE.get( |
| | | LocalizableMessage message = ERR_LDAPAUTH_UNEXPECTED_EXTENDED_RESPONSE.get( |
| | | String.valueOf(extendedResponse)); |
| | | throw new ClientException(LDAPResultCode.CLIENT_SIDE_LOCAL_ERROR, |
| | | message); |
| | | } |
| | | |
| | | default: |
| | | Message message = ERR_LDAPAUTH_UNEXPECTED_RESPONSE.get( |
| | | LocalizableMessage message = ERR_LDAPAUTH_UNEXPECTED_RESPONSE.get( |
| | | String.valueOf(responseMessage2.getProtocolOp())); |
| | | throw new ClientException( |
| | | LDAPResultCode.CLIENT_SIDE_LOCAL_ERROR, message); |
| | |
| | | { |
| | | // FIXME -- Add support for referrals. |
| | | |
| | | Message message = |
| | | LocalizableMessage message = |
| | | ERR_LDAPAUTH_SASL_BIND_FAILED.get(SASL_MECHANISM_DIGEST_MD5); |
| | | throw new LDAPException(resultCode2, bindResponse2.getErrorMessage(), |
| | | message, bindResponse2.getMatchedDN(), |
| | |
| | | ByteString rspAuthCreds = bindResponse2.getServerSASLCredentials(); |
| | | if (rspAuthCreds == null) |
| | | { |
| | | Message message = ERR_LDAPAUTH_DIGESTMD5_NO_RSPAUTH_CREDS.get(); |
| | | LocalizableMessage message = ERR_LDAPAUTH_DIGESTMD5_NO_RSPAUTH_CREDS.get(); |
| | | throw new LDAPException(LDAPResultCode.PROTOCOL_ERROR, message); |
| | | } |
| | | |
| | | String credStr = toLowerCase(rspAuthCreds.toString()); |
| | | if (! credStr.startsWith("rspauth=")) |
| | | { |
| | | Message message = ERR_LDAPAUTH_DIGESTMD5_NO_RSPAUTH_CREDS.get(); |
| | | LocalizableMessage message = ERR_LDAPAUTH_DIGESTMD5_NO_RSPAUTH_CREDS.get(); |
| | | throw new LDAPException(LDAPResultCode.PROTOCOL_ERROR, message); |
| | | } |
| | | |
| | |
| | | } |
| | | catch (Exception e) |
| | | { |
| | | Message message = ERR_LDAPAUTH_DIGESTMD5_COULD_NOT_DECODE_RSPAUTH.get( |
| | | LocalizableMessage message = ERR_LDAPAUTH_DIGESTMD5_COULD_NOT_DECODE_RSPAUTH.get( |
| | | getExceptionMessage(e)); |
| | | throw new LDAPException(LDAPResultCode.PROTOCOL_ERROR, message); |
| | | } |
| | |
| | | } |
| | | catch (Exception e) |
| | | { |
| | | Message message = ERR_LDAPAUTH_DIGESTMD5_COULD_NOT_CALCULATE_RSPAUTH.get( |
| | | LocalizableMessage message = ERR_LDAPAUTH_DIGESTMD5_COULD_NOT_CALCULATE_RSPAUTH.get( |
| | | getExceptionMessage(e)); |
| | | throw new ClientException( |
| | | LDAPResultCode.CLIENT_SIDE_LOCAL_ERROR, message); |
| | |
| | | |
| | | if (! Arrays.equals(serverRspAuth, clientRspAuth)) |
| | | { |
| | | Message message = ERR_LDAPAUTH_DIGESTMD5_RSPAUTH_MISMATCH.get(); |
| | | LocalizableMessage message = ERR_LDAPAUTH_DIGESTMD5_RSPAUTH_MISMATCH.get(); |
| | | throw new ClientException( |
| | | LDAPResultCode.CLIENT_SIDE_LOCAL_ERROR, message); |
| | | } |
| | |
| | | { |
| | | // We found the closing quote before the end of the token. This |
| | | // is not fine. |
| | | Message message = |
| | | LocalizableMessage message = |
| | | ERR_LDAPAUTH_DIGESTMD5_INVALID_CLOSING_QUOTE_POS.get((pos-2)); |
| | | throw new LDAPException(LDAPResultCode.INVALID_CREDENTIALS, |
| | | message); |
| | |
| | | } |
| | | catch (Exception e) |
| | | { |
| | | Message message = ERR_LDAPAUTH_CANNOT_INITIALIZE_MD5_DIGEST.get( |
| | | LocalizableMessage message = ERR_LDAPAUTH_CANNOT_INITIALIZE_MD5_DIGEST.get( |
| | | getExceptionMessage(e)); |
| | | throw new ClientException(LDAPResultCode.CLIENT_SIDE_LOCAL_ERROR, |
| | | message, e); |
| | |
| | | * SASL DIGEST-MD5 bind, mapped from the property names to their |
| | | * corresponding descriptions. |
| | | */ |
| | | public static LinkedHashMap<String,Message> getSASLDigestMD5Properties() |
| | | public static LinkedHashMap<String,LocalizableMessage> getSASLDigestMD5Properties() |
| | | { |
| | | LinkedHashMap<String,Message> properties = |
| | | new LinkedHashMap<String,Message>(5); |
| | | LinkedHashMap<String,LocalizableMessage> properties = |
| | | new LinkedHashMap<String,LocalizableMessage>(5); |
| | | |
| | | properties.put(SASL_PROPERTY_AUTHID, |
| | | INFO_LDAPAUTH_PROPERTY_DESCRIPTION_AUTHID.get()); |
| | |
| | | // Make sure that no SASL properties were provided. |
| | | if ((saslProperties != null) && (! saslProperties.isEmpty())) |
| | | { |
| | | Message message = |
| | | LocalizableMessage message = |
| | | ERR_LDAPAUTH_NO_ALLOWED_SASL_PROPERTIES.get(SASL_MECHANISM_EXTERNAL); |
| | | throw new ClientException( |
| | | LDAPResultCode.CLIENT_SIDE_PARAM_ERROR, message); |
| | |
| | | } |
| | | catch (IOException ioe) |
| | | { |
| | | Message message = ERR_LDAPAUTH_CANNOT_SEND_SASL_BIND.get( |
| | | LocalizableMessage message = ERR_LDAPAUTH_CANNOT_SEND_SASL_BIND.get( |
| | | SASL_MECHANISM_EXTERNAL, getExceptionMessage(ioe)); |
| | | throw new ClientException( |
| | | LDAPResultCode.CLIENT_SIDE_SERVER_DOWN, message, ioe); |
| | | } |
| | | catch (Exception e) |
| | | { |
| | | Message message = ERR_LDAPAUTH_CANNOT_SEND_SASL_BIND.get( |
| | | LocalizableMessage message = ERR_LDAPAUTH_CANNOT_SEND_SASL_BIND.get( |
| | | SASL_MECHANISM_EXTERNAL, getExceptionMessage(e)); |
| | | throw new ClientException(LDAPResultCode.CLIENT_SIDE_ENCODING_ERROR, |
| | | message, e); |
| | |
| | | responseMessage = reader.readMessage(); |
| | | if (responseMessage == null) |
| | | { |
| | | Message message = |
| | | LocalizableMessage message = |
| | | ERR_LDAPAUTH_CONNECTION_CLOSED_WITHOUT_BIND_RESPONSE.get(); |
| | | throw new ClientException(LDAPResultCode.CLIENT_SIDE_SERVER_DOWN, |
| | | message); |
| | |
| | | } |
| | | catch (IOException ioe) |
| | | { |
| | | Message message = |
| | | LocalizableMessage message = |
| | | ERR_LDAPAUTH_CANNOT_READ_BIND_RESPONSE.get(getExceptionMessage(ioe)); |
| | | throw new ClientException( |
| | | LDAPResultCode.CLIENT_SIDE_SERVER_DOWN, message, ioe); |
| | | } |
| | | catch (ASN1Exception ae) |
| | | { |
| | | Message message = |
| | | LocalizableMessage message = |
| | | ERR_LDAPAUTH_CANNOT_READ_BIND_RESPONSE.get(getExceptionMessage(ae)); |
| | | throw new ClientException(LDAPResultCode.CLIENT_SIDE_DECODING_ERROR, |
| | | message, ae); |
| | | } |
| | | catch (LDAPException le) |
| | | { |
| | | Message message = |
| | | LocalizableMessage message = |
| | | ERR_LDAPAUTH_CANNOT_READ_BIND_RESPONSE.get(getExceptionMessage(le)); |
| | | throw new ClientException(LDAPResultCode.CLIENT_SIDE_DECODING_ERROR, |
| | | message, le); |
| | | } |
| | | catch (Exception e) |
| | | { |
| | | Message message = |
| | | LocalizableMessage message = |
| | | ERR_LDAPAUTH_CANNOT_READ_BIND_RESPONSE.get(getExceptionMessage(e)); |
| | | throw new ClientException( |
| | | LDAPResultCode.CLIENT_SIDE_LOCAL_ERROR, message, e); |
| | |
| | | if ((responseOID != null) && |
| | | responseOID.equals(OID_NOTICE_OF_DISCONNECTION)) |
| | | { |
| | | Message message = ERR_LDAPAUTH_SERVER_DISCONNECT. |
| | | LocalizableMessage message = ERR_LDAPAUTH_SERVER_DISCONNECT. |
| | | get(extendedResponse.getResultCode(), |
| | | extendedResponse.getErrorMessage()); |
| | | throw new LDAPException(extendedResponse.getResultCode(), message); |
| | | } |
| | | else |
| | | { |
| | | Message message = ERR_LDAPAUTH_UNEXPECTED_EXTENDED_RESPONSE.get( |
| | | LocalizableMessage message = ERR_LDAPAUTH_UNEXPECTED_EXTENDED_RESPONSE.get( |
| | | String.valueOf(extendedResponse)); |
| | | throw new ClientException(LDAPResultCode.CLIENT_SIDE_LOCAL_ERROR, |
| | | message); |
| | | } |
| | | |
| | | default: |
| | | Message message = ERR_LDAPAUTH_UNEXPECTED_RESPONSE.get( |
| | | LocalizableMessage message = ERR_LDAPAUTH_UNEXPECTED_RESPONSE.get( |
| | | String.valueOf(responseMessage.getProtocolOp())); |
| | | throw new ClientException( |
| | | LDAPResultCode.CLIENT_SIDE_LOCAL_ERROR, message); |
| | |
| | | |
| | | // FIXME -- Add support for referrals. |
| | | |
| | | Message message = |
| | | LocalizableMessage message = |
| | | ERR_LDAPAUTH_SASL_BIND_FAILED.get(SASL_MECHANISM_EXTERNAL); |
| | | throw new LDAPException(resultCode, bindResponse.getErrorMessage(), |
| | | message, bindResponse.getMatchedDN(), null); |
| | |
| | | * SASL EXTERNAL bind, mapped from the property names to their |
| | | * corresponding descriptions. |
| | | */ |
| | | public static LinkedHashMap<String,Message> getSASLExternalProperties() |
| | | public static LinkedHashMap<String,LocalizableMessage> getSASLExternalProperties() |
| | | { |
| | | // There are no properties for the SASL EXTERNAL mechanism. |
| | | return new LinkedHashMap<String,Message>(0); |
| | | return new LinkedHashMap<String,LocalizableMessage>(0); |
| | | } |
| | | |
| | | |
| | |
| | | // KDC, QoP, and realm are optional. |
| | | if ((saslProperties == null) || saslProperties.isEmpty()) |
| | | { |
| | | Message message = |
| | | LocalizableMessage message = |
| | | ERR_LDAPAUTH_NO_SASL_PROPERTIES.get(SASL_MECHANISM_GSSAPI); |
| | | throw new ClientException( |
| | | LDAPResultCode.CLIENT_SIDE_PARAM_ERROR, message); |
| | |
| | | |
| | | if (iterator.hasNext()) |
| | | { |
| | | Message message = ERR_LDAPAUTH_AUTHID_SINGLE_VALUED.get(); |
| | | LocalizableMessage message = ERR_LDAPAUTH_AUTHID_SINGLE_VALUED.get(); |
| | | throw new ClientException(LDAPResultCode.CLIENT_SIDE_PARAM_ERROR, |
| | | message); |
| | | } |
| | |
| | | |
| | | if (iterator.hasNext()) |
| | | { |
| | | Message message = ERR_LDAPAUTH_AUTHZID_SINGLE_VALUED.get(); |
| | | LocalizableMessage message = ERR_LDAPAUTH_AUTHZID_SINGLE_VALUED.get(); |
| | | throw new ClientException(LDAPResultCode.CLIENT_SIDE_PARAM_ERROR, |
| | | message); |
| | | } |
| | |
| | | |
| | | if (iterator.hasNext()) |
| | | { |
| | | Message message = ERR_LDAPAUTH_KDC_SINGLE_VALUED.get(); |
| | | LocalizableMessage message = ERR_LDAPAUTH_KDC_SINGLE_VALUED.get(); |
| | | throw new ClientException(LDAPResultCode.CLIENT_SIDE_PARAM_ERROR, |
| | | message); |
| | | } |
| | |
| | | |
| | | if (iterator.hasNext()) |
| | | { |
| | | Message message = ERR_LDAPAUTH_QOP_SINGLE_VALUED.get(); |
| | | LocalizableMessage message = ERR_LDAPAUTH_QOP_SINGLE_VALUED.get(); |
| | | throw new ClientException(LDAPResultCode.CLIENT_SIDE_PARAM_ERROR, |
| | | message); |
| | | } |
| | |
| | | gssapiQoP.equals("auth-conf")) |
| | | { |
| | | // FIXME -- Add support for integrity and confidentiality. |
| | | Message message = |
| | | LocalizableMessage message = |
| | | ERR_LDAPAUTH_DIGESTMD5_QOP_NOT_SUPPORTED.get(gssapiQoP); |
| | | throw new ClientException(LDAPResultCode.CLIENT_SIDE_PARAM_ERROR, |
| | | message); |
| | |
| | | else |
| | | { |
| | | // This is an illegal value. |
| | | Message message = ERR_LDAPAUTH_GSSAPI_INVALID_QOP.get(gssapiQoP); |
| | | LocalizableMessage message = ERR_LDAPAUTH_GSSAPI_INVALID_QOP.get(gssapiQoP); |
| | | throw new ClientException(LDAPResultCode.CLIENT_SIDE_PARAM_ERROR, |
| | | message); |
| | | } |
| | |
| | | |
| | | if (iterator.hasNext()) |
| | | { |
| | | Message message = ERR_LDAPAUTH_REALM_SINGLE_VALUED.get(); |
| | | LocalizableMessage message = ERR_LDAPAUTH_REALM_SINGLE_VALUED.get(); |
| | | throw new ClientException(LDAPResultCode.CLIENT_SIDE_PARAM_ERROR, |
| | | message); |
| | | } |
| | |
| | | } |
| | | else |
| | | { |
| | | Message message = |
| | | LocalizableMessage message = |
| | | ERR_LDAPAUTH_INVALID_SASL_PROPERTY.get(name, SASL_MECHANISM_GSSAPI); |
| | | throw new ClientException( |
| | | LDAPResultCode.CLIENT_SIDE_PARAM_ERROR, message); |
| | |
| | | // Make sure that the authID was provided. |
| | | if ((gssapiAuthID == null) || (gssapiAuthID.length() == 0)) |
| | | { |
| | | Message message = |
| | | LocalizableMessage message = |
| | | ERR_LDAPAUTH_SASL_AUTHID_REQUIRED.get(SASL_MECHANISM_GSSAPI); |
| | | throw new ClientException( |
| | | LDAPResultCode.CLIENT_SIDE_PARAM_ERROR, message); |
| | |
| | | } |
| | | catch (Exception e) |
| | | { |
| | | Message message = ERR_LDAPAUTH_GSSAPI_CANNOT_CREATE_JAAS_CONFIG.get( |
| | | LocalizableMessage message = ERR_LDAPAUTH_GSSAPI_CANNOT_CREATE_JAAS_CONFIG.get( |
| | | getExceptionMessage(e)); |
| | | throw new ClientException( |
| | | LDAPResultCode.CLIENT_SIDE_LOCAL_ERROR, message, e); |
| | |
| | | } |
| | | catch (Exception e) |
| | | { |
| | | Message message = ERR_LDAPAUTH_GSSAPI_LOCAL_AUTHENTICATION_FAILED.get( |
| | | LocalizableMessage message = ERR_LDAPAUTH_GSSAPI_LOCAL_AUTHENTICATION_FAILED.get( |
| | | getExceptionMessage(e)); |
| | | throw new ClientException( |
| | | LDAPResultCode.CLIENT_SIDE_LOCAL_ERROR, message, e); |
| | |
| | | throw (LDAPException) e; |
| | | } |
| | | |
| | | Message message = ERR_LDAPAUTH_GSSAPI_REMOTE_AUTHENTICATION_FAILED.get( |
| | | LocalizableMessage message = ERR_LDAPAUTH_GSSAPI_REMOTE_AUTHENTICATION_FAILED.get( |
| | | getExceptionMessage(e)); |
| | | throw new ClientException( |
| | | LDAPResultCode.CLIENT_SIDE_LOCAL_ERROR, message, e); |
| | |
| | | * SASL EXTERNAL bind, mapped from the property names to their |
| | | * corresponding descriptions. |
| | | */ |
| | | public static LinkedHashMap<String,Message> getSASLGSSAPIProperties() |
| | | public static LinkedHashMap<String,LocalizableMessage> getSASLGSSAPIProperties() |
| | | { |
| | | LinkedHashMap<String,Message> properties = |
| | | new LinkedHashMap<String,Message>(4); |
| | | LinkedHashMap<String,LocalizableMessage> properties = |
| | | new LinkedHashMap<String,LocalizableMessage>(4); |
| | | |
| | | properties.put(SASL_PROPERTY_AUTHID, |
| | | INFO_LDAPAUTH_PROPERTY_DESCRIPTION_AUTHID.get()); |
| | |
| | | // optional. |
| | | if ((saslProperties == null) || saslProperties.isEmpty()) |
| | | { |
| | | Message message = |
| | | LocalizableMessage message = |
| | | ERR_LDAPAUTH_NO_SASL_PROPERTIES.get(SASL_MECHANISM_PLAIN); |
| | | throw new ClientException( |
| | | LDAPResultCode.CLIENT_SIDE_PARAM_ERROR, message); |
| | |
| | | |
| | | if (iterator.hasNext()) |
| | | { |
| | | Message message = ERR_LDAPAUTH_AUTHID_SINGLE_VALUED.get(); |
| | | LocalizableMessage message = ERR_LDAPAUTH_AUTHID_SINGLE_VALUED.get(); |
| | | throw new ClientException(LDAPResultCode.CLIENT_SIDE_PARAM_ERROR, |
| | | message); |
| | | } |
| | |
| | | |
| | | if (iterator.hasNext()) |
| | | { |
| | | Message message = ERR_LDAPAUTH_AUTHZID_SINGLE_VALUED.get(); |
| | | LocalizableMessage message = ERR_LDAPAUTH_AUTHZID_SINGLE_VALUED.get(); |
| | | throw new ClientException(LDAPResultCode.CLIENT_SIDE_PARAM_ERROR, |
| | | message); |
| | | } |
| | |
| | | } |
| | | else |
| | | { |
| | | Message message = |
| | | LocalizableMessage message = |
| | | ERR_LDAPAUTH_INVALID_SASL_PROPERTY.get(name, SASL_MECHANISM_PLAIN); |
| | | throw new ClientException( |
| | | LDAPResultCode.CLIENT_SIDE_PARAM_ERROR, message); |
| | |
| | | // Make sure that at least the authID was provided. |
| | | if ((authID == null) || (authID.length() == 0)) |
| | | { |
| | | Message message = |
| | | LocalizableMessage message = |
| | | ERR_LDAPAUTH_SASL_AUTHID_REQUIRED.get(SASL_MECHANISM_PLAIN); |
| | | throw new ClientException( |
| | | LDAPResultCode.CLIENT_SIDE_PARAM_ERROR, message); |
| | |
| | | } |
| | | catch (IOException ioe) |
| | | { |
| | | Message message = ERR_LDAPAUTH_CANNOT_SEND_SASL_BIND.get( |
| | | LocalizableMessage message = ERR_LDAPAUTH_CANNOT_SEND_SASL_BIND.get( |
| | | SASL_MECHANISM_PLAIN, getExceptionMessage(ioe)); |
| | | throw new ClientException( |
| | | LDAPResultCode.CLIENT_SIDE_SERVER_DOWN, message, ioe); |
| | | } |
| | | catch (Exception e) |
| | | { |
| | | Message message = ERR_LDAPAUTH_CANNOT_SEND_SASL_BIND.get( |
| | | LocalizableMessage message = ERR_LDAPAUTH_CANNOT_SEND_SASL_BIND.get( |
| | | SASL_MECHANISM_PLAIN, getExceptionMessage(e)); |
| | | throw new ClientException(LDAPResultCode.CLIENT_SIDE_ENCODING_ERROR, |
| | | message, e); |
| | |
| | | responseMessage = reader.readMessage(); |
| | | if (responseMessage == null) |
| | | { |
| | | Message message = |
| | | LocalizableMessage message = |
| | | ERR_LDAPAUTH_CONNECTION_CLOSED_WITHOUT_BIND_RESPONSE.get(); |
| | | throw new ClientException(LDAPResultCode.CLIENT_SIDE_SERVER_DOWN, |
| | | message); |
| | |
| | | } |
| | | catch (IOException ioe) |
| | | { |
| | | Message message = |
| | | LocalizableMessage message = |
| | | ERR_LDAPAUTH_CANNOT_READ_BIND_RESPONSE.get(getExceptionMessage(ioe)); |
| | | throw new ClientException( |
| | | LDAPResultCode.CLIENT_SIDE_SERVER_DOWN, message, ioe); |
| | | } |
| | | catch (ASN1Exception ae) |
| | | { |
| | | Message message = |
| | | LocalizableMessage message = |
| | | ERR_LDAPAUTH_CANNOT_READ_BIND_RESPONSE.get(getExceptionMessage(ae)); |
| | | throw new ClientException(LDAPResultCode.CLIENT_SIDE_DECODING_ERROR, |
| | | message, ae); |
| | | } |
| | | catch (LDAPException le) |
| | | { |
| | | Message message = |
| | | LocalizableMessage message = |
| | | ERR_LDAPAUTH_CANNOT_READ_BIND_RESPONSE.get(getExceptionMessage(le)); |
| | | throw new ClientException(LDAPResultCode.CLIENT_SIDE_DECODING_ERROR, |
| | | message, le); |
| | | } |
| | | catch (Exception e) |
| | | { |
| | | Message message = |
| | | LocalizableMessage message = |
| | | ERR_LDAPAUTH_CANNOT_READ_BIND_RESPONSE.get(getExceptionMessage(e)); |
| | | throw new ClientException( |
| | | LDAPResultCode.CLIENT_SIDE_LOCAL_ERROR, message, e); |
| | |
| | | if ((responseOID != null) && |
| | | responseOID.equals(OID_NOTICE_OF_DISCONNECTION)) |
| | | { |
| | | Message message = ERR_LDAPAUTH_SERVER_DISCONNECT. |
| | | LocalizableMessage message = ERR_LDAPAUTH_SERVER_DISCONNECT. |
| | | get(extendedResponse.getResultCode(), |
| | | extendedResponse.getErrorMessage()); |
| | | throw new LDAPException(extendedResponse.getResultCode(), message); |
| | | } |
| | | else |
| | | { |
| | | Message message = ERR_LDAPAUTH_UNEXPECTED_EXTENDED_RESPONSE.get( |
| | | LocalizableMessage message = ERR_LDAPAUTH_UNEXPECTED_EXTENDED_RESPONSE.get( |
| | | String.valueOf(extendedResponse)); |
| | | throw new ClientException(LDAPResultCode.CLIENT_SIDE_LOCAL_ERROR, |
| | | message); |
| | | } |
| | | |
| | | default: |
| | | Message message = ERR_LDAPAUTH_UNEXPECTED_RESPONSE.get( |
| | | LocalizableMessage message = ERR_LDAPAUTH_UNEXPECTED_RESPONSE.get( |
| | | String.valueOf(responseMessage.getProtocolOp())); |
| | | throw new ClientException( |
| | | LDAPResultCode.CLIENT_SIDE_LOCAL_ERROR, message); |
| | |
| | | |
| | | // FIXME -- Add support for referrals. |
| | | |
| | | Message message = ERR_LDAPAUTH_SASL_BIND_FAILED.get(SASL_MECHANISM_PLAIN); |
| | | LocalizableMessage message = ERR_LDAPAUTH_SASL_BIND_FAILED.get(SASL_MECHANISM_PLAIN); |
| | | throw new LDAPException(resultCode, bindResponse.getErrorMessage(), |
| | | message, bindResponse.getMatchedDN(), null); |
| | | } |
| | |
| | | * SASL PLAIN bind, mapped from the property names to their |
| | | * corresponding descriptions. |
| | | */ |
| | | public static LinkedHashMap<String,Message> getSASLPlainProperties() |
| | | public static LinkedHashMap<String,LocalizableMessage> getSASLPlainProperties() |
| | | { |
| | | LinkedHashMap<String,Message> properties = |
| | | new LinkedHashMap<String,Message>(2); |
| | | LinkedHashMap<String,LocalizableMessage> properties = |
| | | new LinkedHashMap<String,LocalizableMessage>(2); |
| | | |
| | | properties.put(SASL_PROPERTY_AUTHID, |
| | | INFO_LDAPAUTH_PROPERTY_DESCRIPTION_AUTHID.get()); |
| | |
| | | { |
| | | if (saslMechanism == null) |
| | | { |
| | | Message message = ERR_LDAPAUTH_NONSASL_RUN_INVOCATION.get(getBacktrace()); |
| | | LocalizableMessage message = ERR_LDAPAUTH_NONSASL_RUN_INVOCATION.get(getBacktrace()); |
| | | throw new ClientException( |
| | | LDAPResultCode.CLIENT_SIDE_LOCAL_ERROR, message); |
| | | } |
| | |
| | | } |
| | | catch (Exception e) |
| | | { |
| | | Message message = ERR_LDAPAUTH_GSSAPI_CANNOT_CREATE_SASL_CLIENT.get( |
| | | LocalizableMessage message = ERR_LDAPAUTH_GSSAPI_CANNOT_CREATE_SASL_CLIENT.get( |
| | | getExceptionMessage(e)); |
| | | throw new ClientException( |
| | | LDAPResultCode.CLIENT_SIDE_LOCAL_ERROR, message, e); |
| | |
| | | } |
| | | catch (Exception e) |
| | | { |
| | | Message message = ERR_LDAPAUTH_GSSAPI_CANNOT_CREATE_INITIAL_CHALLENGE. |
| | | LocalizableMessage message = ERR_LDAPAUTH_GSSAPI_CANNOT_CREATE_INITIAL_CHALLENGE. |
| | | get(getExceptionMessage(e)); |
| | | throw new ClientException( |
| | | LDAPResultCode.CLIENT_SIDE_LOCAL_ERROR, |
| | |
| | | } |
| | | catch (IOException ioe) |
| | | { |
| | | Message message = ERR_LDAPAUTH_CANNOT_SEND_SASL_BIND.get( |
| | | LocalizableMessage message = ERR_LDAPAUTH_CANNOT_SEND_SASL_BIND.get( |
| | | SASL_MECHANISM_GSSAPI, getExceptionMessage(ioe)); |
| | | throw new ClientException( |
| | | LDAPResultCode.CLIENT_SIDE_SERVER_DOWN, message, ioe); |
| | | } |
| | | catch (Exception e) |
| | | { |
| | | Message message = ERR_LDAPAUTH_CANNOT_SEND_SASL_BIND.get( |
| | | LocalizableMessage message = ERR_LDAPAUTH_CANNOT_SEND_SASL_BIND.get( |
| | | SASL_MECHANISM_GSSAPI, getExceptionMessage(e)); |
| | | throw new ClientException(LDAPResultCode.CLIENT_SIDE_ENCODING_ERROR, |
| | | message, e); |
| | |
| | | responseMessage = reader.readMessage(); |
| | | if (responseMessage == null) |
| | | { |
| | | Message message = |
| | | LocalizableMessage message = |
| | | ERR_LDAPAUTH_CONNECTION_CLOSED_WITHOUT_BIND_RESPONSE.get(); |
| | | throw new ClientException(LDAPResultCode.CLIENT_SIDE_SERVER_DOWN, |
| | | message); |
| | |
| | | } |
| | | catch (IOException ioe) |
| | | { |
| | | Message message = ERR_LDAPAUTH_CANNOT_READ_BIND_RESPONSE.get( |
| | | LocalizableMessage message = ERR_LDAPAUTH_CANNOT_READ_BIND_RESPONSE.get( |
| | | getExceptionMessage(ioe)); |
| | | throw new ClientException( |
| | | LDAPResultCode.CLIENT_SIDE_SERVER_DOWN, message, ioe); |
| | | } |
| | | catch (ASN1Exception ae) |
| | | { |
| | | Message message = |
| | | LocalizableMessage message = |
| | | ERR_LDAPAUTH_CANNOT_READ_BIND_RESPONSE.get(getExceptionMessage(ae)); |
| | | throw new ClientException(LDAPResultCode.CLIENT_SIDE_DECODING_ERROR, |
| | | message, ae); |
| | | } |
| | | catch (LDAPException le) |
| | | { |
| | | Message message = |
| | | LocalizableMessage message = |
| | | ERR_LDAPAUTH_CANNOT_READ_BIND_RESPONSE.get(getExceptionMessage(le)); |
| | | throw new ClientException(LDAPResultCode.CLIENT_SIDE_DECODING_ERROR, |
| | | message, le); |
| | | } |
| | | catch (Exception e) |
| | | { |
| | | Message message = |
| | | LocalizableMessage message = |
| | | ERR_LDAPAUTH_CANNOT_READ_BIND_RESPONSE.get(getExceptionMessage(e)); |
| | | throw new ClientException( |
| | | LDAPResultCode.CLIENT_SIDE_LOCAL_ERROR, message, e); |
| | |
| | | if ((responseOID != null) && |
| | | responseOID.equals(OID_NOTICE_OF_DISCONNECTION)) |
| | | { |
| | | Message message = ERR_LDAPAUTH_SERVER_DISCONNECT. |
| | | LocalizableMessage message = ERR_LDAPAUTH_SERVER_DISCONNECT. |
| | | get(extendedResponse.getResultCode(), |
| | | extendedResponse.getErrorMessage()); |
| | | throw new LDAPException(extendedResponse.getResultCode(), message); |
| | | } |
| | | else |
| | | { |
| | | Message message = ERR_LDAPAUTH_UNEXPECTED_EXTENDED_RESPONSE.get( |
| | | LocalizableMessage message = ERR_LDAPAUTH_UNEXPECTED_EXTENDED_RESPONSE.get( |
| | | String.valueOf(extendedResponse)); |
| | | throw new ClientException(LDAPResultCode.CLIENT_SIDE_LOCAL_ERROR, |
| | | message); |
| | | } |
| | | |
| | | default: |
| | | Message message = ERR_LDAPAUTH_UNEXPECTED_RESPONSE.get( |
| | | LocalizableMessage message = ERR_LDAPAUTH_UNEXPECTED_RESPONSE.get( |
| | | String.valueOf(responseMessage.getProtocolOp())); |
| | | throw new ClientException(LDAPResultCode.CLIENT_SIDE_LOCAL_ERROR, |
| | | message); |
| | |
| | | } |
| | | catch (Exception e) |
| | | { |
| | | Message message = |
| | | LocalizableMessage message = |
| | | ERR_LDAPAUTH_GSSAPI_CANNOT_VALIDATE_SERVER_CREDS. |
| | | get(getExceptionMessage(e)); |
| | | throw new ClientException(LDAPResultCode.CLIENT_SIDE_LOCAL_ERROR, |
| | |
| | | // Just to be sure, check that the login really is complete. |
| | | if (! saslClient.isComplete()) |
| | | { |
| | | Message message = |
| | | LocalizableMessage message = |
| | | ERR_LDAPAUTH_GSSAPI_UNEXPECTED_SUCCESS_RESPONSE.get(); |
| | | throw new ClientException(LDAPResultCode.CLIENT_SIDE_LOCAL_ERROR, |
| | | message); |
| | |
| | | } |
| | | catch (Exception e) |
| | | { |
| | | Message message = ERR_LDAPAUTH_GSSAPI_CANNOT_VALIDATE_SERVER_CREDS. |
| | | LocalizableMessage message = ERR_LDAPAUTH_GSSAPI_CANNOT_VALIDATE_SERVER_CREDS. |
| | | get(getExceptionMessage(e)); |
| | | throw new ClientException(LDAPResultCode.CLIENT_SIDE_LOCAL_ERROR, |
| | | message, e); |
| | |
| | | } |
| | | catch (IOException ioe) |
| | | { |
| | | Message message = ERR_LDAPAUTH_CANNOT_SEND_SASL_BIND.get( |
| | | LocalizableMessage message = ERR_LDAPAUTH_CANNOT_SEND_SASL_BIND.get( |
| | | SASL_MECHANISM_GSSAPI, getExceptionMessage(ioe)); |
| | | throw new ClientException(LDAPResultCode.CLIENT_SIDE_SERVER_DOWN, |
| | | message, ioe); |
| | | } |
| | | catch (Exception e) |
| | | { |
| | | Message message = ERR_LDAPAUTH_CANNOT_SEND_SASL_BIND.get( |
| | | LocalizableMessage message = ERR_LDAPAUTH_CANNOT_SEND_SASL_BIND.get( |
| | | SASL_MECHANISM_GSSAPI, getExceptionMessage(e)); |
| | | throw new ClientException(LDAPResultCode.CLIENT_SIDE_ENCODING_ERROR, |
| | | message, e); |
| | |
| | | responseMessage = reader.readMessage(); |
| | | if (responseMessage == null) |
| | | { |
| | | Message message = |
| | | LocalizableMessage message = |
| | | ERR_LDAPAUTH_CONNECTION_CLOSED_WITHOUT_BIND_RESPONSE.get(); |
| | | throw new ClientException(LDAPResultCode.CLIENT_SIDE_SERVER_DOWN, |
| | | message); |
| | |
| | | } |
| | | catch (IOException ioe) |
| | | { |
| | | Message message = ERR_LDAPAUTH_CANNOT_READ_BIND_RESPONSE.get( |
| | | LocalizableMessage message = ERR_LDAPAUTH_CANNOT_READ_BIND_RESPONSE.get( |
| | | getExceptionMessage(ioe)); |
| | | throw new ClientException(LDAPResultCode.CLIENT_SIDE_SERVER_DOWN, |
| | | message, ioe); |
| | | } |
| | | catch (ASN1Exception ae) |
| | | { |
| | | Message message = ERR_LDAPAUTH_CANNOT_READ_BIND_RESPONSE.get( |
| | | LocalizableMessage message = ERR_LDAPAUTH_CANNOT_READ_BIND_RESPONSE.get( |
| | | getExceptionMessage(ae)); |
| | | throw new ClientException(LDAPResultCode.CLIENT_SIDE_DECODING_ERROR, |
| | | message, ae); |
| | | } |
| | | catch (LDAPException le) |
| | | { |
| | | Message message = ERR_LDAPAUTH_CANNOT_READ_BIND_RESPONSE.get( |
| | | LocalizableMessage message = ERR_LDAPAUTH_CANNOT_READ_BIND_RESPONSE.get( |
| | | getExceptionMessage(le)); |
| | | throw new ClientException(LDAPResultCode.CLIENT_SIDE_DECODING_ERROR, |
| | | message, le); |
| | | } |
| | | catch (Exception e) |
| | | { |
| | | Message message = ERR_LDAPAUTH_CANNOT_READ_BIND_RESPONSE.get( |
| | | LocalizableMessage message = ERR_LDAPAUTH_CANNOT_READ_BIND_RESPONSE.get( |
| | | getExceptionMessage(e)); |
| | | throw new ClientException(LDAPResultCode.CLIENT_SIDE_LOCAL_ERROR, |
| | | message, e); |
| | |
| | | if ((responseOID != null) && |
| | | responseOID.equals(OID_NOTICE_OF_DISCONNECTION)) |
| | | { |
| | | Message message = ERR_LDAPAUTH_SERVER_DISCONNECT. |
| | | LocalizableMessage message = ERR_LDAPAUTH_SERVER_DISCONNECT. |
| | | get(extendedResponse.getResultCode(), |
| | | extendedResponse.getErrorMessage()); |
| | | throw new LDAPException(extendedResponse.getResultCode(), |
| | |
| | | } |
| | | else |
| | | { |
| | | Message message = ERR_LDAPAUTH_UNEXPECTED_EXTENDED_RESPONSE.get( |
| | | LocalizableMessage message = ERR_LDAPAUTH_UNEXPECTED_EXTENDED_RESPONSE.get( |
| | | String.valueOf(extendedResponse)); |
| | | throw new ClientException( |
| | | LDAPResultCode.CLIENT_SIDE_LOCAL_ERROR, message); |
| | | } |
| | | |
| | | default: |
| | | Message message = ERR_LDAPAUTH_UNEXPECTED_RESPONSE.get( |
| | | LocalizableMessage message = ERR_LDAPAUTH_UNEXPECTED_RESPONSE.get( |
| | | String.valueOf(responseMessage.getProtocolOp())); |
| | | throw new ClientException(LDAPResultCode.CLIENT_SIDE_LOCAL_ERROR, |
| | | message); |
| | |
| | | else |
| | | { |
| | | // This is an error. |
| | | Message message = ERR_LDAPAUTH_GSSAPI_BIND_FAILED.get(); |
| | | LocalizableMessage message = ERR_LDAPAUTH_GSSAPI_BIND_FAILED.get(); |
| | | throw new LDAPException(resultCode, bindResponse.getErrorMessage(), |
| | | message, bindResponse.getMatchedDN(), |
| | | null); |
| | |
| | | } |
| | | else |
| | | { |
| | | Message message = ERR_LDAPAUTH_UNEXPECTED_RUN_INVOCATION.get( |
| | | LocalizableMessage message = ERR_LDAPAUTH_UNEXPECTED_RUN_INVOCATION.get( |
| | | saslMechanism, getBacktrace()); |
| | | throw new ClientException( |
| | | LDAPResultCode.CLIENT_SIDE_LOCAL_ERROR, message); |
| | |
| | | { |
| | | if (saslMechanism == null) |
| | | { |
| | | Message message = |
| | | LocalizableMessage message = |
| | | ERR_LDAPAUTH_NONSASL_CALLBACK_INVOCATION.get(getBacktrace()); |
| | | throw new UnsupportedCallbackException(callbacks[0], message.toString()); |
| | | } |
| | |
| | | } |
| | | else |
| | | { |
| | | Message message = |
| | | LocalizableMessage message = |
| | | ERR_LDAPAUTH_UNEXPECTED_GSSAPI_CALLBACK.get(String.valueOf(cb)); |
| | | throw new UnsupportedCallbackException(cb, message.toString()); |
| | | } |
| | |
| | | } |
| | | else |
| | | { |
| | | Message message = ERR_LDAPAUTH_UNEXPECTED_CALLBACK_INVOCATION.get( |
| | | LocalizableMessage message = ERR_LDAPAUTH_UNEXPECTED_CALLBACK_INVOCATION.get( |
| | | saslMechanism, getBacktrace()); |
| | | throw new UnsupportedCallbackException(callbacks[0], message.toString()); |
| | | } |
| | |
| | | } |
| | | catch (IOException ioe) |
| | | { |
| | | Message message = |
| | | LocalizableMessage message = |
| | | ERR_LDAPAUTH_CANNOT_SEND_WHOAMI_REQUEST.get(getExceptionMessage(ioe)); |
| | | throw new ClientException(LDAPResultCode.CLIENT_SIDE_SERVER_DOWN, |
| | | message, ioe); |
| | | } |
| | | catch (Exception e) |
| | | { |
| | | Message message = |
| | | LocalizableMessage message = |
| | | ERR_LDAPAUTH_CANNOT_SEND_WHOAMI_REQUEST.get(getExceptionMessage(e)); |
| | | throw new ClientException(LDAPResultCode.CLIENT_SIDE_ENCODING_ERROR, |
| | | message, e); |
| | |
| | | responseMessage = reader.readMessage(); |
| | | if (responseMessage == null) |
| | | { |
| | | Message message = |
| | | LocalizableMessage message = |
| | | ERR_LDAPAUTH_CONNECTION_CLOSED_WITHOUT_BIND_RESPONSE.get(); |
| | | throw new ClientException(LDAPResultCode.CLIENT_SIDE_SERVER_DOWN, |
| | | message); |
| | |
| | | } |
| | | catch (IOException ioe) |
| | | { |
| | | Message message = ERR_LDAPAUTH_CANNOT_READ_WHOAMI_RESPONSE.get( |
| | | LocalizableMessage message = ERR_LDAPAUTH_CANNOT_READ_WHOAMI_RESPONSE.get( |
| | | getExceptionMessage(ioe)); |
| | | throw new ClientException( |
| | | LDAPResultCode.CLIENT_SIDE_SERVER_DOWN, message, ioe); |
| | | } |
| | | catch (ASN1Exception ae) |
| | | { |
| | | Message message = |
| | | LocalizableMessage message = |
| | | ERR_LDAPAUTH_CANNOT_READ_WHOAMI_RESPONSE.get(getExceptionMessage(ae)); |
| | | throw new ClientException(LDAPResultCode.CLIENT_SIDE_DECODING_ERROR, |
| | | message, ae); |
| | | } |
| | | catch (LDAPException le) |
| | | { |
| | | Message message = |
| | | LocalizableMessage message = |
| | | ERR_LDAPAUTH_CANNOT_READ_WHOAMI_RESPONSE.get(getExceptionMessage(le)); |
| | | throw new ClientException(LDAPResultCode.CLIENT_SIDE_DECODING_ERROR, |
| | | message, le); |
| | | } |
| | | catch (Exception e) |
| | | { |
| | | Message message = |
| | | LocalizableMessage message = |
| | | ERR_LDAPAUTH_CANNOT_READ_WHOAMI_RESPONSE.get(getExceptionMessage(e)); |
| | | throw new ClientException( |
| | | LDAPResultCode.CLIENT_SIDE_LOCAL_ERROR, message, e); |
| | |
| | | // If the protocol op isn't an extended response, then that's a problem. |
| | | if (responseMessage.getProtocolOpType() != OP_TYPE_EXTENDED_RESPONSE) |
| | | { |
| | | Message message = ERR_LDAPAUTH_UNEXPECTED_RESPONSE.get( |
| | | LocalizableMessage message = ERR_LDAPAUTH_UNEXPECTED_RESPONSE.get( |
| | | String.valueOf(responseMessage.getProtocolOp())); |
| | | throw new ClientException( |
| | | LDAPResultCode.CLIENT_SIDE_LOCAL_ERROR, message); |
| | |
| | | if ((responseOID != null) && |
| | | responseOID.equals(OID_NOTICE_OF_DISCONNECTION)) |
| | | { |
| | | Message message = ERR_LDAPAUTH_SERVER_DISCONNECT.get( |
| | | LocalizableMessage message = ERR_LDAPAUTH_SERVER_DISCONNECT.get( |
| | | extendedResponse.getResultCode(), extendedResponse.getErrorMessage()); |
| | | throw new LDAPException(extendedResponse.getResultCode(), message); |
| | | } |
| | |
| | | int resultCode = extendedResponse.getResultCode(); |
| | | if (resultCode != LDAPResultCode.SUCCESS) |
| | | { |
| | | Message message = ERR_LDAPAUTH_WHOAMI_FAILED.get(); |
| | | LocalizableMessage message = ERR_LDAPAUTH_WHOAMI_FAILED.get(); |
| | | throw new LDAPException(resultCode, extendedResponse.getErrorMessage(), |
| | | message, extendedResponse.getMatchedDN(), |
| | | null); |