| | |
| | | */ |
| | | |
| | | package org.opends.server.authorization.dseecompat; |
| | | import org.opends.messages.Message; |
| | | import org.forgerock.i18n.LocalizableMessage; |
| | | |
| | | import org.opends.server.types.*; |
| | | import org.forgerock.opendj.ldap.ByteString; |
| | |
| | | } |
| | | else |
| | | { |
| | | Message message = ERR_ATTR_SYNTAX_DN_NO_EQUAL.get( |
| | | LocalizableMessage message = ERR_ATTR_SYNTAX_DN_NO_EQUAL.get( |
| | | dnString, attributeName.toString(), c); |
| | | throw new DirectoryException(ResultCode.INVALID_DN_SYNTAX, |
| | | message); |
| | |
| | | { |
| | | // This should not happen. At any rate, it's an illegal |
| | | // character, so throw an exception. |
| | | Message message = ERR_ATTR_SYNTAX_DN_INVALID_CHAR.get(dnString, c, pos); |
| | | LocalizableMessage message = ERR_ATTR_SYNTAX_DN_INVALID_CHAR.get(dnString, c, pos); |
| | | throw new DirectoryException(ResultCode.INVALID_DN_SYNTAX, |
| | | message); |
| | | } |
| | |
| | | // because that would be invalid. |
| | | if (pos >= length) |
| | | { |
| | | Message message = ERR_ATTR_SYNTAX_DN_END_WITH_ATTR_NAME.get( |
| | | LocalizableMessage message = ERR_ATTR_SYNTAX_DN_END_WITH_ATTR_NAME.get( |
| | | dnString, attributeName.toString()); |
| | | throw new DirectoryException(ResultCode.INVALID_DN_SYNTAX, |
| | | message); |
| | |
| | | // This means that we hit the end of the value before |
| | | // finding a '='. This is illegal because there is no |
| | | // attribute-value separator. |
| | | Message message = |
| | | LocalizableMessage message = |
| | | ERR_ATTR_SYNTAX_DN_END_WITH_ATTR_NAME.get(dnString, name); |
| | | throw new DirectoryException(ResultCode.INVALID_DN_SYNTAX, |
| | | message); |
| | |
| | | } |
| | | else |
| | | { |
| | | Message message = ERR_ATTR_SYNTAX_DN_NO_EQUAL.get(dnString, name, c); |
| | | LocalizableMessage message = ERR_ATTR_SYNTAX_DN_NO_EQUAL.get(dnString, name, c); |
| | | throw new DirectoryException(ResultCode.INVALID_DN_SYNTAX, |
| | | message); |
| | | } |
| | |
| | | { |
| | | // This should not happen. At any rate, it's an illegal |
| | | // character, so throw an exception. |
| | | Message message = |
| | | LocalizableMessage message = |
| | | ERR_ATTR_SYNTAX_DN_INVALID_CHAR.get(dnString, c, pos); |
| | | throw new DirectoryException(ResultCode.INVALID_DN_SYNTAX, |
| | | message); |
| | |
| | | // know that there is at least one RDN component, and |
| | | // therefore the last non-space character of the DN must |
| | | // have been a comma. This is not acceptable. |
| | | Message message = ERR_ATTR_SYNTAX_DN_END_WITH_COMMA.get(dnString); |
| | | LocalizableMessage message = ERR_ATTR_SYNTAX_DN_END_WITH_COMMA.get(dnString); |
| | | throw new DirectoryException(ResultCode.INVALID_DN_SYNTAX, |
| | | message); |
| | | } |
| | |
| | | case ')': |
| | | // None of these are allowed in an attribute name or any |
| | | // character immediately following it. |
| | | Message message = |
| | | LocalizableMessage message = |
| | | ERR_ATTR_SYNTAX_DN_ATTR_ILLEGAL_CHAR.get(dnString, c, pos); |
| | | throw new DirectoryException(ResultCode.INVALID_DN_SYNTAX, |
| | | message); |
| | |
| | | // have at least one character. |
| | | if (attributeName.length() == 0) |
| | | { |
| | | Message message = ERR_ATTR_SYNTAX_DN_ATTR_NO_NAME.get(dnString); |
| | | LocalizableMessage message = ERR_ATTR_SYNTAX_DN_ATTR_NO_NAME.get(dnString); |
| | | throw new DirectoryException(ResultCode.INVALID_DN_SYNTAX, |
| | | message); |
| | | } |
| | |
| | | |
| | | if (! validOID) |
| | | { |
| | | Message message = ERR_ATTR_SYNTAX_DN_ATTR_ILLEGAL_PERIOD.get( |
| | | LocalizableMessage message = ERR_ATTR_SYNTAX_DN_ATTR_ILLEGAL_PERIOD.get( |
| | | dnString, attributeName.toString()); |
| | | throw new DirectoryException(ResultCode.INVALID_DN_SYNTAX, |
| | | message); |
| | |
| | | StringBuilder hexString = new StringBuilder(); |
| | | if ((pos+2) > length) |
| | | { |
| | | Message message = ERR_ATTR_SYNTAX_DN_HEX_VALUE_TOO_SHORT.get(dnString); |
| | | LocalizableMessage message = ERR_ATTR_SYNTAX_DN_HEX_VALUE_TOO_SHORT.get(dnString); |
| | | throw new DirectoryException(ResultCode.INVALID_DN_SYNTAX, |
| | | message); |
| | | } |
| | |
| | | } |
| | | else |
| | | { |
| | | Message message = |
| | | LocalizableMessage message = |
| | | ERR_ATTR_SYNTAX_DN_INVALID_HEX_DIGIT.get(dnString, c); |
| | | throw new DirectoryException(ResultCode.INVALID_DN_SYNTAX, |
| | | message); |
| | |
| | | } |
| | | else |
| | | { |
| | | Message message = |
| | | LocalizableMessage message = |
| | | ERR_ATTR_SYNTAX_DN_INVALID_HEX_DIGIT.get(dnString, c); |
| | | throw new DirectoryException( |
| | | ResultCode.INVALID_DN_SYNTAX, message); |
| | |
| | | } |
| | | else |
| | | { |
| | | Message message = |
| | | LocalizableMessage message = |
| | | ERR_ATTR_SYNTAX_DN_HEX_VALUE_TOO_SHORT.get(dnString); |
| | | throw new DirectoryException(ResultCode.INVALID_DN_SYNTAX, |
| | | message); |
| | |
| | | } |
| | | else |
| | | { |
| | | Message message = |
| | | LocalizableMessage message = |
| | | ERR_ATTR_SYNTAX_DN_INVALID_HEX_DIGIT.get(dnString, c); |
| | | throw new DirectoryException(ResultCode.INVALID_DN_SYNTAX, |
| | | message); |
| | |
| | | TRACER.debugCaught(DebugLogLevel.ERROR, e); |
| | | } |
| | | |
| | | Message message = ERR_ATTR_SYNTAX_DN_ATTR_VALUE_DECODE_FAILURE.get( |
| | | LocalizableMessage message = ERR_ATTR_SYNTAX_DN_ATTR_VALUE_DECODE_FAILURE.get( |
| | | dnString, String.valueOf(e)); |
| | | throw new DirectoryException(ResultCode.INVALID_DN_SYNTAX, |
| | | message); |
| | |
| | | { |
| | | // We hit the end of the DN before the closing quote. |
| | | // That's an error. |
| | | Message message = ERR_ATTR_SYNTAX_DN_UNMATCHED_QUOTE.get(dnString); |
| | | LocalizableMessage message = ERR_ATTR_SYNTAX_DN_UNMATCHED_QUOTE.get(dnString); |
| | | throw new DirectoryException(ResultCode.INVALID_DN_SYNTAX, |
| | | message); |
| | | } |
| | |
| | | // value. |
| | | if (pos >= length) |
| | | { |
| | | Message message = |
| | | LocalizableMessage message = |
| | | ERR_ATTR_SYNTAX_DN_ESCAPED_HEX_VALUE_INVALID.get(dnString); |
| | | throw new DirectoryException( |
| | | ResultCode.INVALID_DN_SYNTAX, message); |
| | |
| | | } |
| | | else |
| | | { |
| | | Message message = |
| | | LocalizableMessage message = |
| | | ERR_ATTR_SYNTAX_DN_ESCAPED_HEX_VALUE_INVALID.get(dnString); |
| | | throw new DirectoryException( |
| | | ResultCode.INVALID_DN_SYNTAX, message); |
| | |
| | | appendHexChars(dnString, valueString, hexChars); |
| | | if (valueString.length() == 0) |
| | | { |
| | | Message message = |
| | | LocalizableMessage message = |
| | | WARN_PATTERN_DN_CONSECUTIVE_WILDCARDS_IN_VALUE.get(dnString); |
| | | throw new DirectoryException(ResultCode.INVALID_DN_SYNTAX, |
| | | message); |
| | |
| | | TRACER.debugCaught(DebugLogLevel.ERROR, e); |
| | | } |
| | | |
| | | Message message = ERR_ATTR_SYNTAX_DN_ATTR_VALUE_DECODE_FAILURE.get( |
| | | LocalizableMessage message = ERR_ATTR_SYNTAX_DN_ATTR_VALUE_DECODE_FAILURE.get( |
| | | dnString, String.valueOf(e)); |
| | | throw new DirectoryException(ResultCode.INVALID_DN_SYNTAX, |
| | | message); |