|
Hello,
I would like to contribute a new CAS SecurityRealm plugin to Jenkins. Jasig CAS (Central Authentication Service) is a single sign-on (SSO) service implemented as a web application, and is commonly used in universities and enterprises to secure applications without having to login again and again. While looking for a way to login with CAS from Jenkins, I found the CAS1 plugin by J. David Beutel, but as the plugin name implies it only supports the legacy CAS 1.0 protocol with custom extensions for role parsing. The plugin I have developped currently supports the following features:
A few implementation notes:
Now, there are a few things I'd like to get feedback on and discuss:
Could you please consider it for forking into the official jenkisci repos? Note that I prefixed my repo with 'jenkins-' but that's really only for me, after forking I guess the repo should simply be named 'cas-plugin'. If accepted, I would of course work on a proper wiki page to describe how to configure the plugin. Please let me know what you think, comments and feedback will be appreciated :-) Best regards, - Fabien. |
|
This looks like a big improvement! The
code looks clean and nicely factored.
I haven't worked on the old one for a couple years, and it's the only Jenkins plugin I've done, so I don't know just by looking at the new one whether there are any problems. A code review by an experienced Jenkins developer would still be good to get. But, I'll try out the new one, when I finally get time to update the Jenkins instance I'm using now. I didn't see the jsessionid hack for Jetty; is it not needed anymore? It might only be an issue with the CAS 1 client library, or some old version of one of the other components. I don't know if there are any potential issues with using Spring Security together with Acegi. I guess it's OK, if it works, and they're in separate packages. If it's accepted as an official plugin, I guess we'd just deprecate the existing CAS1 plugin, with a link on the wiki to the new one. I don't think that an automatic migration of the configuration is necessary. To upgrade, can users just install the new one, manually configure it like the old one, and uninstall the old one? The users of the old one will dwindle naturally. You're welcome to look into automating the migration, but I don't think it's worth the effort. The one change I'd make is to an example in a help text, to make the usernames anonymous. I'll send you a pull request with that. Cheers, 11011011 On Wednesday, July 11, 2012 10:03:16 AM UTC-10, Fabien Crespel wrote: Hello, |
|
Thanks for your feedback :-)
I merged your pull request and added 2 commits, to fix an extraneous "/" character in the logout URL and a problem with SAML 1.1 when running under the embedded Jetty from the HPI plugin. So you should be able to test the plugin simply by running "mvn hpi:run" from the command line, and configuring the CAS Security Realm at localhost:8080/configure. As a side note for anyone else interested in testing, you can get a CAS server working in no time by dropping the cas-server-webapp into a servlet container (e.g. Tomcat); the default config allows you to login with matching pairs of username/password (e.g. test/test). Regarding the Jetty jsessionid hack, I haven't seen a need for it during testing... it may no longer be an issue, or the way the new plugin works simply doesn't trigger the problem..? As for the migration path from the CAS1 plugin, I would agree that simple deprecation and prominent notices on the wiki are enough; there aren't many options to configure so users could simply copy them. So if you think that this new plugin is ready for publication, could you please give your green light here so that Jenkins admins can fork the repo, create the CI job, etc. ? Thanks in advance, - Fabien. Le jeudi 12 juillet 2012 06:10:19 UTC+2, J. David Beutel a écrit : This looks like a big improvement! The code looks clean and nicely factored. |
|
Hello,
It has been a bit more than a couple weeks now and I'd like to move forward with this. Considering this plugin is separate from the CAS1 plugin, I don't see an issue with releasing it now even if the CAS1 plugin isn't immediately marked as deprecated; for the moment a simple notice on its wiki page could invite users to try the new plugin. Jenkins admins, are you fine with this and if so, could you please proceed with forking the code repo at https://github.com/fcrespel/jenkins-cas-plugin, giving me access to the forked one as well as setting up the CI job? Thank you in advance, Fabien. Le jeudi 12 juillet 2012 22:49:48 UTC+2, Fabien Crespel a écrit : Thanks for your feedback :-) |
|
Hello there,
Jenkins admins, could you please review my plugin fork request above? it has gone unnoticed for more than a month now... :-) If there is anything preventing it, please let me know. Thanks, Fabien. Le lundi 30 juillet 2012 10:08:49 UTC+2, Fabien Crespel a écrit : Hello, |
|
Done, CI job : https://jenkins.ci.cloudbees.com/job/plugins/job/cas/2012/9/3 Fabien Crespel <[hidden email]> Hello there, |
|
Thanks Nicolas. It seems that I don't have commit rights over the forked repo though, could you please double check this and fix it? My GitHub username is fcrespel.
- Fabien. Le mardi 4 septembre 2012 08:00:53 UTC+2, nicolas de loof a écrit :
|
|
You're in the dev team for this plugin : https://github.com/organizations/jenkinsci/teams/239745
2012/9/4 Fabien Crespel <[hidden email]> Thanks Nicolas. It seems that I don't have commit rights over the forked repo though, could you please double check this and fix it? My GitHub username is fcrespel. |
|
Perfect, it works now. Thanks :-)
- Fabien. Le mercredi 5 septembre 2012 10:24:22 UTC+2, nicolas de loof a écrit : You're in the dev team for this plugin : https://github.com/ |
| Powered by Nabble | Edit this page |
