2012-02-16 19 views
8

En todas las referencias en el operador de filtro de búsqueda LDAP, encuentro <= para "menor que o igual a" y >= para "mayor o igual que".Estricto menos que el operador en el filtro de búsqueda LDAP?

¿Realmente no hay un operador "estrictamente inferior"? ¿Debo escribir attribute < threshold como el siguiente? (El umbral es un valor fijo.)

(&(attribute <= threshold)(!(attribute = threshold))) 

En mi caso actual de los valores de los atributos son números enteros que representan fechas, por ejemplo 20120217161853 para 2012-02-17 16:18:53.

Respuesta

12

Otra solución simple sería invertir la condición. Si necesita

(attribute < threshold) 

Entonces esto también podría escribirse como

!(attribute >= threshold) 
2

No estoy seguro de entender realmente. Si desea algo como X<100, ¿por qué no codifica X<=99?

+1

que debería funcionar. No pensé en eso porque la entrada resulta ser una cadena de fecha y hora, pero una vez que está almacenada en LDAP, todo son números enteros. – Joni

+0

¿Qué directorio estás usando? – JPBlanc

+0

El directorio es de nuestro cliente y creo que es un Sun Directory Server, pero aún no tenemos acceso a él ... Por ahora ejecutamos nuestras pruebas contra 'Net :: LDAP :: Server :: Test', es un Módulo Perl que implementa lo suficiente de un servidor de directorio para probar. – Joni

3

Consulte RFC4511 para ver las definiciones de los tipos de filtros de búsqueda. Los tipos de filtros son:

  • equalityMatch AttributeValueAssertion,
  • subcadenas SubstringFilter
  • greaterOrEqual AttributeValueAssertion
  • lessOrEqual AttributeValueAssertion
  • presente AttributeDescription
  • approxMatch AttributeValueAssertion
  • extensibleMatch MatchingRuleAssertion

No sólo no hay '<' filtro, los valores relativos en >= y <= se definen por ordenar reglas, y así hacer posible que no se lo que se espera una comparación valor relativo a menos treshold tiene 1.3.6.1.4.1.1466.115.121.1.27 sintaxis y tiene la integerOrderingMatch regla de ordenamiento

+0

Gracias por la referencia. En realidad, "umbral" es un valor fijo y no otro atributo, perdón por no dejarlo en claro. ¿La regla de ordenamiento tiene que ser 'integerOrderingMatch' aunque? – Joni

+0

No, solo para comparaciones enteras. Otras reglas de ordenamiento para los atributos pueden ser lexicográficas. Las aplicaciones deben consultar el esquema para determinar las reglas de ordenamiento, las reglas de coincidencia y la sintaxis de atributos. Los identificadores de objeto utilizados en el esquema se definen en IANA. –

Cuestiones relacionadas