Skip to content
Snippets Groups Projects
Verified Commit a7827f9b authored by Radamanthus Batnag's avatar Radamanthus Batnag :speech_balloon: Committed by GitLab
Browse files

Merge branch '477182-dependency-proxy-strong-params' into 'master'

Update dependency proxy controllers to use StrongParams

See merge request !163384



Merged-by: default avatarRadamanthus Batnag <rbatnag@gitlab.com>
Approved-by: default avatarDzmitry (Dima) Meshcharakou <12459192-dmeshcharakou@users.noreply.gitlab.com>
Approved-by: default avatarRadamanthus Batnag <rbatnag@gitlab.com>
Co-authored-by: default avatarPankaj Ahuja <ray.pankaj@gmail.com>
parents 7c77c8f1 58cbfabb
No related branches found
No related tags found
2 merge requests!170053Security patch upgrade alert: Only expose to admins 17-4,!163384Update dependency proxy controllers to use StrongParams
Pipeline #1479707178 passed with warnings
Pipeline: E2E Omnibus GitLab EE

#1479710626

    Pipeline: E2E CNG

    #1479710617

      Pipeline: E2E GDK

      #1479708686

        +30
        ...@@ -67,8 +67,6 @@ Rails/StrongParams: ...@@ -67,8 +67,6 @@ Rails/StrongParams:
        - 'app/controllers/groups/boards_controller.rb' - 'app/controllers/groups/boards_controller.rb'
        - 'app/controllers/groups/children_controller.rb' - 'app/controllers/groups/children_controller.rb'
        - 'app/controllers/groups/clusters_controller.rb' - 'app/controllers/groups/clusters_controller.rb'
        - 'app/controllers/groups/dependency_proxy/application_controller.rb'
        - 'app/controllers/groups/dependency_proxy_for_containers_controller.rb'
        - 'app/controllers/groups/deploy_tokens_controller.rb' - 'app/controllers/groups/deploy_tokens_controller.rb'
        - 'app/controllers/groups/group_links_controller.rb' - 'app/controllers/groups/group_links_controller.rb'
        - 'app/controllers/groups/group_members_controller.rb' - 'app/controllers/groups/group_members_controller.rb'
        ......
        ...@@ -19,6 +19,8 @@ class Groups::DependencyProxyForContainersController < ::Groups::DependencyProxy ...@@ -19,6 +19,8 @@ class Groups::DependencyProxyForContainersController < ::Groups::DependencyProxy
        feature_category :virtual_registry feature_category :virtual_registry
        urgency :low urgency :low
        PERMITTED_PARAMS = [:image, :tag, :file, :sha, :group_id].freeze
        def manifest def manifest
        result = DependencyProxy::FindCachedManifestService.new(group, image, tag, token).execute result = DependencyProxy::FindCachedManifestService.new(group, image, tag, token).execute
        ...@@ -42,7 +44,7 @@ def blob ...@@ -42,7 +44,7 @@ def blob
        send_upload(blob.file) send_upload(blob.file)
        else else
        send_dependency(token_header, DependencyProxy::Registry.blob_url(image, params[:sha]), blob_file_name) send_dependency(token_header, DependencyProxy::Registry.blob_url(image, permitted_params[:sha]), blob_file_name)
        end end
        end end
        ...@@ -55,8 +57,8 @@ def authorize_upload_blob ...@@ -55,8 +57,8 @@ def authorize_upload_blob
        def upload_blob def upload_blob
        @group.dependency_proxy_blobs.create!( @group.dependency_proxy_blobs.create!(
        file_name: blob_file_name, file_name: blob_file_name,
        file: params[:file], file: permitted_params[:file],
        size: params[:file].size size: permitted_params[:file].size
        ) )
        event_name = tracking_event_name(object_type: :blob, from_cache: false) event_name = tracking_event_name(object_type: :blob, from_cache: false)
        ...@@ -76,8 +78,8 @@ def upload_manifest ...@@ -76,8 +78,8 @@ def upload_manifest
        file_name: manifest_file_name, file_name: manifest_file_name,
        content_type: request.headers[Gitlab::Workhorse::SEND_DEPENDENCY_CONTENT_TYPE_HEADER], content_type: request.headers[Gitlab::Workhorse::SEND_DEPENDENCY_CONTENT_TYPE_HEADER],
        digest: request.headers[DependencyProxy::Manifest::DIGEST_HEADER], digest: request.headers[DependencyProxy::Manifest::DIGEST_HEADER],
        file: params[:file], file: permitted_params[:file],
        size: params[:file].size size: permitted_params[:file].size
        } }
        manifest = @group.dependency_proxy_manifests manifest = @group.dependency_proxy_manifests
        ...@@ -99,7 +101,7 @@ def upload_manifest ...@@ -99,7 +101,7 @@ def upload_manifest
        private private
        def group def group
        Group.find_by_full_path(params[:group_id], follow_redirects: true) Group.find_by_full_path(permitted_params[:group_id], follow_redirects: true)
        end end
        strong_memoize_attr :group strong_memoize_attr :group
        ...@@ -122,7 +124,7 @@ def send_manifest(manifest, from_cache:) ...@@ -122,7 +124,7 @@ def send_manifest(manifest, from_cache:)
        end end
        def blob_file_name def blob_file_name
        @blob_file_name ||= "#{params[:sha].sub('sha256:', '')}.gz" @blob_file_name ||= "#{permitted_params[:sha].sub('sha256:', '')}.gz"
        end end
        def manifest_file_name def manifest_file_name
        ...@@ -130,11 +132,15 @@ def manifest_file_name ...@@ -130,11 +132,15 @@ def manifest_file_name
        end end
        def image def image
        params[:image] permitted_params[:image]
        end end
        def tag def tag
        params[:tag] permitted_params[:tag]
        end
        def permitted_params
        params.permit(PERMITTED_PARAMS)
        end end
        def tracking_event_name(object_type:, from_cache:) def tracking_event_name(object_type:, from_cache:)
        ......
        0% Loading or .
        You are about to add 0 people to the discussion. Proceed with caution.
        Finish editing this message first!
        Please register or to comment