logon tickets enabled

for use with abapGitServer when it is running on the same server as abapGit
This commit is contained in:
larshp 2016-11-15 12:52:38 +01:00
parent 3f599489d9
commit 7c4f834bc9
2 changed files with 37 additions and 4 deletions

View File

@ -3,7 +3,7 @@ REPORT zabapgit LINE-SIZE 100.
* See http://www.abapgit.org * See http://www.abapgit.org
CONSTANTS: gc_xml_version TYPE string VALUE 'v1.0.0', "#EC NOTEXT CONSTANTS: gc_xml_version TYPE string VALUE 'v1.0.0', "#EC NOTEXT
gc_abap_version TYPE string VALUE 'v1.20.1'. "#EC NOTEXT gc_abap_version TYPE string VALUE 'v1.21.0'. "#EC NOTEXT
******************************************************************************** ********************************************************************************
* The MIT License (MIT) * The MIT License (MIT)

View File

@ -15,8 +15,8 @@ CLASS lcl_http DEFINITION FINAL.
get_agent get_agent
RETURNING VALUE(rv_agent) TYPE string, RETURNING VALUE(rv_agent) TYPE string,
create_by_url create_by_url
IMPORTING iv_url TYPE string IMPORTING iv_url TYPE string
iv_service TYPE string iv_service TYPE string
RETURNING VALUE(ri_client) TYPE REF TO if_http_client RETURNING VALUE(ri_client) TYPE REF TO if_http_client
RAISING lcx_exception. RAISING lcx_exception.
@ -26,6 +26,9 @@ CLASS lcl_http DEFINITION FINAL.
IMPORTING ii_client TYPE REF TO if_http_client IMPORTING ii_client TYPE REF TO if_http_client
RETURNING VALUE(rv_auth_requested) TYPE abap_bool RETURNING VALUE(rv_auth_requested) TYPE abap_bool
RAISING lcx_exception, RAISING lcx_exception,
is_local_system
IMPORTING iv_url TYPE string
RETURNING VALUE(rv_bool) TYPE abap_bool,
acquire_login_details acquire_login_details
IMPORTING ii_client TYPE REF TO if_http_client IMPORTING ii_client TYPE REF TO if_http_client
iv_url TYPE string iv_url TYPE string
@ -60,6 +63,10 @@ CLASS lcl_http IMPLEMENTATION.
IMPORTING IMPORTING
client = ri_client ). client = ri_client ).
IF is_local_system( iv_url ) = abap_true.
ri_client->send_sap_logon_ticket( ).
ENDIF.
ri_client->request->set_cdata( '' ). ri_client->request->set_cdata( '' ).
ri_client->request->set_header_field( ri_client->request->set_header_field(
name = '~request_method' name = '~request_method'
@ -84,7 +91,7 @@ CLASS lcl_http IMPLEMENTATION.
send_receive( ri_client ). send_receive( ri_client ).
IF lv_expect_potentual_auth = abap_true IF lv_expect_potentual_auth = abap_true
AND check_auth_requested( ri_client ) = abap_true. AND check_auth_requested( ri_client ) = abap_true.
acquire_login_details( ii_client = ri_client acquire_login_details( ii_client = ri_client
iv_url = iv_url ). iv_url = iv_url ).
send_receive( ri_client ). send_receive( ri_client ).
@ -96,6 +103,32 @@ CLASS lcl_http IMPLEMENTATION.
ENDMETHOD. ENDMETHOD.
METHOD is_local_system.
DATA: lv_host TYPE string,
lt_list TYPE STANDARD TABLE OF icm_sinfo2 WITH DEFAULT KEY.
CALL FUNCTION 'ICM_GET_INFO2'
TABLES
servlist = lt_list
EXCEPTIONS
icm_error = 1
icm_timeout = 2
icm_not_authorized = 3
OTHERS = 4.
IF sy-subrc <> 0.
RETURN.
ENDIF.
FIND REGEX 'https?://([^/^:]*)' IN iv_url
SUBMATCHES lv_host.
READ TABLE lt_list WITH KEY hostname = lv_host TRANSPORTING NO FIELDS.
rv_bool = boolc( sy-subrc = 0 ).
ENDMETHOD.
METHOD send_receive. METHOD send_receive.
DATA lv_text TYPE string. DATA lv_text TYPE string.