Uploaded image for project: 'Jenkins'
  1. Jenkins
  2. JENKINS-22247

Provide an extension point to define user id case sensitivity contract

    Details

    • Type: New Feature
    • Status: Resolved (View Workflow)
    • Priority: Major
    • Resolution: Fixed
    • Component/s: core
    • Labels:
    • Similar Issues:

      Description

      The current core implementation does not define a proper contract for case insensitivity leading to all sorts of bugs, e.g.

      JENKINS-22057
      JENKINS-12607
      JENKINS-3218
      JENKINS-9771
      JENKINS-6377
      JENKINS-20125
      JENKINS-18009

      Also there are a lot of issues showing a fundamental misunderstanding of why Jenkins originally used a semi-case insensitive username... (hint the real reason is because windows filesystem is case insensitive)

      People seem to think that user ids are case insensitive... despite

      • unix logins being case sensitive
      • email addresses being case sensitive (yes they are allowed to be... read the RFC... the destination server is allowed to treat them as case sensitive... though the RFC does say a polite version of "only a fool would actually do that" it is allowed by the spec, so you cannot assume that foo@acme.org is the same person as Foo@acme.org... you can however assume that foo@acme.org and foo@ACME.ORG are the same person as is foo@aCmE.OrG because domain names are not case sensitive)

      As such, without a plugable strategy the case sensitive/insensitivity of Jenkins is fundamentally broken.

        Attachments

          Issue Links

            Activity

            Show
            stephenconnolly Stephen Connolly added a comment - https://github.com/jenkinsci/jenkins/pull/1161
            Hide
            scm_issue_link SCM/JIRA link daemon added a comment -

            Code changed in jenkins
            User: Stephen Connolly
            Path:
            src/main/java/hudson/security/LDAPSecurityRealm.java
            http://jenkins-ci.org/commit/ldap-plugin/64fcf64850a2dd3ab668887212264f880f45042b
            Log:
            Add a hack to work-around JENKINS-22247

            Show
            scm_issue_link SCM/JIRA link daemon added a comment - Code changed in jenkins User: Stephen Connolly Path: src/main/java/hudson/security/LDAPSecurityRealm.java http://jenkins-ci.org/commit/ldap-plugin/64fcf64850a2dd3ab668887212264f880f45042b Log: Add a hack to work-around JENKINS-22247
            Hide
            scm_issue_link SCM/JIRA link daemon added a comment -

            Code changed in jenkins
            User: Stephen Connolly
            Path:
            src/main/java/hudson/security/LDAPSecurityRealm.java
            http://jenkins-ci.org/commit/ldap-plugin/474ce4bbc07fbe382be59c0e815900fd596cce18
            Log:
            Update the hack to work-around JENKINS-22247

            Show
            scm_issue_link SCM/JIRA link daemon added a comment - Code changed in jenkins User: Stephen Connolly Path: src/main/java/hudson/security/LDAPSecurityRealm.java http://jenkins-ci.org/commit/ldap-plugin/474ce4bbc07fbe382be59c0e815900fd596cce18 Log: Update the hack to work-around JENKINS-22247
            Hide
            scm_issue_link SCM/JIRA link daemon added a comment -

            Code changed in jenkins
            User: Stephen Connolly
            Path:
            core/src/main/java/hudson/model/User.java
            http://jenkins-ci.org/commit/jenkins/7459ac07044fd159f573a7b216f3e0986161ddd0
            Log:
            JENKINS-22247 Provide an extension point to define user id case sensitivity contract

            • Fix up bad merge
            Show
            scm_issue_link SCM/JIRA link daemon added a comment - Code changed in jenkins User: Stephen Connolly Path: core/src/main/java/hudson/model/User.java http://jenkins-ci.org/commit/jenkins/7459ac07044fd159f573a7b216f3e0986161ddd0 Log: JENKINS-22247 Provide an extension point to define user id case sensitivity contract Fix up bad merge
            Hide
            scm_issue_link SCM/JIRA link daemon added a comment -

            Code changed in jenkins
            User: Jesse Glick
            Path:
            changelog.html
            core/src/main/java/hudson/model/User.java
            core/src/main/java/hudson/security/SecurityRealm.java
            core/src/main/java/jenkins/model/IdStrategy.java
            core/src/main/java/jenkins/model/IdStrategyDescriptor.java
            http://jenkins-ci.org/commit/jenkins/484db6b645b8f2963f02861678092c5b235687c4
            Log:
            [FIXED JENKINS-22247] Noting merge of #1161.

            Compare: https://github.com/jenkinsci/jenkins/compare/aeebf9f65223...484db6b645b8

            Show
            scm_issue_link SCM/JIRA link daemon added a comment - Code changed in jenkins User: Jesse Glick Path: changelog.html core/src/main/java/hudson/model/User.java core/src/main/java/hudson/security/SecurityRealm.java core/src/main/java/jenkins/model/IdStrategy.java core/src/main/java/jenkins/model/IdStrategyDescriptor.java http://jenkins-ci.org/commit/jenkins/484db6b645b8f2963f02861678092c5b235687c4 Log: [FIXED JENKINS-22247] Noting merge of #1161. Compare: https://github.com/jenkinsci/jenkins/compare/aeebf9f65223...484db6b645b8
            Hide
            dogfood dogfood added a comment -

            Integrated in jenkins_main_trunk #3398
            JENKINS-22247 Provide an extension point to define user id case sensitivity contract (Revision 7459ac07044fd159f573a7b216f3e0986161ddd0)
            [FIXED JENKINS-22247] Noting merge of #1161. (Revision 484db6b645b8f2963f02861678092c5b235687c4)

            Result = SUCCESS
            Stephen Connolly : 7459ac07044fd159f573a7b216f3e0986161ddd0
            Files :

            • core/src/main/java/hudson/model/User.java

            Jesse Glick : 484db6b645b8f2963f02861678092c5b235687c4
            Files :

            • changelog.html
            • core/src/main/java/hudson/model/User.java
            • core/src/main/java/hudson/security/SecurityRealm.java
            • core/src/main/java/jenkins/model/IdStrategyDescriptor.java
            • core/src/main/java/jenkins/model/IdStrategy.java
            Show
            dogfood dogfood added a comment - Integrated in jenkins_main_trunk #3398 JENKINS-22247 Provide an extension point to define user id case sensitivity contract (Revision 7459ac07044fd159f573a7b216f3e0986161ddd0) [FIXED JENKINS-22247] Noting merge of #1161. (Revision 484db6b645b8f2963f02861678092c5b235687c4) Result = SUCCESS Stephen Connolly : 7459ac07044fd159f573a7b216f3e0986161ddd0 Files : core/src/main/java/hudson/model/User.java Jesse Glick : 484db6b645b8f2963f02861678092c5b235687c4 Files : changelog.html core/src/main/java/hudson/model/User.java core/src/main/java/hudson/security/SecurityRealm.java core/src/main/java/jenkins/model/IdStrategyDescriptor.java core/src/main/java/jenkins/model/IdStrategy.java
            Hide
            creativeadmin CreativeAdmin CreativeAdmin added a comment -

            Hi,
            Where is extension point ? Can't see how to allow case insensitve user id. I'm using AD plugin + Role strategy Plugin, last version.
            Thanks

            Show
            creativeadmin CreativeAdmin CreativeAdmin added a comment - Hi, Where is extension point ? Can't see how to allow case insensitve user id. I'm using AD plugin + Role strategy Plugin, last version. Thanks
            Hide
            jglick Jesse Glick added a comment -

            CreativeAdmin CreativeAdmin the AD plugin does not yet use this API as far as I know. Separate issue for that plugin.

            Show
            jglick Jesse Glick added a comment - CreativeAdmin CreativeAdmin the AD plugin does not yet use this API as far as I know. Separate issue for that plugin.

              People

              • Assignee:
                Unassigned
                Reporter:
                stephenconnolly Stephen Connolly
              • Votes:
                1 Vote for this issue
                Watchers:
                9 Start watching this issue

                Dates

                • Created:
                  Updated:
                  Resolved: