lhc 12.0.3 → 12.1.0
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 +4 -4
- data/README.md +16 -0
- data/lib/lhc/interceptors/auth.rb +9 -7
- data/lib/lhc/version.rb +1 -1
- data/spec/interceptors/auth/body_spec.rb +36 -0
- metadata +4 -2
    
        checksums.yaml
    CHANGED
    
    | @@ -1,7 +1,7 @@ | |
| 1 1 | 
             
            ---
         | 
| 2 2 | 
             
            SHA256:
         | 
| 3 | 
            -
              metadata.gz:  | 
| 4 | 
            -
              data.tar.gz:  | 
| 3 | 
            +
              metadata.gz: 20beb1550ea6286010ac46dd969bcdd8cdcc4dbb968d5ebbfdf3b591eb118fb1
         | 
| 4 | 
            +
              data.tar.gz: c219d6d5bfb4b7a00e7c2d2273162d2cf3b1d106742dc803e9abfaa0987c0fae
         | 
| 5 5 | 
             
            SHA512:
         | 
| 6 | 
            -
              metadata.gz:  | 
| 7 | 
            -
              data.tar.gz:  | 
| 6 | 
            +
              metadata.gz: 609167a963677ba5191a5579a43b9740c08b16be259041da52cb5459e5e5c0eb481361a4115323b6bfa1c444b068669760dc530a5cbaea35af747f63650cea62
         | 
| 7 | 
            +
              data.tar.gz: 47e4cbc20c4ab60befb908c719b0c7625a982325b7b756c48ceedec11f649c082c0715a26b0e8f76ce6124b1ef5dd2b0df475e1c13cfef568147b989a317dbe7
         | 
    
        data/README.md
    CHANGED
    
    | @@ -58,6 +58,7 @@ use it like: | |
