| I considered this issue again, and I still believe I require one of following feature. 1. Forbid configuration by a non-admin user who isn't configured with authorize-project. 2. Display a warning message if a non-admin user who isn't configured with authorize-project can configure the job. 3. Disable authorize-project for a job if that job is configured by another user. 4. Remove SpecificUsersAuthorizationStrategy and SystemAuthorizationStrategy and introduce alternate ones. The approach with ReconfigurableDescribable might work, but I don't like it as:
- It requires to define needless JobProperty.
- It is really implementation-dependent. It reminds me
JENKINS-28298, a security issue caused by the change of exception handling in Jenkins core.
- It doesn't look to work with REST and CLI.
I know these issues are also applicable to current implementations of SpecificUsersAuthorizationStrategy and SystemAuthorizationStrategy, and, therefore, I want to resolve these issues on this occasion. "Users should configure appropriate permissions when they use authorize-project" might be correct, but unfortunately, I don't trust that users can set up appropriate security configurations without helps, and I believe I have to provide a explicit mechanism to protect securities (at least, displaying warnings). |