| | |
| | | import javax.security.sasl.*; |
| | | |
| | | import org.ietf.jgss.GSSException; |
| | | import org.opends.messages.Message; |
| | | import org.forgerock.i18n.LocalizableMessage; |
| | | import org.opends.server.api.AuthenticationPolicyState; |
| | | import org.opends.server.api.ClientConnection; |
| | | import org.opends.server.api.IdentityMapper; |
| | |
| | | private String userName; |
| | | |
| | | // Error message used by callbacks. |
| | | private Message cbMsg; |
| | | private LocalizableMessage cbMsg; |
| | | |
| | | // Error code used by callbacks. |
| | | private ResultCode cbResultCode; |
| | |
| | | } |
| | | else |
| | | { |
| | | final Message message = INFO_SASL_UNSUPPORTED_CALLBACK.get(mechanism, |
| | | final LocalizableMessage message = INFO_SASL_UNSUPPORTED_CALLBACK.get(mechanism, |
| | | String.valueOf(callback)); |
| | | throw new UnsupportedCallbackException(callback, message.toString()); |
| | | } |
| | |
| | | } |
| | | final GSSException gex = (GSSException) ex.getCause(); |
| | | |
| | | final Message msg; |
| | | final LocalizableMessage msg; |
| | | if (gex != null) |
| | | { |
| | | msg = ERR_SASL_CONTEXT_CREATE_ERROR.get(SASL_MECHANISM_GSSAPI, |
| | |
| | | TRACER.debugCaught(DebugLogLevel.ERROR, e); |
| | | } |
| | | |
| | | final Message msg = ERR_SASL_PROTOCOL_ERROR.get(mechanism, |
| | | final LocalizableMessage msg = ERR_SASL_PROTOCOL_ERROR.get(mechanism, |
| | | getExceptionMessage(e)); |
| | | handleError(msg); |
| | | return false; |
| | |
| | | |
| | | if ((clientCredentials == null) || (clientCredentials.length() == 0)) |
| | | { |
| | | final Message msg = ERR_SASL_NO_CREDENTIALS.get(mechanism, mechanism); |
| | | final LocalizableMessage msg = ERR_SASL_NO_CREDENTIALS.get(mechanism, mechanism); |
| | | handleError(msg); |
| | | return; |
| | | } |
| | |
| | | TRACER.debugCaught(DebugLogLevel.ERROR, e); |
| | | } |
| | | |
| | | final Message msg = ERR_SASL_PROTOCOL_ERROR.get(mechanism, |
| | | final LocalizableMessage msg = ERR_SASL_PROTOCOL_ERROR.get(mechanism, |
| | | getExceptionMessage(e)); |
| | | handleError(msg); |
| | | } |
| | |
| | | { |
| | | TRACER.debugCaught(DebugLogLevel.ERROR, e); |
| | | } |
| | | final Message msg = ERR_SASL_PROTOCOL_ERROR.get(mechanism, |
| | | final LocalizableMessage msg = ERR_SASL_PROTOCOL_ERROR.get(mechanism, |
| | | getExceptionMessage(e)); |
| | | handleError(msg); |
| | | } |
| | |
| | | { |
| | | TRACER.debugCaught(DebugLogLevel.ERROR, e); |
| | | } |
| | | final Message msg = ERR_SASL_PROTOCOL_ERROR.get(mechanism, |
| | | final LocalizableMessage msg = ERR_SASL_PROTOCOL_ERROR.get(mechanism, |
| | | getExceptionMessage(e)); |
| | | handleError(msg); |
| | | } |
| | |
| | | * @param msg |
| | | * The message to use if the callback message is not null. |
| | | */ |
| | | private void handleError(final Message msg) |
| | | private void handleError(final LocalizableMessage msg) |
| | | { |
| | | dispose(); |
| | | final ClientConnection clientConn = bindOp.getClientConnection(); |
| | |
| | | serverFQDN, saslProps, this); |
| | | if (saslServer == null) |
| | | { |
| | | final Message msg = ERR_SASL_CREATE_SASL_SERVER_FAILED.get(mechanism, |
| | | final LocalizableMessage msg = ERR_SASL_CREATE_SASL_SERVER_FAILED.get(mechanism, |
| | | serverFQDN); |
| | | throw new SaslException(Message.toString(msg)); |
| | | throw new SaslException(msg.toString()); |
| | | } |
| | | } |
| | | |
| | |
| | | |
| | | if (!authState.isPasswordPolicy()) |
| | | { |
| | | final Message message = ERR_SASL_ACCOUNT_NOT_LOCAL.get(mechanism, |
| | | final LocalizableMessage message = ERR_SASL_ACCOUNT_NOT_LOCAL.get(mechanism, |
| | | String.valueOf(authEntry.getName())); |
| | | setCallbackMsg(ResultCode.INAPPROPRIATE_AUTHENTICATION, message); |
| | | return; |
| | |
| | | * @param cbMsg |
| | | * The message to set the callback message to. |
| | | */ |
| | | private void setCallbackMsg(final Message cbMsg) |
| | | private void setCallbackMsg(final LocalizableMessage cbMsg) |
| | | { |
| | | setCallbackMsg(ResultCode.INVALID_CREDENTIALS, cbMsg); |
| | | } |
| | |
| | | * The message. |
| | | */ |
| | | private void setCallbackMsg(final ResultCode cbResultCode, |
| | | final Message cbMsg) |
| | | final LocalizableMessage cbMsg) |
| | | { |
| | | this.cbResultCode = cbResultCode; |
| | | this.cbMsg = cbMsg; |