mirror of
https://github.com/abapGit/abapGit.git
synced 2025-04-30 20:03:20 +08:00
fix login issue, close #251
This commit is contained in:
parent
296a3ff094
commit
39e95a36f6
|
@ -3,7 +3,7 @@ REPORT zabapgit.
|
|||
* See http://www.abapgit.org
|
||||
|
||||
CONSTANTS: gc_xml_version TYPE string VALUE 'v1.0.0', "#EC NOTEXT
|
||||
gc_abap_version TYPE string VALUE 'v1.11.12'. "#EC NOTEXT
|
||||
gc_abap_version TYPE string VALUE 'v1.11.13'. "#EC NOTEXT
|
||||
|
||||
********************************************************************************
|
||||
* The MIT License (MIT)
|
||||
|
@ -17752,18 +17752,21 @@ CLASS lcl_login_manager DEFINITION FINAL.
|
|||
PUBLIC SECTION.
|
||||
CLASS-METHODS:
|
||||
load
|
||||
IMPORTING iv_uri TYPE string
|
||||
ii_client TYPE REF TO if_http_client
|
||||
IMPORTING iv_uri TYPE string
|
||||
ii_client TYPE REF TO if_http_client OPTIONAL
|
||||
RETURNING VALUE(rv_authorization) TYPE string
|
||||
RAISING lcx_exception,
|
||||
save
|
||||
IMPORTING iv_uri TYPE string
|
||||
ii_client TYPE REF TO if_http_client
|
||||
RAISING lcx_exception,
|
||||
clear,
|
||||
set
|
||||
IMPORTING iv_uri TYPE string
|
||||
iv_username TYPE string
|
||||
iv_password TYPE string
|
||||
RETURNING VALUE(rv_auth) TYPE string.
|
||||
RETURNING VALUE(rv_auth) TYPE string
|
||||
RAISING lcx_exception.
|
||||
|
||||
PRIVATE SECTION.
|
||||
TYPES: BEGIN OF ty_auth,
|
||||
|
@ -17776,32 +17779,72 @@ CLASS lcl_login_manager DEFINITION FINAL.
|
|||
CLASS-METHODS:
|
||||
append
|
||||
IMPORTING iv_uri TYPE string
|
||||
iv_auth TYPE string.
|
||||
iv_auth TYPE string
|
||||
RAISING lcx_exception.
|
||||
|
||||
ENDCLASS.
|
||||
|
||||
CLASS ltcl_login_manager DEFINITION FOR TESTING RISK LEVEL HARMLESS DURATION SHORT FINAL.
|
||||
|
||||
PRIVATE SECTION.
|
||||
CONSTANTS: c_username TYPE string VALUE 'Aladdin',
|
||||
c_password TYPE string VALUE 'OpenSesame'.
|
||||
|
||||
METHODS:
|
||||
test1 FOR TESTING.
|
||||
setup,
|
||||
teardown,
|
||||
encoding FOR TESTING
|
||||
RAISING lcx_exception,
|
||||
same_server FOR TESTING
|
||||
RAISING lcx_exception.
|
||||
|
||||
ENDCLASS.
|
||||
|
||||
CLASS ltcl_login_manager IMPLEMENTATION.
|
||||
|
||||
METHOD test1.
|
||||
METHOD setup.
|
||||
lcl_login_manager=>clear( ).
|
||||
ENDMETHOD.
|
||||
|
||||
METHOD teardown.
|
||||
lcl_login_manager=>clear( ).
|
||||
ENDMETHOD.
|
||||
|
||||
METHOD encoding.
|
||||
|
||||
DATA: lv_auth TYPE string.
|
||||
|
||||
lv_auth = lcl_login_manager=>set(
|
||||
iv_uri = 'foobar'
|
||||
iv_username = 'Aladdin'
|
||||
iv_password = 'OpenSesame' ).
|
||||
iv_uri = 'https://github.com/larshp/abapGit.git'
|
||||
iv_username = c_username
|
||||
iv_password = c_password ).
|
||||
|
||||
cl_abap_unit_assert=>assert_equals(
|
||||
act = lv_auth
|
||||
exp = 'Basic QWxhZGRpbjpPcGVuU2VzYW1l' ).
|
||||
act = lv_auth
|
||||
exp = 'Basic QWxhZGRpbjpPcGVuU2VzYW1l' ).
|
||||
|
||||
ENDMETHOD.
|
||||
|
||||
METHOD same_server.
|
||||
|
||||
CONSTANTS: lc_github1 TYPE string VALUE 'https://github.com/larshp/abapGit.git',
|
||||
lc_github2 TYPE string VALUE 'https://github.com/larshp/Foobar.git'.
|
||||
|
||||
DATA: lv_auth1 TYPE string,
|
||||
lv_auth2 TYPE string.
|
||||
|
||||
|
||||
lcl_login_manager=>set(
|
||||
iv_uri = lc_github1
|
||||
iv_username = c_username
|
||||
iv_password = c_password ).
|
||||
|
||||
lv_auth1 = lcl_login_manager=>load( lc_github1 ).
|
||||
lv_auth2 = lcl_login_manager=>load( lc_github2 ).
|
||||
|
||||
cl_abap_unit_assert=>assert_equals(
|
||||
act = lv_auth1
|
||||
exp = lv_auth2 ).
|
||||
|
||||
ENDMETHOD.
|
||||
|
||||
|
@ -17809,6 +17852,10 @@ ENDCLASS.
|
|||
|
||||
CLASS lcl_login_manager IMPLEMENTATION.
|
||||
|
||||
METHOD clear.
|
||||
CLEAR gt_auth.
|
||||
ENDMETHOD.
|
||||
|
||||
METHOD set.
|
||||
|
||||
DATA: lv_concat TYPE string.
|
||||
|
@ -17836,12 +17883,16 @@ CLASS lcl_login_manager IMPLEMENTATION.
|
|||
DATA: ls_auth LIKE LINE OF gt_auth.
|
||||
|
||||
|
||||
READ TABLE gt_auth INTO ls_auth WITH KEY uri = iv_uri.
|
||||
READ TABLE gt_auth INTO ls_auth WITH KEY uri = lcl_url=>host( iv_uri ).
|
||||
IF sy-subrc = 0.
|
||||
ii_client->request->set_header_field(
|
||||
rv_authorization = ls_auth-authorization.
|
||||
|
||||
IF NOT ii_client IS INITIAL.
|
||||
ii_client->request->set_header_field(
|
||||
name = 'authorization'
|
||||
value = ls_auth-authorization ). "#EC NOTEXT
|
||||
ii_client->propertytype_logon_popup = ii_client->co_disabled.
|
||||
ii_client->propertytype_logon_popup = ii_client->co_disabled.
|
||||
ENDIF.
|
||||
ENDIF.
|
||||
|
||||
ENDMETHOD.
|
||||
|
@ -17851,10 +17902,10 @@ CLASS lcl_login_manager IMPLEMENTATION.
|
|||
DATA: lv_auth TYPE string.
|
||||
|
||||
|
||||
lv_auth = ii_client->request->get_header_field( 'authorization' ). "#EC NOTEXT
|
||||
lv_auth = ii_client->request->get_header_field( 'authorization' ). "#EC NOTEXT
|
||||
|
||||
IF NOT lv_auth IS INITIAL.
|
||||
append( iv_uri = iv_uri
|
||||
append( iv_uri = iv_uri
|
||||
iv_auth = lv_auth ).
|
||||
ENDIF.
|
||||
|
||||
|
@ -17868,7 +17919,7 @@ CLASS lcl_login_manager IMPLEMENTATION.
|
|||
READ TABLE gt_auth WITH KEY uri = iv_uri TRANSPORTING NO FIELDS.
|
||||
IF sy-subrc <> 0.
|
||||
APPEND INITIAL LINE TO gt_auth ASSIGNING <ls_auth>.
|
||||
<ls_auth>-uri = iv_uri.
|
||||
<ls_auth>-uri = lcl_url=>host( iv_uri ).
|
||||
<ls_auth>-authorization = iv_auth.
|
||||
ENDIF.
|
||||
|
||||
|
|
Loading…
Reference in New Issue
Block a user