Press n or j to go to the next uncovered block, b, p or k for the previous block.
| 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 | 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x | CLASS zcl_abapgit_login_manager DEFINITION
PUBLIC
FINAL
CREATE PUBLIC .
PUBLIC SECTION.
CLASS-METHODS load
IMPORTING
!iv_uri TYPE string
RETURNING
VALUE(rv_authorization) TYPE string
RAISING
zcx_abapgit_exception .
CLASS-METHODS save
IMPORTING
!iv_uri TYPE string
!iv_authorization TYPE string
RAISING
zcx_abapgit_exception .
CLASS-METHODS clear .
CLASS-METHODS set_basic
IMPORTING
!iv_uri TYPE string
!iv_username TYPE string
!iv_password TYPE string
RETURNING
VALUE(rv_auth) TYPE string
RAISING
zcx_abapgit_exception .
CLASS-METHODS set_bearer
IMPORTING
!iv_uri TYPE string
!iv_token TYPE string
RETURNING
VALUE(rv_auth) TYPE string
RAISING
zcx_abapgit_exception .
CLASS-METHODS get
IMPORTING
!iv_uri TYPE string
RETURNING
VALUE(rv_auth) TYPE string
RAISING
zcx_abapgit_exception .
CLASS-METHODS get_username
IMPORTING
!iv_uri TYPE string
RETURNING
VALUE(rv_username) TYPE string
RAISING
zcx_abapgit_exception .
PROTECTED SECTION.
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 get.
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_auth = ls_auth-authorization.
ENDIF.
ENDMETHOD.
METHOD get_username.
DATA lv_auth TYPE string.
DATA lv_decoded TYPE string.
lv_auth = get( iv_uri ).
IF lv_auth IS INITIAL.
RETURN.
ENDIF.
IF lv_auth CP 'Basic *'.
lv_auth = lv_auth+6.
lv_decoded = cl_http_utility=>decode_base64( lv_auth ).
SPLIT lv_decoded AT ':' INTO rv_username lv_decoded.
ENDIF.
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.
ENDIF.
ENDMETHOD.
METHOD save.
IF NOT iv_authorization IS INITIAL.
append( iv_uri = iv_uri
iv_auth = iv_authorization ).
ENDIF.
ENDMETHOD.
METHOD set_basic.
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=>encode_base64( lv_concat ).
CONCATENATE 'Basic' rv_auth INTO rv_auth SEPARATED BY space.
append( iv_uri = iv_uri
iv_auth = rv_auth ).
ENDMETHOD.
METHOD set_bearer.
ASSERT NOT iv_uri IS INITIAL.
IF iv_token IS INITIAL.
RETURN.
ENDIF.
CONCATENATE 'Bearer' iv_token INTO rv_auth SEPARATED BY space.
append( iv_uri = iv_uri
iv_auth = rv_auth ).
ENDMETHOD.
ENDCLASS.
|