zoukankan      html  css  js  c++  java
  • 单点登录

    *&---------------------------------------------------------------------*
    *& Report ZCWZT_SAP
    *&---------------------------------------------------------------------*
    *&
    *&---------------------------------------------------------------------*
    REPORT zcwzt_sap.
    
    *调用接口相关参数定义
    DATA:lo_proxy TYPE REF TO zco_login1,
         input    TYPE zselect_user1,
         ls_in    TYPE zselect_user,
         lt_in    TYPE TABLE OF zselect_user,
         ls_input TYPE zselect_user1,
         output   TYPE zselect_user_response1.
    
    DATA: jsonstr TYPE string.
    DATA gt_out TYPE TABLE OF zzt_out_l.
    DATA:gt_zztt_id_xf LIKE TABLE OF zztt_id_xf WITH HEADER LINE.
    DATA e_data TYPE TABLE OF zzt_out .
    DATA es_data TYPE   zzt_out.
    
    
    DATA: error_flag      TYPE char1,
          error_message   TYPE string,
          error_flag_json TYPE string.
    *
    *&---------------------------------------------------------------------*
    REFRESH:lt_in[],e_data,gt_zztt_id_xf[] .
    *&---------------------------------------------------------------------*
    ls_in-userflag = sy-uname.
    ls_in-systemflag = 'SAP'.
    APPEND ls_in TO  lt_in.
    
    
    ls_input-parameters-userflag = sy-uname.
    ls_input-parameters-systemflag = 'SAP'.
    input-parameters   =  ls_input-parameters.
    
    
    *调用代理类 下发数据
    TRY.
        CREATE OBJECT lo_proxy TYPE zco_login1 .
    
        CALL METHOD lo_proxy->select_user
          EXPORTING
            input  = input
          IMPORTING
            output = output.
    
      CATCH cx_ai_system_fault INTO DATA(lo_sys_exception).
      CATCH cx_ai_application_fault INTO DATA(lo_app_exception).
        DATA(lv_msg1) = lo_sys_exception->if_message~get_text( ).
        DATA(lv_msg2) = lo_app_exception->if_message~get_text( ).
    ENDTRY.
    
    
    IF output-parameters-return IS NOT INITIAL  .
      jsonstr = output-parameters-return .
    ENDIF.
    
    *&---------------------------------------------------------------------*
    *    ***JSON->内表
    CALL FUNCTION 'ZZT_JSON_TO_ABAP'
      EXPORTING
        i_json = jsonstr
      IMPORTING
        e_data = e_data
        e_flag = error_flag.
    IF error_flag EQ 'E'.
      MESSAGE 'Json 解析失败,请联系IT管理员!!!' TYPE 'E' DISPLAY LIKE 'E'.
      EXIT.
    ENDIF.
    
    DATA(lv_1) = 'http://47.94.4.162:9007/#/user/logins?'.
    
    
    
    
    READ  TABLE e_data  INTO DATA(ls_edata) INDEX 1.
    IF sy-subrc = 0..
      gt_out[] =      ls_edata-data[].
    
      gt_zztt_id_xf-userflag  =  sy-uname.
      gt_zztt_id_xf-ztime  =  sy-uzeit.
      gt_zztt_id_xf-zdate  =  sy-datum.
      gt_zztt_id_xf-msg  =  ls_edata-msg.
      gt_zztt_id_xf-sucess  =  ls_edata-sucess.
      APPEND gt_zztt_id_xf.CLEAR gt_zztt_id_xf.
    ENDIF.
    
    
    LOOP AT  gt_out INTO DATA(ls_out_data).
      CONDENSE ls_out_data-password NO-GAPS.
      CONDENSE ls_out_data-tenlandid NO-GAPS.
      CONDENSE ls_out_data-username NO-GAPS.
      DATA(lv_end) = |{ lv_1 }{ 'password=' }{ ls_out_data-password }{ '&'}{ 'tenantId=' }{ ls_out_data-tenlandid }{ '&'}{ 'username=' }{ ls_out_data-username } |. "区分大小写
    ENDLOOP.
    
    MODIFY zztt_id_xf FROM TABLE gt_zztt_id_xf.
    
    *&---------------------------------------------------------------------*
    *登陆
    CALL METHOD cl_gui_frontend_services=>execute
      EXPORTING
        document = lv_end
      EXCEPTIONS
        OTHERS   = 1.
  • 相关阅读:
    uniGUI之uniEdit(23)
    ​Shiro授权
    Shiro密码重试次数限制
    Ehcache基础入门
    Shiro简单加密服务
    Shiro身份验证
    第二章、Web中使用shiro(实现登陆)
    第一章、认识Shiro
    使用IntelliJ/Eclipse生成类图
    Jedis操作Redis实例
  • 原文地址:https://www.cnblogs.com/ckstock/p/15293239.html
Copyright © 2011-2022 走看看