Gracefully handle wrong capitalization of username
All checks were successful
continuous-integration/drone/push Build is passing
continuous-integration/drone/pr Build is passing

This commit is contained in:
Râu Cao 2024-09-25 00:20:30 +02:00
parent 1b72c97f42
commit 534e5a9d3c
Signed by: raucao
GPG Key ID: 37036C356E56CC51
2 changed files with 10 additions and 1 deletions

View File

@ -3,7 +3,7 @@ class WebKeyDirectoryController < WellKnownController
# /.well-known/openpgpkey/hu/:hashed_username(.txt) # /.well-known/openpgpkey/hu/:hashed_username(.txt)
def show def show
@user = User.find_by(cn: params[:l]) @user = User.find_by(cn: params[:l].downcase)
if @user.nil? || if @user.nil? ||
@user.pgp_pubkey.empty? || @user.pgp_pubkey.empty? ||

View File

@ -64,6 +64,15 @@ RSpec.describe "OpenPGP Web Key Directory", type: :request do
expect(response.body).to eq(expected_binary_data) expect(response.body).to eq(expected_binary_data)
end end
context "with wrong capitalization of username" do
it "returns the pubkey as ASCII Armor plain text" do
get "/.well-known/openpgpkey/hu/yuca4ky39mhwkjo78qb8zjgbfj1hg3yf?l=JimmY"
expect(response).to have_http_status(:ok)
expected_binary_data = File.binread("#{Rails.root}/spec/fixtures/files/pgp_key_valid_jimmy.pem")
expect(response.body).to eq(expected_binary_data)
end
end
context "with .txt extension" do context "with .txt extension" do
it "returns the pubkey as ASCII Armor plain text" do it "returns the pubkey as ASCII Armor plain text" do
get "/.well-known/openpgpkey/hu/yuca4ky39mhwkjo78qb8zjgbfj1hg3yf.txt?l=jimmy" get "/.well-known/openpgpkey/hu/yuca4ky39mhwkjo78qb8zjgbfj1hg3yf.txt?l=jimmy"