From aed7c9771c2b0e20d0849b6e042e57ab549ca732 Mon Sep 17 00:00:00 2001
From: Jean-Noel Rouvignac <jean-noel.rouvignac@forgerock.com>
Date: Mon, 10 Nov 2014 16:15:59 +0000
Subject: [PATCH] Extracted super class AbstractPasswordEqualityMatchingRuleImpl from AuthPasswordEqualityMatchingRule and UserPasswordEqualityMatchingRule to factorize common code.
---
opendj3-server-dev/src/server/org/opends/server/schema/AuthPasswordEqualityMatchingRule.java | 117 +---------------------------------------------------------
1 files changed, 2 insertions(+), 115 deletions(-)
diff --git a/opendj3-server-dev/src/server/org/opends/server/schema/AuthPasswordEqualityMatchingRule.java b/opendj3-server-dev/src/server/org/opends/server/schema/AuthPasswordEqualityMatchingRule.java
index b9cc8ca..9be33e7 100644
--- a/opendj3-server-dev/src/server/org/opends/server/schema/AuthPasswordEqualityMatchingRule.java
+++ b/opendj3-server-dev/src/server/org/opends/server/schema/AuthPasswordEqualityMatchingRule.java
@@ -26,137 +26,24 @@
*/
package org.opends.server.schema;
-import java.util.Collection;
-import java.util.Collections;
-import java.util.Comparator;
-import java.util.List;
-
import org.forgerock.i18n.slf4j.LocalizedLogger;
-import org.forgerock.opendj.ldap.Assertion;
import org.forgerock.opendj.ldap.ByteSequence;
-import org.forgerock.opendj.ldap.ByteString;
import org.forgerock.opendj.ldap.ConditionResult;
-import org.forgerock.opendj.ldap.DecodeException;
-import org.forgerock.opendj.ldap.schema.MatchingRuleImpl;
-import org.forgerock.opendj.ldap.schema.Schema;
-import org.forgerock.opendj.ldap.spi.IndexQueryFactory;
-import org.forgerock.opendj.ldap.spi.Indexer;
-import org.forgerock.opendj.ldap.spi.IndexingOptions;
import org.opends.server.api.PasswordStorageScheme;
-import static org.forgerock.opendj.ldap.Assertion.*;
import static org.opends.server.core.DirectoryServer.*;
/**
* This class implements the authPasswordMatch matching rule defined in RFC
* 3112.
*/
-class AuthPasswordEqualityMatchingRule implements MatchingRuleImpl
+class AuthPasswordEqualityMatchingRule extends AbstractPasswordEqualityMatchingRuleImpl
{
private static final LocalizedLogger logger = LocalizedLogger.getLoggerForThisClass();
- private static final String EQUALITY_ID = "equality";
-
- private final Collection<? extends Indexer> indexers = Collections.singleton(new Indexer()
- {
- @Override
- public void createKeys(Schema schema, ByteSequence value, IndexingOptions options, Collection<ByteString> keys)
- throws DecodeException
- {
- keys.add(normalizeAttributeValue(schema, value));
- }
-
- @Override
- public String getIndexID()
- {
- return EQUALITY_ID;
- }
- });
-
/** {@inheritDoc} */
@Override
- public Comparator<ByteSequence> comparator(Schema schema)
- {
- return ByteSequence.COMPARATOR;
- }
-
- /**
- * Retrieves the normalized form of the provided value, which is best suited
- * for efficiently performing matching operations on that value.
- *
- * @param schema The schema.
- * @param value The value to be normalized.
- *
- * @return The normalized version of the provided value.
- *
- * @throws DecodeException If the provided value is invalid according to
- * the associated attribute syntax.
- */
- @Override
- public ByteString normalizeAttributeValue(Schema schema, ByteSequence value) throws DecodeException
- {
- // We will not alter the value in any way
- return value.toByteString();
- }
-
- /** {@inheritDoc} */
- @Override
- public Assertion getAssertion(final Schema schema, final ByteSequence assertionValue) throws DecodeException
- {
- final ByteString normalizedAssertionValue = normalizeAttributeValue(schema, assertionValue);
- return new Assertion()
- {
- @Override
- public ConditionResult matches(final ByteSequence normalizedAttributeValue)
- {
- return valuesMatch(normalizedAttributeValue, normalizedAssertionValue);
- }
-
- @Override
- public <T> T createIndexQuery(IndexQueryFactory<T> factory) throws DecodeException
- {
- return factory.createExactMatchQuery(EQUALITY_ID, normalizedAssertionValue);
- }
- };
- }
-
- /** {@inheritDoc} */
- @Override
- public Assertion getSubstringAssertion(Schema schema, ByteSequence subInitial,
- List<? extends ByteSequence> subAnyElements, ByteSequence subFinal) throws DecodeException
- {
- return UNDEFINED_ASSERTION;
- }
-
- /** {@inheritDoc} */
- @Override
- public Assertion getGreaterOrEqualAssertion(Schema schema, ByteSequence value) throws DecodeException
- {
- return UNDEFINED_ASSERTION;
- }
-
- /** {@inheritDoc} */
- @Override
- public Assertion getLessOrEqualAssertion(Schema schema, ByteSequence value) throws DecodeException
- {
- return UNDEFINED_ASSERTION;
- }
-
- /** {@inheritDoc} */
- @Override
- public Collection<? extends Indexer> getIndexers()
- {
- return indexers;
- }
-
- /** {@inheritDoc} */
- @Override
- public boolean isIndexingSupported()
- {
- return !indexers.isEmpty();
- }
-
- private ConditionResult valuesMatch(ByteSequence attributeValue, ByteSequence assertionValue)
+ protected ConditionResult valuesMatch(ByteSequence attributeValue, ByteSequence assertionValue)
{
// We must be able to decode the attribute value using the authentication
// password syntax.
--
Gitblit v1.10.0