New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Bugs in filter functionality #57

Closed
jgomer2001 opened this Issue Nov 24, 2017 · 2 comments

Comments

Projects
None yet
1 participant
@jgomer2001
Collaborator

jgomer2001 commented Nov 24, 2017

Filter processing logic has some bugs when the expression provided is not tied to a String attribute or comparison is made against null. Examples:

Filter expression LDAP filter built from expr
meta.lastModified ge "2017-10-08T00:42:34Z" oxTrustMetaLastModified>=*"lastModified":*2017-10-08T00:42:34Z"*
urn:ietf:params:scim:schemas:extension: gluu:2.0:User:scimCustomThird gt 1 crashes (error 400: invalidFilter)
scimCustomThird gt 1 crashes (error 400: invalidFilter)
emails.value eq null crashes (error 400: invalidFilter)
emails[value eq null] crashes (error 400: invalidFilter)
emails[primary eq false] crashes (error 400: invalidFilter)

We need to find ways to couple data-type information when generating filters as well as attribute's case sensitiveness. For instance, the eq operation cannot be processed the same way for dates, string or numeric data types.

@jgomer2001 jgomer2001 added the bug label Nov 24, 2017

@jgomer2001 jgomer2001 added this to the CE 3.2 milestone Nov 24, 2017

@jgomer2001 jgomer2001 self-assigned this Nov 24, 2017

jgomer2001 added a commit to GluuFederation/oxTrust that referenced this issue Dec 23, 2017

@jgomer2001

This comment has been minimized.

Collaborator

jgomer2001 commented Dec 23, 2017

The grammar for representing filter expressions was rewritten as well as the code that interprets them and builds LDAP filters dynamically. See this commit.

Relevant test case here.

@jgomer2001

This comment has been minimized.

Collaborator

jgomer2001 commented Jan 3, 2018

To cope for case sensitiveness, we just need to update in LDAP schema the attributes mapping to the following attributes: id, externalId, meta.resourceType, meta.version. All other attributes are caseExact = false per spec.

This issue was opened to complete the task GluuFederation/community-edition-setup#396

@jgomer2001 jgomer2001 closed this Jan 3, 2018

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment