diff options
author | Douwe Maan <douwe@gitlab.com> | 2015-08-26 17:53:31 -0700 |
---|---|---|
committer | Douwe Maan <douwe@gitlab.com> | 2015-08-26 17:53:31 -0700 |
commit | 843694f90270e290f164bed68362500c9e331a46 (patch) | |
tree | 0e20cc09df536365db817ba8aef4c77d3d0c684e /config/initializers/omniauth.rb | |
parent | 6afd69f4445cc0688aa1695389eb3f79033e3121 (diff) | |
parent | de3b7d9c522db8d129a64f2b86297cf90413cb1e (diff) | |
download | gitlab-ce-843694f90270e290f164bed68362500c9e331a46.tar.gz |
Merge branch 'master' into ci-and-ce-sitting-in-a-tree-k-i-s-s-i-n-g
Diffstat (limited to 'config/initializers/omniauth.rb')
-rw-r--r-- | config/initializers/omniauth.rb | 28 |
1 files changed, 28 insertions, 0 deletions
diff --git a/config/initializers/omniauth.rb b/config/initializers/omniauth.rb new file mode 100644 index 00000000000..70ed10e8275 --- /dev/null +++ b/config/initializers/omniauth.rb @@ -0,0 +1,28 @@ +if Gitlab::LDAP::Config.enabled? + module OmniAuth::Strategies + server = Gitlab.config.ldap.servers.values.first + klass = server['provider_class'] + const_set(klass, Class.new(LDAP)) unless klass == 'LDAP' + end + + OmniauthCallbacksController.class_eval do + server = Gitlab.config.ldap.servers.values.first + alias_method server['provider_name'], :ldap + end +end + +OmniAuth.config.full_host = Settings.gitlab['base_url'] +OmniAuth.config.allowed_request_methods = [:post] +#In case of auto sign-in, the GET method is used (users don't get to click on a button) +OmniAuth.config.allowed_request_methods << :get if Gitlab.config.omniauth.auto_sign_in_with_provider.present? +OmniAuth.config.before_request_phase do |env| + OmniAuth::RequestForgeryProtection.new(env).call +end + +if Gitlab.config.omniauth.enabled + Gitlab.config.omniauth.providers.each do |provider| + if provider['name'] == 'kerberos' + require 'omniauth-kerberos' + end + end +end |