diff --git a/src/http/zcl_abapgit_2fa_auth_base.clas.abap b/src/http/zcl_abapgit_2fa_auth_base.clas.abap deleted file mode 100644 index 96a58e882..000000000 --- a/src/http/zcl_abapgit_2fa_auth_base.clas.abap +++ /dev/null @@ -1,149 +0,0 @@ -"! Default {@link ZIF_ABAPGIT_2FA_AUTHENTICATOR} implementation -CLASS zcl_abapgit_2fa_auth_base DEFINITION - PUBLIC - ABSTRACT - CREATE PUBLIC . - - PUBLIC SECTION. - INTERFACES: - zif_abapgit_2fa_authenticator. - ALIASES: - authenticate FOR zif_abapgit_2fa_authenticator~authenticate, - supports_url FOR zif_abapgit_2fa_authenticator~supports_url, - is_2fa_required FOR zif_abapgit_2fa_authenticator~is_2fa_required, - delete_access_tokens FOR zif_abapgit_2fa_authenticator~delete_access_tokens, - begin FOR zif_abapgit_2fa_authenticator~begin, - end FOR zif_abapgit_2fa_authenticator~end. - METHODS: - "! @parameter iv_supported_url_regex | Regular expression to check if a repository url is - "! supported, used for default implementation of - "! {@link .METH:supports_url} - constructor IMPORTING iv_supported_url_regex TYPE clike. - PROTECTED SECTION. - CLASS-METHODS: - "! Helper method to raise class based exception after traditional exception was raised - "!

- "! sy-msg... must be set right before calling! - "!

- raise_comm_error_from_sy RAISING zcx_abapgit_2fa_comm_error. - METHODS: - "! @parameter rv_running | Internal session is currently active - is_session_running RETURNING VALUE(rv_running) TYPE abap_bool, - "! Returns HTTP client configured with proxy (where required) for the given URL - get_http_client_for_url - IMPORTING iv_url TYPE string - RETURNING VALUE(ri_client) TYPE REF TO if_http_client - RAISING zcx_abapgit_2fa_comm_error. - PRIVATE SECTION. - DATA: - mo_url_regex TYPE REF TO cl_abap_regex, - mv_session_running TYPE abap_bool. -ENDCLASS. - - - -CLASS ZCL_ABAPGIT_2FA_AUTH_BASE IMPLEMENTATION. - - - METHOD authenticate. - RAISE EXCEPTION TYPE zcx_abapgit_2fa_auth_failed. " Needs to be overwritten in subclasses - ENDMETHOD. - - - METHOD begin. - IF mv_session_running = abap_true. - RAISE EXCEPTION TYPE zcx_abapgit_2fa_illegal_state. - ENDIF. - - mv_session_running = abap_true. - ENDMETHOD. - - - METHOD constructor. - CREATE OBJECT mo_url_regex - EXPORTING - pattern = iv_supported_url_regex - ignore_case = abap_true. - ENDMETHOD. - - - METHOD delete_access_tokens. - RAISE EXCEPTION TYPE zcx_abapgit_2fa_del_failed. " Needs to be overwritten in subclasses - ENDMETHOD. - - - METHOD end. - IF mv_session_running = abap_false. - RAISE EXCEPTION TYPE zcx_abapgit_2fa_illegal_state. - ENDIF. - - mv_session_running = abap_false. - ENDMETHOD. - - - METHOD get_http_client_for_url. - DATA: lo_proxy TYPE REF TO zcl_abapgit_proxy_config, - lx_abapgit_exc TYPE REF TO zcx_abapgit_exception, - lv_error_text TYPE string. - - CREATE OBJECT lo_proxy. - cl_http_client=>create_by_url( - EXPORTING - url = iv_url - ssl_id = zcl_abapgit_exit=>get_instance( )->get_ssl_id( ) - proxy_host = lo_proxy->get_proxy_url( iv_url ) - proxy_service = lo_proxy->get_proxy_port( iv_url ) - IMPORTING - client = ri_client - EXCEPTIONS - argument_not_found = 1 - plugin_not_active = 2 - internal_error = 3 - OTHERS = 4 ). - IF sy-subrc <> 0. - raise_comm_error_from_sy( ). - ENDIF. - - IF lo_proxy->get_proxy_authentication( iv_url ) = abap_true. - TRY. - zcl_abapgit_proxy_auth=>run( ri_client ). - CATCH zcx_abapgit_exception INTO lx_abapgit_exc. - lv_error_text = lx_abapgit_exc->get_text( ). - IF lv_error_text IS INITIAL. - lv_error_text = `Proxy authentication error`. - ENDIF. - RAISE EXCEPTION TYPE zcx_abapgit_2fa_comm_error - EXPORTING - mv_text = lv_error_text - previous = lx_abapgit_exc. - ENDTRY. - ENDIF. - ENDMETHOD. - - - METHOD is_2fa_required. - rv_required = abap_false. - ENDMETHOD. - - - METHOD is_session_running. - rv_running = mv_session_running. - ENDMETHOD. - - - METHOD raise_comm_error_from_sy. - DATA: lv_error_msg TYPE string. - - MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno - WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4 - INTO lv_error_msg. - RAISE EXCEPTION TYPE zcx_abapgit_2fa_comm_error - EXPORTING - mv_text = |Communication error: { lv_error_msg }|. - ENDMETHOD. - - - METHOD supports_url. - rv_supported = mo_url_regex->create_matcher( text = iv_url )->match( ). - ENDMETHOD. -ENDCLASS. diff --git a/src/http/zcl_abapgit_2fa_auth_base.clas.xml b/src/http/zcl_abapgit_2fa_auth_base.clas.xml deleted file mode 100644 index 970cc9f6a..000000000 --- a/src/http/zcl_abapgit_2fa_auth_base.clas.xml +++ /dev/null @@ -1,16 +0,0 @@ - - - - - - ZCL_ABAPGIT_2FA_AUTH_BASE - E - 2FA base - 1 - X - X - X - - - - diff --git a/src/http/zcl_abapgit_2fa_auth_registry.clas.abap b/src/http/zcl_abapgit_2fa_auth_registry.clas.abap deleted file mode 100644 index 6cc00f243..000000000 --- a/src/http/zcl_abapgit_2fa_auth_registry.clas.abap +++ /dev/null @@ -1,203 +0,0 @@ -"! Static registry class to find {@link ZIF_ABAPGIT_2FA_AUTHENTICATOR} instances -CLASS zcl_abapgit_2fa_auth_registry DEFINITION - PUBLIC - FINAL - CREATE PRIVATE . - - PUBLIC SECTION. - CLASS-METHODS: - class_constructor, - "! Retrieve an authenticator instance by url - "! @parameter iv_url | Url of the repository / service - "! @parameter ri_authenticator | Found authenticator instance - "! @raising zcx_abapgit_2fa_unsupported | No authenticator found that supports the service - get_authenticator_for_url IMPORTING iv_url TYPE string - RETURNING VALUE(ri_authenticator) TYPE REF TO zif_abapgit_2fa_authenticator - RAISING zcx_abapgit_2fa_unsupported, - "! Check if there is a two factor authenticator available for the url - "! @parameter iv_url | Url of the repository / service - "! @parameter rv_supported | 2FA is supported - is_url_supported IMPORTING iv_url TYPE string - RETURNING VALUE(rv_supported) TYPE abap_bool, - "! Offer to use two factor authentication if supported and required - "!

- "! This uses GUI functionality to display a popup to request the user to enter a two factor - "! token. Also an dummy authentication request might be used to find out if two factor - "! authentication is required for the account. - "!

- "! @parameter iv_url | Url of the repository / service - "! @parameter cv_username | Username - "! @parameter cv_password | Password, will be replaced by an access token if two factor - "! authentication succeeds - "! @raising zcx_abapgit_exception | Error in two factor authentication - use_2fa_if_required IMPORTING iv_url TYPE string - CHANGING cv_username TYPE string - cv_password TYPE string - RAISING zcx_abapgit_exception. - - PROTECTED SECTION. - CLASS-DATA: - "! All authenticators managed by the registry - gt_registered_authenticators TYPE HASHED TABLE OF REF TO zif_abapgit_2fa_authenticator - WITH UNIQUE KEY table_line. - - PRIVATE SECTION. - CLASS-METHODS: - popup_token - RETURNING VALUE(rv_token) TYPE string - RAISING zcx_abapgit_exception. - -ENDCLASS. - - - -CLASS zcl_abapgit_2fa_auth_registry IMPLEMENTATION. - - - METHOD class_constructor. - - DATA: lt_sub TYPE seo_relkeys, - ls_sub LIKE LINE OF lt_sub, - li_authenticator TYPE REF TO zif_abapgit_2fa_authenticator, - lo_class TYPE REF TO cl_oo_class, - lv_warning_message TYPE string. - - - TRY. - lo_class ?= cl_oo_class=>get_instance( 'ZCL_ABAPGIT_2FA_AUTH_BASE' ). - lt_sub = lo_class->get_subclasses( ). - SORT lt_sub BY clsname ASCENDING AS TEXT. - LOOP AT lt_sub INTO ls_sub. - CREATE OBJECT li_authenticator TYPE (ls_sub-clsname). - INSERT li_authenticator INTO TABLE gt_registered_authenticators. - ENDLOOP. - - " Current 2FA approach will be removed as GitHub is deprecating the used authentication mechanism and there - " are no other 2FA implementations. Show a warning in case someone subclassed ZCL_ABAPGIT_2FA_AUTH_BASE and - " is using a custom 2FA implementation. - " https://github.com/abapGit/abapGit/issues/3150 - " https://github.com/abapGit/abapGit/pull/3839 - - IF gt_registered_authenticators IS NOT INITIAL AND - zcl_abapgit_ui_factory=>get_gui_functions( )->gui_is_available( ) = abap_true. - lv_warning_message = 'Custom 2FA implementation found. 2FA infrastructure is marked for deletion.' && - ' Please open an issue if you are using it: github.com/abapGit/abapGit/issues/new'. - MESSAGE lv_warning_message TYPE 'I' DISPLAY LIKE 'W'. - ENDIF. - CATCH cx_class_not_existent ##NO_HANDLER. - ENDTRY. - - ENDMETHOD. - - - METHOD get_authenticator_for_url. - FIELD-SYMBOLS: LIKE LINE OF gt_registered_authenticators. - - LOOP AT gt_registered_authenticators ASSIGNING . - IF ->supports_url( iv_url ) = abap_true. - ri_authenticator = . - RETURN. - ENDIF. - ENDLOOP. - - RAISE EXCEPTION TYPE zcx_abapgit_2fa_unsupported. - ENDMETHOD. - - - METHOD is_url_supported. - TRY. - get_authenticator_for_url( iv_url ). - rv_supported = abap_true. - CATCH zcx_abapgit_2fa_unsupported ##NO_HANDLER. - ENDTRY. - ENDMETHOD. - - - METHOD popup_token. - - DATA: lv_returncode TYPE c, - lt_fields TYPE TABLE OF sval. - - FIELD-SYMBOLS: LIKE LINE OF lt_fields. - - - APPEND INITIAL LINE TO lt_fields ASSIGNING . - -tabname = 'TADIR'. - -fieldname = 'OBJ_NAME'. - -fieldtext = 'Two factor auth. token'. - - CALL FUNCTION 'POPUP_GET_VALUES' - EXPORTING - no_value_check = abap_true - popup_title = 'Two factor auth. token' - IMPORTING - returncode = lv_returncode - TABLES - fields = lt_fields - EXCEPTIONS - error_in_fields = 1 - OTHERS = 2. - IF sy-subrc <> 0. - zcx_abapgit_exception=>raise( 'Error from POPUP_GET_VALUES' ). - ENDIF. - - IF lv_returncode = 'A'. - zcx_abapgit_exception=>raise( 'Authentication cancelled' ). - ENDIF. - - READ TABLE lt_fields INDEX 1 ASSIGNING . - ASSERT sy-subrc = 0. - rv_token = -value. - - ENDMETHOD. - - - METHOD use_2fa_if_required. - DATA: li_authenticator TYPE REF TO zif_abapgit_2fa_authenticator, - lv_2fa_token TYPE string, - lv_access_token TYPE string, - lx_ex TYPE REF TO cx_root. - - IF is_url_supported( iv_url ) = abap_false. - RETURN. - ENDIF. - - TRY. - li_authenticator = get_authenticator_for_url( iv_url ). - li_authenticator->begin( ). - - " Is two factor authentication required for this account? - IF li_authenticator->is_2fa_required( iv_url = iv_url - iv_username = cv_username - iv_password = cv_password ) = abap_true. - - lv_2fa_token = popup_token( ). - - " Delete an old access token if it exists - li_authenticator->delete_access_tokens( iv_url = iv_url - iv_username = cv_username - iv_password = cv_password - iv_2fa_token = lv_2fa_token ). - - " Get a new access token - lv_access_token = li_authenticator->authenticate( iv_url = iv_url - iv_username = cv_username - iv_password = cv_password - iv_2fa_token = lv_2fa_token ). - - " Use the access token instead of the password - cv_password = lv_access_token. - ENDIF. - - li_authenticator->end( ). - - CATCH zcx_abapgit_2fa_error INTO lx_ex. - TRY. - li_authenticator->end( ). - CATCH zcx_abapgit_2fa_illegal_state ##NO_HANDLER. - ENDTRY. - - zcx_abapgit_exception=>raise( |2FA error: { lx_ex->get_text( ) }| ). - ENDTRY. - ENDMETHOD. -ENDCLASS. diff --git a/src/http/zcl_abapgit_2fa_auth_registry.clas.xml b/src/http/zcl_abapgit_2fa_auth_registry.clas.xml deleted file mode 100644 index 162a47c76..000000000 --- a/src/http/zcl_abapgit_2fa_auth_registry.clas.xml +++ /dev/null @@ -1,16 +0,0 @@ - - - - - - ZCL_ABAPGIT_2FA_AUTH_REGISTRY - E - 2FA registry - 1 - X - X - X - - - - diff --git a/src/http/zcl_abapgit_http.clas.abap b/src/http/zcl_abapgit_http.clas.abap index b7e023535..dcbdad4b1 100644 --- a/src/http/zcl_abapgit_http.clas.abap +++ b/src/http/zcl_abapgit_http.clas.abap @@ -79,14 +79,6 @@ CLASS ZCL_ABAPGIT_HTTP IMPLEMENTATION. iv_login = lv_user ). ENDIF. - " Offer two factor authentication if it is available and required - zcl_abapgit_2fa_auth_registry=>use_2fa_if_required( - EXPORTING - iv_url = iv_url - CHANGING - cv_username = lv_user - cv_password = lv_pass ). - rv_scheme = ii_client->response->get_header_field( 'www-authenticate' ). FIND REGEX '^(\w+)' IN rv_scheme SUBMATCHES rv_scheme. diff --git a/src/http/zcx_abapgit_2fa_auth_failed.clas.abap b/src/http/zcx_abapgit_2fa_auth_failed.clas.abap deleted file mode 100644 index b87f215b7..000000000 --- a/src/http/zcx_abapgit_2fa_auth_failed.clas.abap +++ /dev/null @@ -1,39 +0,0 @@ -class ZCX_ABAPGIT_2FA_AUTH_FAILED definition - public - inheriting from ZCX_ABAPGIT_2FA_ERROR - final - create public . - -public section. - - methods CONSTRUCTOR - importing - !TEXTID like TEXTID optional - !PREVIOUS like PREVIOUS optional - !MV_TEXT type STRING optional . -protected section. - - methods GET_DEFAULT_TEXT - redefinition . -private section. -ENDCLASS. - - - -CLASS ZCX_ABAPGIT_2FA_AUTH_FAILED IMPLEMENTATION. - - - method CONSTRUCTOR. -CALL METHOD SUPER->CONSTRUCTOR -EXPORTING -TEXTID = TEXTID -PREVIOUS = PREVIOUS -MV_TEXT = MV_TEXT -. - endmethod. - - - METHOD get_default_text. - rv_text = 'Authentication failed using 2FA.' . - ENDMETHOD. -ENDCLASS. diff --git a/src/http/zcx_abapgit_2fa_auth_failed.clas.xml b/src/http/zcx_abapgit_2fa_auth_failed.clas.xml deleted file mode 100644 index 2ea6403f5..000000000 --- a/src/http/zcx_abapgit_2fa_auth_failed.clas.xml +++ /dev/null @@ -1,17 +0,0 @@ - - - - - - ZCX_ABAPGIT_2FA_AUTH_FAILED - E - Auth failed - 40 - 1 - X - X - X - - - - diff --git a/src/http/zcx_abapgit_2fa_comm_error.clas.abap b/src/http/zcx_abapgit_2fa_comm_error.clas.abap deleted file mode 100644 index 5bf1b1d97..000000000 --- a/src/http/zcx_abapgit_2fa_comm_error.clas.abap +++ /dev/null @@ -1,39 +0,0 @@ -class ZCX_ABAPGIT_2FA_COMM_ERROR definition - public - inheriting from ZCX_ABAPGIT_2FA_ERROR - final - create public . - -public section. - - methods CONSTRUCTOR - importing - !TEXTID like TEXTID optional - !PREVIOUS like PREVIOUS optional - !MV_TEXT type STRING optional . -protected section. - - methods GET_DEFAULT_TEXT - redefinition . -private section. -ENDCLASS. - - - -CLASS ZCX_ABAPGIT_2FA_COMM_ERROR IMPLEMENTATION. - - - method CONSTRUCTOR. -CALL METHOD SUPER->CONSTRUCTOR -EXPORTING -TEXTID = TEXTID -PREVIOUS = PREVIOUS -MV_TEXT = MV_TEXT -. - endmethod. - - - METHOD get_default_text. - rv_text = 'Communication error.' . - ENDMETHOD. -ENDCLASS. diff --git a/src/http/zcx_abapgit_2fa_comm_error.clas.xml b/src/http/zcx_abapgit_2fa_comm_error.clas.xml deleted file mode 100644 index e7f18f00c..000000000 --- a/src/http/zcx_abapgit_2fa_comm_error.clas.xml +++ /dev/null @@ -1,17 +0,0 @@ - - - - - - ZCX_ABAPGIT_2FA_COMM_ERROR - E - comm error - 40 - 1 - X - X - X - - - - diff --git a/src/http/zcx_abapgit_2fa_del_failed.clas.abap b/src/http/zcx_abapgit_2fa_del_failed.clas.abap deleted file mode 100644 index dd90f2698..000000000 --- a/src/http/zcx_abapgit_2fa_del_failed.clas.abap +++ /dev/null @@ -1,39 +0,0 @@ -class ZCX_ABAPGIT_2FA_DEL_FAILED definition - public - inheriting from ZCX_ABAPGIT_2FA_ERROR - final - create public . - -public section. - - methods CONSTRUCTOR - importing - !TEXTID like TEXTID optional - !PREVIOUS like PREVIOUS optional - !MV_TEXT type STRING optional . -protected section. - - methods GET_DEFAULT_TEXT - redefinition . -private section. -ENDCLASS. - - - -CLASS ZCX_ABAPGIT_2FA_DEL_FAILED IMPLEMENTATION. - - - method CONSTRUCTOR. -CALL METHOD SUPER->CONSTRUCTOR -EXPORTING -TEXTID = TEXTID -PREVIOUS = PREVIOUS -MV_TEXT = MV_TEXT -. - endmethod. - - - METHOD get_default_text. - rv_text = 'Deleting previous access tokens failed.' . - ENDMETHOD. -ENDCLASS. diff --git a/src/http/zcx_abapgit_2fa_del_failed.clas.xml b/src/http/zcx_abapgit_2fa_del_failed.clas.xml deleted file mode 100644 index 88945c620..000000000 --- a/src/http/zcx_abapgit_2fa_del_failed.clas.xml +++ /dev/null @@ -1,17 +0,0 @@ - - - - - - ZCX_ABAPGIT_2FA_DEL_FAILED - E - del failed - 40 - 1 - X - X - X - - - - diff --git a/src/http/zcx_abapgit_2fa_error.clas.abap b/src/http/zcx_abapgit_2fa_error.clas.abap deleted file mode 100644 index 6bd2939b9..000000000 --- a/src/http/zcx_abapgit_2fa_error.clas.abap +++ /dev/null @@ -1,59 +0,0 @@ -class ZCX_ABAPGIT_2FA_ERROR definition - public - inheriting from CX_STATIC_CHECK - create public . - -public section. - - data MV_TEXT type STRING read-only . - - methods CONSTRUCTOR - importing - !TEXTID like TEXTID optional - !PREVIOUS like PREVIOUS optional - !MV_TEXT type STRING optional . - - methods IF_MESSAGE~GET_TEXT - redefinition . -protected section. - - methods GET_DEFAULT_TEXT - returning - value(RV_TEXT) type STRING . -private section. -ENDCLASS. - - - -CLASS ZCX_ABAPGIT_2FA_ERROR IMPLEMENTATION. - - - method CONSTRUCTOR. -CALL METHOD SUPER->CONSTRUCTOR -EXPORTING -TEXTID = TEXTID -PREVIOUS = PREVIOUS -. -me->MV_TEXT = MV_TEXT . - endmethod. - - - METHOD get_default_text. - - rv_text = 'Error in two factor authentication.' . - - ENDMETHOD. - - - METHOD if_message~get_text. - - IF mv_text IS NOT INITIAL. - result = mv_text. - ELSEIF get_default_text( ) IS NOT INITIAL. - result = get_default_text( ). - ELSE. - result = super->get_text( ). - ENDIF. - - ENDMETHOD. -ENDCLASS. diff --git a/src/http/zcx_abapgit_2fa_error.clas.xml b/src/http/zcx_abapgit_2fa_error.clas.xml deleted file mode 100644 index ef71d15f4..000000000 --- a/src/http/zcx_abapgit_2fa_error.clas.xml +++ /dev/null @@ -1,17 +0,0 @@ - - - - - - ZCX_ABAPGIT_2FA_ERROR - E - Error - 40 - 1 - X - X - X - - - - diff --git a/src/http/zcx_abapgit_2fa_gen_failed.clas.abap b/src/http/zcx_abapgit_2fa_gen_failed.clas.abap deleted file mode 100644 index e0302d4a8..000000000 --- a/src/http/zcx_abapgit_2fa_gen_failed.clas.abap +++ /dev/null @@ -1,39 +0,0 @@ -class ZCX_ABAPGIT_2FA_GEN_FAILED definition - public - inheriting from ZCX_ABAPGIT_2FA_ERROR - final - create public . - -public section. - - methods CONSTRUCTOR - importing - !TEXTID like TEXTID optional - !PREVIOUS like PREVIOUS optional - !MV_TEXT type STRING optional . -protected section. - - methods GET_DEFAULT_TEXT - redefinition . -private section. -ENDCLASS. - - - -CLASS ZCX_ABAPGIT_2FA_GEN_FAILED IMPLEMENTATION. - - - method CONSTRUCTOR. -CALL METHOD SUPER->CONSTRUCTOR -EXPORTING -TEXTID = TEXTID -PREVIOUS = PREVIOUS -MV_TEXT = MV_TEXT -. - endmethod. - - - METHOD get_default_text. - rv_text = 'Two factor access token generation failed.' . - ENDMETHOD. -ENDCLASS. diff --git a/src/http/zcx_abapgit_2fa_gen_failed.clas.xml b/src/http/zcx_abapgit_2fa_gen_failed.clas.xml deleted file mode 100644 index 4a063b63f..000000000 --- a/src/http/zcx_abapgit_2fa_gen_failed.clas.xml +++ /dev/null @@ -1,17 +0,0 @@ - - - - - - ZCX_ABAPGIT_2FA_GEN_FAILED - E - gen failed - 40 - 1 - X - X - X - - - - diff --git a/src/http/zcx_abapgit_2fa_illegal_state.clas.abap b/src/http/zcx_abapgit_2fa_illegal_state.clas.abap deleted file mode 100644 index 47e632fe0..000000000 --- a/src/http/zcx_abapgit_2fa_illegal_state.clas.abap +++ /dev/null @@ -1,39 +0,0 @@ -class ZCX_ABAPGIT_2FA_ILLEGAL_STATE definition - public - inheriting from ZCX_ABAPGIT_2FA_ERROR - final - create public . - -public section. - - methods CONSTRUCTOR - importing - !TEXTID like TEXTID optional - !PREVIOUS like PREVIOUS optional - !MV_TEXT type STRING optional . -protected section. - - methods GET_DEFAULT_TEXT - redefinition . -private section. -ENDCLASS. - - - -CLASS ZCX_ABAPGIT_2FA_ILLEGAL_STATE IMPLEMENTATION. - - - method CONSTRUCTOR. -CALL METHOD SUPER->CONSTRUCTOR -EXPORTING -TEXTID = TEXTID -PREVIOUS = PREVIOUS -MV_TEXT = MV_TEXT -. - endmethod. - - - METHOD get_default_text. - rv_text = 'Illegal state.' . - ENDMETHOD. -ENDCLASS. diff --git a/src/http/zcx_abapgit_2fa_illegal_state.clas.xml b/src/http/zcx_abapgit_2fa_illegal_state.clas.xml deleted file mode 100644 index 1a619504b..000000000 --- a/src/http/zcx_abapgit_2fa_illegal_state.clas.xml +++ /dev/null @@ -1,17 +0,0 @@ - - - - - - ZCX_ABAPGIT_2FA_ILLEGAL_STATE - E - illegal state - 40 - 1 - X - X - X - - - - diff --git a/src/http/zcx_abapgit_2fa_unsupported.clas.abap b/src/http/zcx_abapgit_2fa_unsupported.clas.abap deleted file mode 100644 index bd94a4d8e..000000000 --- a/src/http/zcx_abapgit_2fa_unsupported.clas.abap +++ /dev/null @@ -1,39 +0,0 @@ -class ZCX_ABAPGIT_2FA_UNSUPPORTED definition - public - inheriting from ZCX_ABAPGIT_2FA_ERROR - final - create public . - -public section. - - methods CONSTRUCTOR - importing - !TEXTID like TEXTID optional - !PREVIOUS like PREVIOUS optional - !MV_TEXT type STRING optional . -protected section. - - methods GET_DEFAULT_TEXT - redefinition . -private section. -ENDCLASS. - - - -CLASS ZCX_ABAPGIT_2FA_UNSUPPORTED IMPLEMENTATION. - - - method CONSTRUCTOR. -CALL METHOD SUPER->CONSTRUCTOR -EXPORTING -TEXTID = TEXTID -PREVIOUS = PREVIOUS -MV_TEXT = MV_TEXT -. - endmethod. - - - METHOD get_default_text. - rv_text = 'The service is not supported for two factor authentication.' . - ENDMETHOD. -ENDCLASS. diff --git a/src/http/zcx_abapgit_2fa_unsupported.clas.xml b/src/http/zcx_abapgit_2fa_unsupported.clas.xml deleted file mode 100644 index 171e4b172..000000000 --- a/src/http/zcx_abapgit_2fa_unsupported.clas.xml +++ /dev/null @@ -1,17 +0,0 @@ - - - - - - ZCX_ABAPGIT_2FA_UNSUPPORTED - E - Unsupported - 40 - 1 - X - X - X - - - - diff --git a/src/http/zif_abapgit_2fa_authenticator.intf.abap b/src/http/zif_abapgit_2fa_authenticator.intf.abap deleted file mode 100644 index 94ff517db..000000000 --- a/src/http/zif_abapgit_2fa_authenticator.intf.abap +++ /dev/null @@ -1,90 +0,0 @@ -"! Defines a two factor authentication authenticator -"!

-"! Authenticators support one or multiple services and are able to generate access tokens using the -"! service's API using the users username, password and two factor authentication token -"! (app/sms/tokengenerator). With these access tokens the user can be authenticated to the service's -"! implementation of the git http api, just like the "normal" password would. -"!

-"!

-"! {@link ZCL_ABAPGIT_2FA_AUTH_REGISTRY} can be used to find a suitable implementation for a -"! given repository. -"!

-"!

-"! Using the {@link zif_abapgit_2fa_authenticator.METH:begin} and -"! {@link zif_abapgit_2fa_authenticator.METH.end} methods an internal session can be started and -"! completed in which internal state necessary for multiple methods will be cached. This can be -"! used to avoid having multiple http sessions between -"! {@link zif_abapgit_2fa_authenticator.METH:authenticate} and -"! {@link zif_abapgit_2fa_authenticator.METH:delete_access_tokens}. -"!

-INTERFACE zif_abapgit_2fa_authenticator PUBLIC. - "! Generate an access token - "! @parameter iv_url | Repository url - "! @parameter iv_username | Username - "! @parameter iv_password | Password - "! @parameter iv_2fa_token | Two factor token - "! @parameter rv_access_token | Generated access token - "! @raising zcx_abapgit_2fa_auth_failed | Authentication failed - "! @raising zcx_abapgit_2fa_gen_failed | Token generation failed - METHODS authenticate - IMPORTING - !iv_url TYPE string - !iv_username TYPE string - !iv_password TYPE string - !iv_2fa_token TYPE string - RETURNING - VALUE(rv_access_token) TYPE string - RAISING - zcx_abapgit_2fa_auth_failed - zcx_abapgit_2fa_gen_failed - zcx_abapgit_2fa_comm_error . - "! Check if this authenticator instance supports the given repository url - "! @parameter iv_url | Repository url - "! @parameter rv_supported | Is supported - METHODS supports_url - IMPORTING - !iv_url TYPE string - RETURNING - VALUE(rv_supported) TYPE abap_bool . - "! Check if two factor authentication is required - "! @parameter iv_url | Repository url - "! @parameter iv_username | Username - "! @parameter iv_password | Password - "! @parameter rv_required | 2FA is required - METHODS is_2fa_required - IMPORTING - !iv_url TYPE string - !iv_username TYPE string - !iv_password TYPE string - RETURNING - VALUE(rv_required) TYPE abap_bool - RAISING - zcx_abapgit_2fa_comm_error . - "! Delete all previously created access tokens for abapGit - "! @parameter iv_url | Repository url - "! @parameter iv_username | Username - "! @parameter iv_password | Password - "! @parameter iv_2fa_token | Two factor token - "! @raising zcx_abapgit_2fa_del_failed | Token deletion failed - "! @raising zcx_abapgit_2fa_auth_failed | Authentication failed - METHODS delete_access_tokens - IMPORTING - !iv_url TYPE string - !iv_username TYPE string - !iv_password TYPE string - !iv_2fa_token TYPE string - RAISING - zcx_abapgit_2fa_del_failed - zcx_abapgit_2fa_comm_error - zcx_abapgit_2fa_auth_failed . - "! Begin an authenticator session that uses internal caching for authorizations - "! @raising zcx_abapgit_2fa_illegal_state | Session already started - METHODS begin - RAISING - zcx_abapgit_2fa_illegal_state . - "! End an authenticator session and clear internal caches - "! @raising zcx_abapgit_2fa_illegal_state | Session not running - METHODS end - RAISING - zcx_abapgit_2fa_illegal_state . -ENDINTERFACE. diff --git a/src/http/zif_abapgit_2fa_authenticator.intf.xml b/src/http/zif_abapgit_2fa_authenticator.intf.xml deleted file mode 100644 index 6e428c7ef..000000000 --- a/src/http/zif_abapgit_2fa_authenticator.intf.xml +++ /dev/null @@ -1,15 +0,0 @@ - - - - - - ZIF_ABAPGIT_2FA_AUTHENTICATOR - E - 2FA authenticator - 2 - 1 - X - - - -