Remove jwt validation for jschorr to fix later
Refactor oauth validate method to take config over entire appconfig
This commit is contained in:
parent
7df8ed4a60
commit
301cc6992a
27 changed files with 136 additions and 76 deletions
22
util/secscan/secscan_util.py
Normal file
22
util/secscan/secscan_util.py
Normal file
|
@ -0,0 +1,22 @@
|
|||
from urlparse import urljoin
|
||||
|
||||
from flask import url_for
|
||||
|
||||
|
||||
def get_blob_download_uri_getter(context, url_scheme_and_hostname):
|
||||
"""
|
||||
Returns a function with context to later generate the uri for a download blob
|
||||
:param context: Flask RequestContext
|
||||
:param url_scheme_and_hostname: URLSchemeAndHostname class instance
|
||||
:return: function (repository_and_namespace, checksum) -> uri
|
||||
"""
|
||||
def create_uri(repository_and_namespace, checksum):
|
||||
"""
|
||||
Creates a uri for a download blob from a repository, namespace, and checksum from earlier context
|
||||
"""
|
||||
with context:
|
||||
relative_layer_url = url_for('v2.download_blob', repository=repository_and_namespace,
|
||||
digest=checksum)
|
||||
return urljoin(url_scheme_and_hostname.get_url(), relative_layer_url)
|
||||
|
||||
return create_uri
|
19
util/secscan/test/test_secscan_util.py
Normal file
19
util/secscan/test/test_secscan_util.py
Normal file
|
@ -0,0 +1,19 @@
|
|||
import pytest
|
||||
|
||||
from app import app
|
||||
from util.config import URLSchemeAndHostname
|
||||
from util.secscan.secscan_util import get_blob_download_uri_getter
|
||||
|
||||
from test.fixtures import *
|
||||
|
||||
@pytest.mark.parametrize('url_scheme_and_hostname, repo_namespace, checksum, expected_value,', [
|
||||
(URLSchemeAndHostname('http', 'localhost:5000'),
|
||||
'devtable/simple', 'tarsum+sha256:123',
|
||||
'http://localhost:5000/v2/devtable/simple/blobs/tarsum+sha256:123'),
|
||||
])
|
||||
def test_blob_download_uri_getter(app, url_scheme_and_hostname,
|
||||
repo_namespace, checksum,
|
||||
expected_value):
|
||||
blob_uri_getter = get_blob_download_uri_getter(app.test_request_context('/'), url_scheme_and_hostname)
|
||||
|
||||
assert blob_uri_getter(repo_namespace, checksum) == expected_value
|
Reference in a new issue