-
Notifications
You must be signed in to change notification settings - Fork 43
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
attribute keys are CAPS sensitive #7
Comments
to specify, this was found with postman when sending scim+json information in POST or PUT |
I did a bit of a deep dive today to revisit issues of case sensitivity and arrived back at the original implementation decision, unfortunately, of "very hard". Some aspects of case insensitivity (e.g. in filters) are handled but main attribute names are presently not. Ruby provides no out-of-box way to have things like case-insensitive Hash keys and a great many of the operations that Scimitar performs on Hash and Array data for inbound payload processing become invalidated once the case of any of these entities becomes indeterminate. Use of ActiveModel for attribute assignment also leads to case-sensitivity in attribute names. A lot of this kind of stuff was leant on heavily just to make the gem implementable without unreasonably vast amounts of time/resources in a moderately reliable fashion, even within the documented limitations such as those described in #6. SCIM is a very difficult spec to implement with a lot of undocumented edge cases and deceptive amounts of deep complexity hidden in what often look like "innocent" specification examples and statements. As with many RFCs, it is a pity that the authors were not required to produce a reference implementation as this would I'm sure have gone a long way to aiding in simplification and clarification of the RFC prior to its finalisation. I'll keep looking at this, but it's definitely an extremely large job (in the worst case, to the point of rewriting a good chunk of some of the hardest-to-implement code in the gem) and unless I have a sudden breakthrough idea on how to get it done efficiently, I can't see it happening quickly. I would presume from the bug report that you aren't in control of the client service that's giving you non-camel-case names such as |
So far we are testing with postman, link to test cases from azure. We have no possibility to alter our customers SCIM clients once we go operational. |
Well I'm making some headway, so watch this space |
The above is going through our review process now. Believe it or not, that's about as small as I could make the change set - borrowing from |
@Janne-ka Version 1.1.0 has been pushed to https://rubygems.org/gems/scimitar - hopefully this fixes your case sensitivity issues, though there may be other problems; fingers crossed anyway. We haven't had a chance to test with too many real-world SCIM endpoints yet. Please let me know how you get on 👍 |
initial Postman tests pass, so looking good. Code looks great too. |
Thanks for the update. And of course, if there are any more problems, please don't hesitate to open a new issue. |
based on specification, attribute names should be case insensitive. Now it seems they are not, e.g. "Primary", "UserName" are not valid attribute names.
The text was updated successfully, but these errors were encountered: