mirror of
https://github.com/abapGit/abapGit.git
synced 2025-05-01 12:20:51 +08:00
lcl_login_manager to global
This commit is contained in:
parent
0c916d48f1
commit
956a15b5fa
139
src/utils/zcl_abapgit_login_manager.clas.abap
Normal file
139
src/utils/zcl_abapgit_login_manager.clas.abap
Normal file
|
@ -0,0 +1,139 @@
|
||||||
|
CLASS zcl_abapgit_login_manager DEFINITION
|
||||||
|
PUBLIC
|
||||||
|
FINAL
|
||||||
|
CREATE PUBLIC .
|
||||||
|
|
||||||
|
PUBLIC SECTION.
|
||||||
|
|
||||||
|
CLASS-METHODS:
|
||||||
|
load
|
||||||
|
IMPORTING
|
||||||
|
!iv_uri TYPE string
|
||||||
|
!ii_client TYPE REF TO if_http_client OPTIONAL
|
||||||
|
RETURNING
|
||||||
|
VALUE(rv_authorization) TYPE string
|
||||||
|
RAISING
|
||||||
|
zcx_abapgit_exception,
|
||||||
|
|
||||||
|
save
|
||||||
|
IMPORTING
|
||||||
|
!iv_uri TYPE string
|
||||||
|
!ii_client TYPE REF TO if_http_client
|
||||||
|
RAISING
|
||||||
|
zcx_abapgit_exception,
|
||||||
|
|
||||||
|
clear,
|
||||||
|
|
||||||
|
set
|
||||||
|
IMPORTING
|
||||||
|
!iv_uri TYPE string
|
||||||
|
!iv_username TYPE string
|
||||||
|
!iv_password TYPE string
|
||||||
|
RETURNING
|
||||||
|
VALUE(rv_auth) TYPE string
|
||||||
|
RAISING
|
||||||
|
zcx_abapgit_exception .
|
||||||
|
|
||||||
|
PRIVATE SECTION.
|
||||||
|
|
||||||
|
TYPES:
|
||||||
|
BEGIN OF ty_auth,
|
||||||
|
uri TYPE string,
|
||||||
|
authorization TYPE string,
|
||||||
|
END OF ty_auth .
|
||||||
|
|
||||||
|
CLASS-DATA:
|
||||||
|
gt_auth TYPE TABLE OF ty_auth WITH DEFAULT KEY.
|
||||||
|
|
||||||
|
CLASS-METHODS:
|
||||||
|
append
|
||||||
|
IMPORTING
|
||||||
|
!iv_uri TYPE string
|
||||||
|
!iv_auth TYPE string
|
||||||
|
RAISING
|
||||||
|
zcx_abapgit_exception.
|
||||||
|
|
||||||
|
ENDCLASS.
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
CLASS zcl_abapgit_login_manager IMPLEMENTATION.
|
||||||
|
|
||||||
|
METHOD append.
|
||||||
|
|
||||||
|
FIELD-SYMBOLS: <ls_auth> LIKE LINE OF gt_auth.
|
||||||
|
|
||||||
|
READ TABLE gt_auth WITH KEY uri = zcl_abapgit_url=>host( iv_uri )
|
||||||
|
TRANSPORTING NO FIELDS.
|
||||||
|
IF sy-subrc <> 0.
|
||||||
|
APPEND INITIAL LINE TO gt_auth ASSIGNING <ls_auth>.
|
||||||
|
<ls_auth>-uri = zcl_abapgit_url=>host( iv_uri ).
|
||||||
|
<ls_auth>-authorization = iv_auth.
|
||||||
|
ENDIF.
|
||||||
|
|
||||||
|
ENDMETHOD.
|
||||||
|
|
||||||
|
|
||||||
|
METHOD clear.
|
||||||
|
|
||||||
|
CLEAR gt_auth.
|
||||||
|
|
||||||
|
ENDMETHOD.
|
||||||
|
|
||||||
|
|
||||||
|
METHOD load.
|
||||||
|
|
||||||
|
DATA: ls_auth LIKE LINE OF gt_auth.
|
||||||
|
|
||||||
|
READ TABLE gt_auth INTO ls_auth WITH KEY uri = zcl_abapgit_url=>host( iv_uri ).
|
||||||
|
IF sy-subrc = 0.
|
||||||
|
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.
|
||||||
|
ENDIF.
|
||||||
|
ENDIF.
|
||||||
|
|
||||||
|
ENDMETHOD.
|
||||||
|
|
||||||
|
|
||||||
|
METHOD save.
|
||||||
|
|
||||||
|
DATA: lv_auth TYPE string.
|
||||||
|
|
||||||
|
lv_auth = ii_client->request->get_header_field( 'authorization' ). "#EC NOTEXT
|
||||||
|
|
||||||
|
IF NOT lv_auth IS INITIAL.
|
||||||
|
append( iv_uri = iv_uri
|
||||||
|
iv_auth = lv_auth ).
|
||||||
|
ENDIF.
|
||||||
|
|
||||||
|
ENDMETHOD.
|
||||||
|
|
||||||
|
|
||||||
|
METHOD set.
|
||||||
|
|
||||||
|
DATA: lv_concat TYPE string.
|
||||||
|
|
||||||
|
ASSERT NOT iv_uri IS INITIAL.
|
||||||
|
|
||||||
|
IF iv_username IS INITIAL OR iv_password IS INITIAL.
|
||||||
|
RETURN.
|
||||||
|
ENDIF.
|
||||||
|
|
||||||
|
CONCATENATE iv_username ':' iv_password INTO lv_concat.
|
||||||
|
|
||||||
|
rv_auth = cl_http_utility=>if_http_utility~encode_base64( lv_concat ).
|
||||||
|
|
||||||
|
CONCATENATE 'Basic' rv_auth INTO rv_auth
|
||||||
|
SEPARATED BY space ##NO_TEXT.
|
||||||
|
|
||||||
|
append( iv_uri = iv_uri
|
||||||
|
iv_auth = rv_auth ).
|
||||||
|
|
||||||
|
ENDMETHOD.
|
||||||
|
|
||||||
|
ENDCLASS.
|
27
src/utils/zcl_abapgit_login_manager.clas.xml
Normal file
27
src/utils/zcl_abapgit_login_manager.clas.xml
Normal file
|
@ -0,0 +1,27 @@
|
||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<abapGit version="v1.0.0" serializer="LCL_OBJECT_CLAS" serializer_version="v1.0.0">
|
||||||
|
<asx:abap xmlns:asx="http://www.sap.com/abapxml" version="1.0">
|
||||||
|
<asx:values>
|
||||||
|
<VSEOCLASS>
|
||||||
|
<CLSNAME>ZCL_ABAPGIT_LOGIN_MANAGER</CLSNAME>
|
||||||
|
<VERSION>1</VERSION>
|
||||||
|
<LANGU>E</LANGU>
|
||||||
|
<DESCRIPT>Login Manager</DESCRIPT>
|
||||||
|
<EXPOSURE>2</EXPOSURE>
|
||||||
|
<STATE>1</STATE>
|
||||||
|
<CLSFINAL>X</CLSFINAL>
|
||||||
|
<CLSCCINCL>X</CLSCCINCL>
|
||||||
|
<FIXPT>X</FIXPT>
|
||||||
|
<UNICODE>X</UNICODE>
|
||||||
|
</VSEOCLASS>
|
||||||
|
<DESCRIPTIONS>
|
||||||
|
<SEOCOMPOTX>
|
||||||
|
<CLSNAME>ZCL_ABAPGIT_LOGIN_MANAGER</CLSNAME>
|
||||||
|
<CMPNAME>TY_AUTH</CMPNAME>
|
||||||
|
<LANGU>E</LANGU>
|
||||||
|
<DESCRIPT>TY_AUTH</DESCRIPT>
|
||||||
|
</SEOCOMPOTX>
|
||||||
|
</DESCRIPTIONS>
|
||||||
|
</asx:values>
|
||||||
|
</asx:abap>
|
||||||
|
</abapGit>
|
|
@ -221,7 +221,7 @@ CLASS lcl_background IMPLEMENTATION.
|
||||||
lv_repo_name = lo_repo->get_name( ).
|
lv_repo_name = lo_repo->get_name( ).
|
||||||
WRITE: / <ls_list>-method, lv_repo_name.
|
WRITE: / <ls_list>-method, lv_repo_name.
|
||||||
|
|
||||||
lcl_login_manager=>set(
|
zcl_abapgit_login_manager=>set(
|
||||||
iv_uri = lo_repo->get_url( )
|
iv_uri = lo_repo->get_url( )
|
||||||
iv_username = <ls_list>-username
|
iv_username = <ls_list>-username
|
||||||
iv_password = <ls_list>-password ).
|
iv_password = <ls_list>-password ).
|
||||||
|
|
|
@ -480,7 +480,7 @@ CLASS lcl_http IMPLEMENTATION.
|
||||||
" Disable internal auth dialog (due to its unclarity)
|
" Disable internal auth dialog (due to its unclarity)
|
||||||
li_client->propertytype_logon_popup = if_http_client=>co_disabled.
|
li_client->propertytype_logon_popup = if_http_client=>co_disabled.
|
||||||
|
|
||||||
lcl_login_manager=>load( iv_uri = iv_url
|
zcl_abapgit_login_manager=>load( iv_uri = iv_url
|
||||||
ii_client = li_client ).
|
ii_client = li_client ).
|
||||||
|
|
||||||
ro_client->send_receive( ).
|
ro_client->send_receive( ).
|
||||||
|
@ -493,7 +493,7 @@ CLASS lcl_http IMPLEMENTATION.
|
||||||
ro_client->check_http_200( ).
|
ro_client->check_http_200( ).
|
||||||
|
|
||||||
IF lv_scheme <> gc_scheme-digest.
|
IF lv_scheme <> gc_scheme-digest.
|
||||||
lcl_login_manager=>save( iv_uri = iv_url
|
zcl_abapgit_login_manager=>save( iv_uri = iv_url
|
||||||
ii_client = li_client ).
|
ii_client = li_client ).
|
||||||
ENDIF.
|
ENDIF.
|
||||||
|
|
||||||
|
|
|
@ -1149,18 +1149,18 @@ ENDCLASS.
|
||||||
CLASS ltcl_login_manager IMPLEMENTATION.
|
CLASS ltcl_login_manager IMPLEMENTATION.
|
||||||
|
|
||||||
METHOD setup.
|
METHOD setup.
|
||||||
lcl_login_manager=>clear( ).
|
zcl_abapgit_login_manager=>clear( ).
|
||||||
ENDMETHOD.
|
ENDMETHOD.
|
||||||
|
|
||||||
METHOD teardown.
|
METHOD teardown.
|
||||||
lcl_login_manager=>clear( ).
|
zcl_abapgit_login_manager=>clear( ).
|
||||||
ENDMETHOD.
|
ENDMETHOD.
|
||||||
|
|
||||||
METHOD encoding.
|
METHOD encoding.
|
||||||
|
|
||||||
DATA: lv_auth TYPE string.
|
DATA: lv_auth TYPE string.
|
||||||
|
|
||||||
lv_auth = lcl_login_manager=>set(
|
lv_auth = zcl_abapgit_login_manager=>set(
|
||||||
iv_uri = 'https://github.com/larshp/abapGit.git'
|
iv_uri = 'https://github.com/larshp/abapGit.git'
|
||||||
iv_username = c_username
|
iv_username = c_username
|
||||||
iv_password = c_password ).
|
iv_password = c_password ).
|
||||||
|
@ -1180,13 +1180,13 @@ CLASS ltcl_login_manager IMPLEMENTATION.
|
||||||
lv_auth2 TYPE string.
|
lv_auth2 TYPE string.
|
||||||
|
|
||||||
|
|
||||||
lcl_login_manager=>set(
|
zcl_abapgit_login_manager=>set(
|
||||||
iv_uri = lc_github1
|
iv_uri = lc_github1
|
||||||
iv_username = c_username
|
iv_username = c_username
|
||||||
iv_password = c_password ).
|
iv_password = c_password ).
|
||||||
|
|
||||||
lv_auth1 = lcl_login_manager=>load( lc_github1 ).
|
lv_auth1 = zcl_abapgit_login_manager=>load( lc_github1 ).
|
||||||
lv_auth2 = lcl_login_manager=>load( lc_github2 ).
|
lv_auth2 = zcl_abapgit_login_manager=>load( lc_github2 ).
|
||||||
|
|
||||||
cl_abap_unit_assert=>assert_equals(
|
cl_abap_unit_assert=>assert_equals(
|
||||||
act = lv_auth1
|
act = lv_auth1
|
||||||
|
|
|
@ -2,122 +2,6 @@
|
||||||
*& Include ZABAPGIT_UTIL
|
*& Include ZABAPGIT_UTIL
|
||||||
*&---------------------------------------------------------------------*
|
*&---------------------------------------------------------------------*
|
||||||
|
|
||||||
CLASS lcl_login_manager DEFINITION FINAL.
|
|
||||||
|
|
||||||
PUBLIC SECTION.
|
|
||||||
CLASS-METHODS:
|
|
||||||
load
|
|
||||||
IMPORTING iv_uri TYPE string
|
|
||||||
ii_client TYPE REF TO if_http_client OPTIONAL
|
|
||||||
RETURNING VALUE(rv_authorization) TYPE string
|
|
||||||
RAISING zcx_abapgit_exception,
|
|
||||||
save
|
|
||||||
IMPORTING iv_uri TYPE string
|
|
||||||
ii_client TYPE REF TO if_http_client
|
|
||||||
RAISING zcx_abapgit_exception,
|
|
||||||
clear,
|
|
||||||
set
|
|
||||||
IMPORTING iv_uri TYPE string
|
|
||||||
iv_username TYPE string
|
|
||||||
iv_password TYPE string
|
|
||||||
RETURNING VALUE(rv_auth) TYPE string
|
|
||||||
RAISING zcx_abapgit_exception.
|
|
||||||
|
|
||||||
PRIVATE SECTION.
|
|
||||||
TYPES: BEGIN OF ty_auth,
|
|
||||||
uri TYPE string,
|
|
||||||
authorization TYPE string,
|
|
||||||
END OF ty_auth.
|
|
||||||
|
|
||||||
CLASS-DATA: gt_auth TYPE TABLE OF ty_auth WITH DEFAULT KEY.
|
|
||||||
|
|
||||||
CLASS-METHODS:
|
|
||||||
append
|
|
||||||
IMPORTING iv_uri TYPE string
|
|
||||||
iv_auth TYPE string
|
|
||||||
RAISING zcx_abapgit_exception.
|
|
||||||
|
|
||||||
ENDCLASS.
|
|
||||||
|
|
||||||
CLASS lcl_login_manager IMPLEMENTATION.
|
|
||||||
|
|
||||||
METHOD clear.
|
|
||||||
CLEAR gt_auth.
|
|
||||||
ENDMETHOD.
|
|
||||||
|
|
||||||
METHOD set.
|
|
||||||
|
|
||||||
DATA: lv_concat TYPE string.
|
|
||||||
|
|
||||||
|
|
||||||
ASSERT NOT iv_uri IS INITIAL.
|
|
||||||
|
|
||||||
IF iv_username IS INITIAL OR iv_password IS INITIAL.
|
|
||||||
RETURN.
|
|
||||||
ENDIF.
|
|
||||||
|
|
||||||
CONCATENATE iv_username ':' iv_password INTO lv_concat.
|
|
||||||
|
|
||||||
rv_auth = cl_http_utility=>if_http_utility~encode_base64( lv_concat ).
|
|
||||||
|
|
||||||
CONCATENATE 'Basic' rv_auth INTO rv_auth
|
|
||||||
SEPARATED BY space ##NO_TEXT.
|
|
||||||
|
|
||||||
append( iv_uri = iv_uri
|
|
||||||
iv_auth = rv_auth ).
|
|
||||||
|
|
||||||
ENDMETHOD.
|
|
||||||
|
|
||||||
METHOD load.
|
|
||||||
|
|
||||||
DATA: ls_auth LIKE LINE OF gt_auth.
|
|
||||||
|
|
||||||
|
|
||||||
READ TABLE gt_auth INTO ls_auth WITH KEY uri = zcl_abapgit_url=>host( iv_uri ).
|
|
||||||
IF sy-subrc = 0.
|
|
||||||
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.
|
|
||||||
ENDIF.
|
|
||||||
ENDIF.
|
|
||||||
|
|
||||||
ENDMETHOD.
|
|
||||||
|
|
||||||
METHOD save.
|
|
||||||
|
|
||||||
DATA: lv_auth TYPE string.
|
|
||||||
|
|
||||||
|
|
||||||
lv_auth = ii_client->request->get_header_field( 'authorization' ). "#EC NOTEXT
|
|
||||||
|
|
||||||
IF NOT lv_auth IS INITIAL.
|
|
||||||
append( iv_uri = iv_uri
|
|
||||||
iv_auth = lv_auth ).
|
|
||||||
ENDIF.
|
|
||||||
|
|
||||||
ENDMETHOD.
|
|
||||||
|
|
||||||
METHOD append.
|
|
||||||
|
|
||||||
FIELD-SYMBOLS: <ls_auth> LIKE LINE OF gt_auth.
|
|
||||||
|
|
||||||
|
|
||||||
READ TABLE gt_auth WITH KEY uri = zcl_abapgit_url=>host( iv_uri )
|
|
||||||
TRANSPORTING NO FIELDS.
|
|
||||||
IF sy-subrc <> 0.
|
|
||||||
APPEND INITIAL LINE TO gt_auth ASSIGNING <ls_auth>.
|
|
||||||
<ls_auth>-uri = zcl_abapgit_url=>host( iv_uri ).
|
|
||||||
<ls_auth>-authorization = iv_auth.
|
|
||||||
ENDIF.
|
|
||||||
|
|
||||||
ENDMETHOD.
|
|
||||||
|
|
||||||
ENDCLASS.
|
|
||||||
|
|
||||||
CLASS lcl_progress DEFINITION FINAL.
|
CLASS lcl_progress DEFINITION FINAL.
|
||||||
|
|
||||||
PUBLIC SECTION.
|
PUBLIC SECTION.
|
||||||
|
|
Loading…
Reference in New Issue
Block a user