smart_proxy_container_gateway 1.0.5 → 1.0.6
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 6b202377506c454b212838c974ef30778b9342fc77c3caa694770b8255d9e643
|
4
|
+
data.tar.gz: 3207291839143bc9680c9562c68622e8e5c2bd8db35ff1dad1efc14bc72567fc
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: b1ae526f1337adbb209ccb8ba0beb17d6fa31507d54c82edf8f5f3bdd36025850b1eb1bf81cdab8a28bc9cd38e1a4e10e3e62445bbeec0c4f3e7f1f40917473c
|
7
|
+
data.tar.gz: 82e6da4388878b1acbf44b4f0a400ab0860310177805ac3173d67d879c60dc11b76592f69ff55455c2ac3404f1d002c042a88cf6b1d3afd0423b7b3aa6a786a9
|
@@ -25,15 +25,19 @@ module Proxy
|
|
25
25
|
end
|
26
26
|
end
|
27
27
|
|
28
|
-
get '/v2
|
29
|
-
|
30
|
-
|
28
|
+
get '/v2/*/manifests/*/?' do
|
29
|
+
repository = params[:splat][0]
|
30
|
+
tag = params[:splat][1]
|
31
|
+
handle_repo_auth(repository, auth_header, request)
|
32
|
+
redirection_location = Proxy::ContainerGateway.manifests(repository, tag)
|
31
33
|
redirect to(redirection_location)
|
32
34
|
end
|
33
35
|
|
34
|
-
get '/v2
|
35
|
-
|
36
|
-
|
36
|
+
get '/v2/*/blobs/*/?' do
|
37
|
+
repository = params[:splat][0]
|
38
|
+
digest = params[:splat][1]
|
39
|
+
handle_repo_auth(repository, auth_header, request)
|
40
|
+
redirection_location = Proxy::ContainerGateway.blobs(repository, digest)
|
37
41
|
redirect to(redirection_location)
|
38
42
|
end
|
39
43
|
|
@@ -130,7 +134,7 @@ module Proxy
|
|
130
134
|
|
131
135
|
private
|
132
136
|
|
133
|
-
def handle_repo_auth(
|
137
|
+
def handle_repo_auth(repository, auth_header, request)
|
134
138
|
user_token_is_valid = false
|
135
139
|
# FIXME: Getting unauthenticated token here...
|
136
140
|
if auth_header.present? && auth_header.valid_user_token?
|
@@ -139,7 +143,7 @@ module Proxy
|
|
139
143
|
end
|
140
144
|
username = request.params['account'] if username.nil?
|
141
145
|
|
142
|
-
return if Proxy::ContainerGateway.authorized_for_repo?(
|
146
|
+
return if Proxy::ContainerGateway.authorized_for_repo?(repository, user_token_is_valid, username)
|
143
147
|
|
144
148
|
redirect_authorization_headers
|
145
149
|
halt 401, "unauthorized"
|
@@ -92,6 +92,8 @@ module Proxy
|
|
92
92
|
RepositoryUser.dataset.delete
|
93
93
|
user_repo_maps['users'].each do |user_repo_map|
|
94
94
|
user_repo_map.each do |user, repos|
|
95
|
+
next if repos.nil?
|
96
|
+
|
95
97
|
repos.each do |repo|
|
96
98
|
found_repo = Repository.find(name: repo['repository'],
|
97
99
|
auth_required: repo['auth_required'].to_s.downcase == "true")
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: smart_proxy_container_gateway
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.0.
|
4
|
+
version: 1.0.6
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Ian Ballou
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2021-
|
11
|
+
date: 2021-09-29 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: sequel
|