omniauth-cas icon indicating copy to clipboard operation
omniauth-cas copied to clipboard

Strip whitespace from username

Open andla46 opened this issue 10 years ago • 1 comments

I'm using omniauth-cas together with Gitlab and an external CAS 2.0 server, which works very well besides one issue:

The server happily authenticates usernames with trailing whitespaces (i.e. the server obviously strips ws internally before validating) but then sends the whole username string (including ws) on to the cas module.

This caused us some issues, since gitlab then updates the users table with the new username string (again, inc ws).

This is the first time I've seen this issue, since most of our other CASified systems are behind apache/mod_auth_cas which filters ws before handing on the username.

This fixes it pretty thoroughly, even though it does a bit more than ws-strip uid:

       def prune!(hash)
         hash.delete_if do |_, value|
+          value.strip! if value.is_a?(String)
           prune!(value) if value.is_a?(Hash)
           value.nil? || (value.respond_to?(:empty?) && value.empty?)
         end

Is this a suitable fix? Should I fix a PR?

andla46 avatar Oct 07 '14 11:10 andla46

I no longer have access to a CAS server and therefore am no longer fit to maintain this project.

If you would like to volunteer to be a maintainer of this project, please let me know by opening an Issue.

dlindahl avatar Dec 22 '15 03:12 dlindahl