| 58 58 | 
             
                    * [Authentication Interceptor](#authentication-interceptor)
         | 
| 59 59 | 
             
                       * [Bearer Authentication](#bearer-authentication)
         | 
| 60 60 | 
             
                       * [Basic Authentication](#basic-authentication)
         | 
| 61 | 
            +
                       * [Body Authentication](#body-authentication)
         | 
| 61 62 | 
             
                       * [Reauthenticate](#reauthenticate)
         | 
| 62 63 | 
             
                       * [Bearer Authentication with client access token](#bearer-authentication-with-client-access-token)
         | 
| 63 64 | 
             
                    * [Caching Interceptor](#caching-interceptor)
         | 
| @@ -92,6 +93,7 @@ use it like: | |
| 92 93 |  | 
| 93 94 |  | 
| 94 95 |  | 
| 96 | 
            +
             | 
| 95 97 | 
             
            ## Basic methods
         | 
| 96 98 |  | 
| 97 99 | 
             
            Available are `get`, `post`, `put` & `delete`.
         | 
| @@ -549,6 +551,20 @@ Adds the following header to the request: | |
| 549 551 |  | 
| 550 552 | 
             
            Which is the base64 encoded credentials "username:password".
         | 
| 551 553 |  | 
| 554 | 
            +
            ##### Body Authentication
         | 
| 555 | 
            +
             | 
| 556 | 
            +
            ```ruby
         | 
| 557 | 
            +
              LHC.post('http://local.ch', auth: { body: { userToken: 'dheur5hrk3' } })
         | 
| 558 | 
            +
            ```
         | 
| 559 | 
            +
             | 
| 560 | 
            +
            Adds the following to body of all requests:
         | 
| 561 | 
            +
             | 
| 562 | 
            +
            ```
         | 
| 563 | 
            +
              {
         | 
| 564 | 
            +
                "userToken": "dheur5hrk3"
         | 
| 565 | 
            +
              }
         | 
| 566 | 
            +
            ```
         | 
| 567 | 
            +
             | 
| 552 568 | 
             
            ##### Reauthenticate
         | 
| 553 569 |  | 
| 554 570 | 
             
            The current implementation can only offer reauthenticate for _client access tokens_. For this to work the following has to be given:
         | 
| @@ -4,8 +4,13 @@ class LHC::Auth < LHC::Interceptor | |
| 4 4 | 
             
              include ActiveSupport::Configurable
         | 
| 5 5 | 
             
              config_accessor :refresh_client_token
         | 
| 6 6 |  | 
| 7 | 
            +
              def before_raw_request
         | 
| 8 | 
            +
                body_authentication! if auth_options[:body]
         | 
| 9 | 
            +
              end
         | 
| 10 | 
            +
             | 
| 7 11 | 
             
              def before_request
         | 
| 8 | 
            -
                 | 
| 12 | 
            +
                bearer_authentication! if auth_options[:bearer]
         | 
| 13 | 
            +
                basic_authentication! if auth_options[:basic]
         | 
| 9 14 | 
             
              end
         | 
| 10 15 |  | 
| 11 16 | 
             
              def after_response
         | 
| @@ -16,12 +21,9 @@ class LHC::Auth < LHC::Interceptor | |
| 16 21 |  | 
| 17 22 | 
             
              private
         | 
| 18 23 |  | 
| 19 | 
            -
              def  | 
| 20 | 
            -
                 | 
| 21 | 
            -
             | 
| 22 | 
            -
                elsif auth_options[:basic]
         | 
| 23 | 
            -
                  basic_authentication!
         | 
| 24 | 
            -
                end
         | 
| 24 | 
            +
              def body_authentication!
         | 
| 25 | 
            +
                auth = auth_options[:body]
         | 
| 26 | 
            +
                request.options[:body] = (request.options[:body] || {}).merge(auth)
         | 
| 25 27 | 
             
              end
         | 
| 26 28 |  | 
| 27 29 | 
             
              def basic_authentication!
         | 
    
        data/lib/lhc/version.rb
    CHANGED
    
    
| @@ -0,0 +1,36 @@ | |
| 1 | 
            +
            # frozen_string_literal: true
         | 
| 2 | 
            +
             | 
| 3 | 
            +
            require 'rails_helper'
         | 
| 4 | 
            +
             | 
| 5 | 
            +
            describe LHC::Auth do
         | 
| 6 | 
            +
              before(:each) do
         | 
| 7 | 
            +
                LHC.config.interceptors = [LHC::Auth]
         | 
| 8 | 
            +
              end
         | 
| 9 | 
            +
             | 
| 10 | 
            +
              it 'adds body authentication to the existing request body' do
         | 
| 11 | 
            +
                stub_request(:post, "http://local.ch/")
         | 
| 12 | 
            +
                  .with(body: {
         | 
| 13 | 
            +
                    message: 'body',
         | 
| 14 | 
            +
                    userToken: 'dheur5hrk3'
         | 
| 15 | 
            +
                  }.to_json)
         | 
| 16 | 
            +
             | 
| 17 | 
            +
                LHC.post('http://local.ch', auth: { body: { userToken: 'dheur5hrk3' } }, body: {
         | 
| 18 | 
            +
                           message: 'body'
         | 
| 19 | 
            +
                         })
         | 
| 20 | 
            +
              end
         | 
| 21 | 
            +
             | 
| 22 | 
            +
              it 'adds body authentication to an empty request body' do
         | 
| 23 | 
            +
                stub_request(:post, "http://local.ch/")
         | 
| 24 | 
            +
                  .with(body: {
         | 
| 25 | 
            +
                    userToken: 'dheur5hrk3'
         | 
| 26 | 
            +
                  }.to_json)
         | 
| 27 | 
            +
             | 
| 28 | 
            +
                LHC.post('http://local.ch', auth: { body: { userToken: 'dheur5hrk3' } })
         | 
| 29 | 
            +
              end
         | 
| 30 | 
            +
             | 
| 31 | 
            +
              it 'adds nothing if request method is GET' do
         | 
| 32 | 
            +
                stub_request(:get, "http://local.ch/")
         | 
| 33 | 
            +
             | 
| 34 | 
            +
                LHC.get('http://local.ch', auth: { body: { userToken: 'dheur5hrk3' } })
         | 
| 35 | 
            +
              end
         | 
| 36 | 
            +
            end
         | 
    
        metadata
    CHANGED
    
    | @@ -1,14 +1,14 @@ | |
| 1 1 | 
             
            --- !ruby/object:Gem::Specification
         | 
| 2 2 | 
             
            name: lhc
         | 
| 3 3 | 
             
            version: !ruby/object:Gem::Version
         | 
| 4 | 
            -
              version: 12.0 | 
| 4 | 
            +
              version: 12.1.0
         | 
| 5 5 | 
             
            platform: ruby
         | 
| 6 6 | 
             
            authors:
         | 
| 7 7 | 
             
            - https://github.com/local-ch/lhc/contributors
         | 
| 8 8 | 
             
            autorequire: 
         | 
| 9 9 | 
             
            bindir: bin
         | 
| 10 10 | 
             
            cert_chain: []
         | 
| 11 | 
            -
            date: 2020-07- | 
| 11 | 
            +
            date: 2020-07-27 00:00:00.000000000 Z
         | 
| 12 12 | 
             
            dependencies:
         | 
| 13 13 | 
             
            - !ruby/object:Gem::Dependency
         | 
| 14 14 | 
             
              name: activesupport
         | 
| @@ -325,6 +325,7 @@ files: | |
| 325 325 | 
             
            - spec/interceptors/after_response_spec.rb
         | 
| 326 326 | 
             
            - spec/interceptors/auth/basic_auth_spec.rb
         | 
| 327 327 | 
             
            - spec/interceptors/auth/bearer_spec.rb
         | 
| 328 | 
            +
            - spec/interceptors/auth/body_spec.rb
         | 
| 328 329 | 
             
            - spec/interceptors/auth/long_basic_auth_credentials_spec.rb
         | 
| 329 330 | 
             
            - spec/interceptors/auth/reauthentication_configuration_spec.rb
         | 
| 330 331 | 
             
            - spec/interceptors/auth/reauthentication_spec.rb
         | 
| @@ -476,6 +477,7 @@ test_files: | |
| 476 477 | 
             
            - spec/interceptors/after_response_spec.rb
         | 
| 477 478 | 
             
            - spec/interceptors/auth/basic_auth_spec.rb
         | 
| 478 479 | 
             
            - spec/interceptors/auth/bearer_spec.rb
         | 
| 480 | 
            +
            - spec/interceptors/auth/body_spec.rb
         | 
| 479 481 | 
             
            - spec/interceptors/auth/long_basic_auth_credentials_spec.rb
         | 
| 480 482 | 
             
            - spec/interceptors/auth/reauthentication_configuration_spec.rb
         | 
| 481 483 | 
             
            - spec/interceptors/auth/reauthentication_spec.rb
         |