Fix remaining remarks
This commit is contained in:
parent
ef7ea1a855
commit
58aef5658b
8 changed files with 65 additions and 58 deletions
|
|
@ -97,7 +97,7 @@ module Api
|
||||||
if seconds.nil?
|
if seconds.nil?
|
||||||
false
|
false
|
||||||
else
|
else
|
||||||
(Time.zone.now.utc.to_i - current_user.current_sign_in_at.to_i) > seconds.to_i
|
(Time.now - current_user.current_sign_in_at) > seconds.to_i
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -55,7 +55,6 @@ module Api
|
||||||
logger.info e.backtrace[0, 10].join("\n")
|
logger.info e.backtrace[0, 10].join("\n")
|
||||||
render json: {error: :invalid_grant, error_description: e.message, status: 400}
|
render json: {error: :invalid_grant, error_description: e.message, status: 400}
|
||||||
end
|
end
|
||||||
|
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
|
||||||
|
|
@ -76,13 +76,14 @@ module Api
|
||||||
supported_metadata.each_with_object({}) do |key, attr|
|
supported_metadata.each_with_object({}) do |key, attr|
|
||||||
value = registrar.public_send(key)
|
value = registrar.public_send(key)
|
||||||
next unless value
|
next unless value
|
||||||
if key == :subject_type
|
case key
|
||||||
|
when :subject_type
|
||||||
attr[:ppid] = (value == "pairwise")
|
attr[:ppid] = (value == "pairwise")
|
||||||
elsif key == :jwks_uri
|
when :jwks_uri
|
||||||
response = Faraday.get(value)
|
response = Faraday.get(value)
|
||||||
attr[:jwks] = response.body
|
attr[:jwks] = response.body
|
||||||
attr[:jwks_uri] = value
|
attr[:jwks_uri] = value
|
||||||
elsif key == :jwks
|
when :jwks
|
||||||
attr[:jwks] = value.to_json
|
attr[:jwks] = value.to_json
|
||||||
else
|
else
|
||||||
attr[key] = value
|
attr[key] = value
|
||||||
|
|
|
||||||
|
|
@ -1,11 +1,11 @@
|
||||||
Rails.application.config.middleware.insert 0, Rack::Cors do
|
Rails.application.config.middleware.insert 0, Rack::Cors do
|
||||||
allow do
|
allow do
|
||||||
origins "*"
|
origins "*"
|
||||||
resource "/.well-known/host-meta"
|
|
||||||
resource "/webfinger"
|
|
||||||
resource "/.well-known/webfinger"
|
|
||||||
resource "/.well-known/openid-configuration"
|
|
||||||
resource "/api/openid_connect/user_info", methods: %i(get post)
|
resource "/api/openid_connect/user_info", methods: %i(get post)
|
||||||
resource "/api/v0/*", methods: %i(delete get post)
|
resource "/api/v0/*", methods: %i(delete get post)
|
||||||
|
resource "/.well-known/host-meta"
|
||||||
|
resource "/.well-known/webfinger"
|
||||||
|
resource "/.well-known/openid-configuration"
|
||||||
|
resource "/webfinger"
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
|
||||||
|
|
@ -919,8 +919,8 @@ en:
|
||||||
description: "This allows the application to send new posts, write conversations, and send reactions"
|
description: "This allows the application to send new posts, write conversations, and send reactions"
|
||||||
error_page:
|
error_page:
|
||||||
title: "Oh! Something went wrong :("
|
title: "Oh! Something went wrong :("
|
||||||
contact_developer: "You should contact the developer of the application and include the following detailed message error:"
|
contact_developer: "You should contact the developer of the application and include the following detailed error message:"
|
||||||
login_required: "You must first login before authorize this application"
|
login_required: "You must first login before you can authorize this application"
|
||||||
could_not_authorize: "The application could not be authorized"
|
could_not_authorize: "The application could not be authorized"
|
||||||
|
|
||||||
people:
|
people:
|
||||||
|
|
|
||||||
|
|
@ -35,5 +35,5 @@ Then /^I should receive an "([^\"]*)" error$/ do |error_message|
|
||||||
end
|
end
|
||||||
|
|
||||||
Then(/^I should see a message containing "(.*?)"$/) do |message|
|
Then(/^I should see a message containing "(.*?)"$/) do |message|
|
||||||
expect(find("#openid_connect_error_description").text).to eq(message)
|
expect(find("#openid_connect_error_description").text).to include(message)
|
||||||
end
|
end
|
||||||
|
|
|
||||||
|
|
@ -356,7 +356,7 @@ describe Api::OpenidConnect::AuthorizationsController, type: :controller do
|
||||||
it "raises an error" do
|
it "raises an error" do
|
||||||
delete :destroy, id: 123_456_789
|
delete :destroy, id: 123_456_789
|
||||||
expect(response).to redirect_to(api_openid_connect_user_applications_url)
|
expect(response).to redirect_to(api_openid_connect_user_applications_url)
|
||||||
expect(flash[:error]).to eq("The attempt to revoke the authorization with ID 123456789 has failed")
|
expect(flash[:error]).to eq("The attempt to revoke the authorization with ID 123456789 failed")
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
|
||||||
|
|
@ -5,8 +5,11 @@ describe Api::OpenidConnect::ClientsController, type: :controller do
|
||||||
context "when valid parameters are passed" do
|
context "when valid parameters are passed" do
|
||||||
it "should return a client id" do
|
it "should return a client id" do
|
||||||
stub_request(:get, "http://example.com/uris")
|
stub_request(:get, "http://example.com/uris")
|
||||||
.with(headers: {"Accept" => "*/*", "Accept-Encoding" => "gzip;q=1.0,deflate;q=0.6,identity;q=0.3",
|
.with(headers: {
|
||||||
"User-Agent" => "Faraday v0.9.2"})
|
"Accept" => "*/*",
|
||||||
|
"Accept-Encoding" => "gzip;q=1.0,deflate;q=0.6,identity;q=0.3",
|
||||||
|
"User-Agent" => "Faraday v0.9.2"
|
||||||
|
})
|
||||||
.to_return(status: 200, body: "[\"http://localhost\"]", headers: {})
|
.to_return(status: 200, body: "[\"http://localhost\"]", headers: {})
|
||||||
post :create, redirect_uris: ["http://localhost"], client_name: "diaspora client",
|
post :create, redirect_uris: ["http://localhost"], client_name: "diaspora client",
|
||||||
response_types: [], grant_types: [], application_type: "web", contacts: [],
|
response_types: [], grant_types: [], application_type: "web", contacts: [],
|
||||||
|
|
@ -22,8 +25,10 @@ describe Api::OpenidConnect::ClientsController, type: :controller do
|
||||||
context "when valid parameters with jwks is passed" do
|
context "when valid parameters with jwks is passed" do
|
||||||
it "should return a client id" do
|
it "should return a client id" do
|
||||||
stub_request(:get, "http://example.com/uris")
|
stub_request(:get, "http://example.com/uris")
|
||||||
.with(headers: {"Accept" => "*/*", "Accept-Encoding" => "gzip;q=1.0,deflate;q=0.6,identity;q=0.3",
|
.with(headers: {
|
||||||
"User-Agent" => "Faraday v0.9.2"})
|
"Accept" => "*/*",
|
||||||
|
"Accept-Encoding" => "gzip;q=1.0,deflate;q=0.6,identity;q=0.3",
|
||||||
|
"User-Agent" => "Faraday v0.9.2"})
|
||||||
.to_return(status: 200, body: "[\"http://localhost\"]", headers: {})
|
.to_return(status: 200, body: "[\"http://localhost\"]", headers: {})
|
||||||
post :create, redirect_uris: ["http://localhost"], client_name: "diaspora client",
|
post :create, redirect_uris: ["http://localhost"], client_name: "diaspora client",
|
||||||
response_types: [], grant_types: [], application_type: "web", contacts: [],
|
response_types: [], grant_types: [], application_type: "web", contacts: [],
|
||||||
|
|
@ -33,43 +38,43 @@ describe Api::OpenidConnect::ClientsController, type: :controller do
|
||||||
token_endpoint_auth_method: "private_key_jwt",
|
token_endpoint_auth_method: "private_key_jwt",
|
||||||
jwks: {
|
jwks: {
|
||||||
keys:
|
keys:
|
||||||
[
|
[
|
||||||
{
|
{
|
||||||
use: "enc",
|
use: "enc",
|
||||||
e: "AQAB",
|
e: "AQAB",
|
||||||
d: "-lTBWkI-----lvCO6tuiDsR4qgJnUwnndQFwEI_4mLmD3iNWXrc8N--5Cjq55eLtuJjtvuQ",
|
d: "-lTBWkI-----lvCO6tuiDsR4qgJnUwnndQFwEI_4mLmD3iNWXrc8N--5Cjq55eLtuJjtvuQ",
|
||||||
n: "--zYRQNDvIVsBDLQQIgrbctuGqj6lrXb31Jj3JIEYqH_4h5X9d0Q",
|
n: "--zYRQNDvIVsBDLQQIgrbctuGqj6lrXb31Jj3JIEYqH_4h5X9d0Q",
|
||||||
q: "1q-r----pFtyTz_JksYYaotc_Z3Zy-Szw6a39IDbuYGy1qL-15oQuc",
|
q: "1q-r----pFtyTz_JksYYaotc_Z3Zy-Szw6a39IDbuYGy1qL-15oQuc",
|
||||||
p: "-BfRjdgYouy4c6xAnGDgSMTip1YnPRyvbMaoYT9E_tEcBW5wOeoc",
|
p: "-BfRjdgYouy4c6xAnGDgSMTip1YnPRyvbMaoYT9E_tEcBW5wOeoc",
|
||||||
kid: "a0",
|
kid: "a0",
|
||||||
kty: "RSA"
|
kty: "RSA"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
use: "sig",
|
use: "sig",
|
||||||
e: "AQAB",
|
e: "AQAB",
|
||||||
d: "--x-gW---LRPowKrdvTuTo2p--HMI0pIEeFs7H_u5OW3jihjvoFClGPynHQhgWmQzlQRvWRXh6FhDVqFeGQ",
|
d: "--x-gW---LRPowKrdvTuTo2p--HMI0pIEeFs7H_u5OW3jihjvoFClGPynHQhgWmQzlQRvWRXh6FhDVqFeGQ",
|
||||||
n: "---TyeadDqQPWgbqX69UzcGq5irhzN8cpZ_JaTk3Y_uV6owanTZLVvCgdjaAnMYeZhb0KFw",
|
n: "---TyeadDqQPWgbqX69UzcGq5irhzN8cpZ_JaTk3Y_uV6owanTZLVvCgdjaAnMYeZhb0KFw",
|
||||||
q: "5E5XKK5njT--Hx3nF5sne5fleVfU-sZy6Za4B2U75PcE62oZgCPauOTAEm9Xuvrt5aMMovyzR8ecJZhm9bw7naU",
|
q: "5E5XKK5njT--Hx3nF5sne5fleVfU-sZy6Za4B2U75PcE62oZgCPauOTAEm9Xuvrt5aMMovyzR8ecJZhm9bw7naU",
|
||||||
p: "-BUGA-",
|
p: "-BUGA-",
|
||||||
kid: "a1",
|
kid: "a1",
|
||||||
kty: "RSA"},
|
kty: "RSA"},
|
||||||
{
|
{
|
||||||
use: "sig",
|
use: "sig",
|
||||||
crv: "P-256",
|
crv: "P-256",
|
||||||
kty: "EC",
|
kty: "EC",
|
||||||
y: "Yg4IRzHBMIsuQK2Oz0Uukp1aNDnpdoyk6QBMtmfGHQQ",
|
y: "Yg4IRzHBMIsuQK2Oz0Uukp1aNDnpdoyk6QBMtmfGHQQ",
|
||||||
x: "L0WUeVlc9r6YJd6ie9duvOU1RHwxSkJKA37IK9B4Bpc",
|
x: "L0WUeVlc9r6YJd6ie9duvOU1RHwxSkJKA37IK9B4Bpc",
|
||||||
kid: "a2"
|
kid: "a2"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
use: "enc",
|
use: "enc",
|
||||||
crv: "P-256",
|
crv: "P-256",
|
||||||
kty: "EC",
|
kty: "EC",
|
||||||
y: "E6E6g5_ziIZvfdAoACctnwOhuQYMvQzA259aftPn59M",
|
y: "E6E6g5_ziIZvfdAoACctnwOhuQYMvQzA259aftPn59M",
|
||||||
x: "Yu8_BQE2L0f1MqnK0GumZOaj_77Tx70-LoudyRUnLM4",
|
x: "Yu8_BQE2L0f1MqnK0GumZOaj_77Tx70-LoudyRUnLM4",
|
||||||
kid: "a3"
|
kid: "a3"
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
client_json = JSON.parse(response.body)
|
client_json = JSON.parse(response.body)
|
||||||
expect(client_json["client_id"].length).to eq(32)
|
expect(client_json["client_id"].length).to eq(32)
|
||||||
|
|
@ -80,12 +85,14 @@ describe Api::OpenidConnect::ClientsController, type: :controller do
|
||||||
context "when valid parameters with jwks_uri is passed" do
|
context "when valid parameters with jwks_uri is passed" do
|
||||||
it "should return a client id" do
|
it "should return a client id" do
|
||||||
stub_request(:get, "http://example.com/uris")
|
stub_request(:get, "http://example.com/uris")
|
||||||
.with(headers: {"Accept" => "*/*", "Accept-Encoding" => "gzip;q=1.0,deflate;q=0.6,identity;q=0.3",
|
.with(headers: {"Accept" => "*/*",
|
||||||
"User-Agent" => "Faraday v0.9.2"})
|
"Accept-Encoding" => "gzip;q=1.0,deflate;q=0.6,identity;q=0.3",
|
||||||
|
"User-Agent" => "Faraday v0.9.2"})
|
||||||
.to_return(status: 200, body: "[\"http://localhost\"]", headers: {})
|
.to_return(status: 200, body: "[\"http://localhost\"]", headers: {})
|
||||||
stub_request(:get, "https://kentshikama.com/api/openid_connect/jwks.json")
|
stub_request(:get, "https://kentshikama.com/api/openid_connect/jwks.json")
|
||||||
.with(headers: {"Accept" => "*/*", "Accept-Encoding" => "gzip;q=1.0,deflate;q=0.6,identity;q=0.3",
|
.with(headers: {"Accept" => "*/*",
|
||||||
"User-Agent" => "Faraday v0.9.2"})
|
"Accept-Encoding" => "gzip;q=1.0,deflate;q=0.6,identity;q=0.3",
|
||||||
|
"User-Agent" => "Faraday v0.9.2"})
|
||||||
.to_return(status: 200,
|
.to_return(status: 200,
|
||||||
body: "{\"keys\":[{\"kty\":\"RSA\",\"e\":\"AQAB\",\"n\":\"qpW\",\"use\":\"sig\"}]}", headers: {})
|
body: "{\"keys\":[{\"kty\":\"RSA\",\"e\":\"AQAB\",\"n\":\"qpW\",\"use\":\"sig\"}]}", headers: {})
|
||||||
post :create, redirect_uris: ["http://localhost"], client_name: "diaspora client",
|
post :create, redirect_uris: ["http://localhost"], client_name: "diaspora client",
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue