From aad596c8559b3d3d081617736cdbeda1374f017b Mon Sep 17 00:00:00 2001
From: Matthew Swift <matthew.swift@forgerock.com>
Date: Fri, 11 May 2012 21:58:30 +0000
Subject: [PATCH] Fix OPENDJ-482: Validation for the CertificateSyntax
---
opends/src/server/org/opends/server/workflowelement/localbackend/LocalBackendModifyOperation.java | 53 ++++++++++++++++++++++++++++++++++++++++++++++-------
1 files changed, 46 insertions(+), 7 deletions(-)
diff --git a/opends/src/server/org/opends/server/workflowelement/localbackend/LocalBackendModifyOperation.java b/opends/src/server/org/opends/server/workflowelement/localbackend/LocalBackendModifyOperation.java
index fd779b0..b3ff2b2 100644
--- a/opends/src/server/org/opends/server/workflowelement/localbackend/LocalBackendModifyOperation.java
+++ b/opends/src/server/org/opends/server/workflowelement/localbackend/LocalBackendModifyOperation.java
@@ -1492,9 +1492,19 @@
{
if (!syntax.valueIsAcceptable(v.getValue(), invalidReason))
{
- throw new DirectoryException(ResultCode.INVALID_ATTRIBUTE_SYNTAX,
+ if (!syntax.isHumanReadable() || syntax.isBinary())
+ {
+ // Value is not human-readable
+ throw new DirectoryException(ResultCode.INVALID_ATTRIBUTE_SYNTAX,
+ ERR_MODIFY_ADD_INVALID_SYNTAX_NO_VALUE.get(
+ String.valueOf(entryDN), attr.getName(), invalidReason));
+ }
+ else
+ {
+ throw new DirectoryException(ResultCode.INVALID_ATTRIBUTE_SYNTAX,
ERR_MODIFY_ADD_INVALID_SYNTAX.get(String.valueOf(entryDN), attr
.getName(), v.getValue().toString(), invalidReason));
+ }
}
}
}
@@ -1506,8 +1516,18 @@
if (!syntax.valueIsAcceptable(v.getValue(), invalidReason))
{
setResultCode(ResultCode.INVALID_ATTRIBUTE_SYNTAX);
- logError(ERR_MODIFY_ADD_INVALID_SYNTAX.get(String.valueOf(entryDN),
- attr.getName(), v.getValue().toString(), invalidReason));
+ if (!syntax.isHumanReadable() || syntax.isBinary())
+ {
+ // Value is not human-readable
+ logError(ERR_MODIFY_ADD_INVALID_SYNTAX_NO_VALUE.get(
+ String.valueOf(entryDN), attr.getName(), invalidReason));
+ }
+ else
+ {
+ logError(ERR_MODIFY_ADD_INVALID_SYNTAX.get(String
+ .valueOf(entryDN), attr.getName(), v.getValue().toString(),
+ invalidReason));
+ }
invalidReason = new MessageBuilder();
}
}
@@ -1695,9 +1715,19 @@
{
if (!syntax.valueIsAcceptable(v.getValue(), invalidReason))
{
- throw new DirectoryException(ResultCode.INVALID_ATTRIBUTE_SYNTAX,
+ if (!syntax.isHumanReadable() || syntax.isBinary())
+ {
+ // Value is not human-readable
+ throw new DirectoryException(ResultCode.INVALID_ATTRIBUTE_SYNTAX,
+ ERR_MODIFY_REPLACE_INVALID_SYNTAX_NO_VALUE.get(
+ String.valueOf(entryDN), attr.getName(), invalidReason));
+ }
+ else
+ {
+ throw new DirectoryException(ResultCode.INVALID_ATTRIBUTE_SYNTAX,
ERR_MODIFY_REPLACE_INVALID_SYNTAX.get(String.valueOf(entryDN),
attr.getName(), v.getValue().toString(), invalidReason));
+ }
}
}
}
@@ -1709,9 +1739,18 @@
if (!syntax.valueIsAcceptable(v.getValue(), invalidReason))
{
setResultCode(ResultCode.INVALID_ATTRIBUTE_SYNTAX);
- logError(ERR_MODIFY_REPLACE_INVALID_SYNTAX.get(String
- .valueOf(entryDN), attr.getName(), v.getValue().toString(),
- invalidReason));
+ if (!syntax.isHumanReadable() || syntax.isBinary())
+ {
+ // Value is not human-readable
+ logError(ERR_MODIFY_REPLACE_INVALID_SYNTAX_NO_VALUE.get(String
+ .valueOf(entryDN), attr.getName(), invalidReason));
+ }
+ else
+ {
+ logError(ERR_MODIFY_REPLACE_INVALID_SYNTAX.get(String
+ .valueOf(entryDN), attr.getName(), v.getValue().toString(),
+ invalidReason));
+ }
invalidReason = new MessageBuilder();
}
}
--
Gitblit v1.10.0