Commit b03ee4666bc5dfa3c509768918cbc8a477d24efb
1 parent
c48c0f95
Exists in
master
and in
4 other branches
Handle invalid ssh exception
Showing
3 changed files
with
14 additions
and
2 deletions
Show diff stats
app/controllers/application_controller.rb
| @@ -14,6 +14,10 @@ class ApplicationController < ActionController::Base | @@ -14,6 +14,10 @@ class ApplicationController < ActionController::Base | ||
| 14 | render "errors/gitolite", layout: "error" | 14 | render "errors/gitolite", layout: "error" |
| 15 | end | 15 | end |
| 16 | 16 | ||
| 17 | + rescue_from Gitlab::Gitolite::InvalidKey do |exception| | ||
| 18 | + render "errors/invalid_ssh_key", layout: "error" | ||
| 19 | + end | ||
| 20 | + | ||
| 17 | rescue_from Encoding::CompatibilityError do |exception| | 21 | rescue_from Encoding::CompatibilityError do |exception| |
| 18 | render "errors/encoding", layout: "error", status: 404 | 22 | render "errors/encoding", layout: "error", status: 404 |
| 19 | end | 23 | end |
lib/gitlab/backend/gitolite.rb
| @@ -6,6 +6,7 @@ require 'fileutils' | @@ -6,6 +6,7 @@ require 'fileutils' | ||
| 6 | module Gitlab | 6 | module Gitlab |
| 7 | class Gitolite | 7 | class Gitolite |
| 8 | class AccessDenied < StandardError; end | 8 | class AccessDenied < StandardError; end |
| 9 | + class InvalidKey < StandardError; end | ||
| 9 | 10 | ||
| 10 | def set_key key_id, key_content, projects | 11 | def set_key key_id, key_content, projects |
| 11 | configure do |c| | 12 | configure do |c| |
| @@ -190,8 +191,12 @@ module Gitlab | @@ -190,8 +191,12 @@ module Gitlab | ||
| 190 | end | 191 | end |
| 191 | end | 192 | end |
| 192 | rescue Exception => ex | 193 | rescue Exception => ex |
| 193 | - Gitlab::Logger.error(ex.message) | ||
| 194 | - raise Gitolite::AccessDenied.new("gitolite timeout") | 194 | + if ex.message =~ /is not a valid SSH key string/ |
| 195 | + raise Gitolite::InvalidKey.new("ssh key is not valid") | ||
| 196 | + else | ||
| 197 | + Gitlab::Logger.error(ex.message) | ||
| 198 | + raise Gitolite::AccessDenied.new("gitolite timeout") | ||
| 199 | + end | ||
| 195 | end | 200 | end |
| 196 | end | 201 | end |
| 197 | end | 202 | end |