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

Provide an extension point to define user id case sensitivity contract

    • Icon: New Feature New Feature
    • Resolution: Fixed
    • Icon: Major Major
    • core

      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.

          [JENKINS-22247] Provide an extension point to define user id case sensitivity contract

          Stephen Connolly added a comment - https://github.com/jenkinsci/jenkins/pull/1161

          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

          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

          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

          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

          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

          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

          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

          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

          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

          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

          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

          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

          Jesse Glick added a comment -

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

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

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

              Created:
              Updated:
              Resolved: