-
Notifications
You must be signed in to change notification settings - Fork 0
/
YCL_TOKEN.txt
76 lines (64 loc) · 1.98 KB
/
YCL_TOKEN.txt
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
class YCL_TOKEN definition
public
final
create public .
public section.
class-methods GENERATE
returning
value(RESULT) type STRING .
type-pools ABAP .
class-methods VALIDATE
importing
!TOKEN type STRING
returning
value(RESULT) type ABAP_BOOL .
protected section.
private section.
ENDCLASS.
CLASS YCL_TOKEN IMPLEMENTATION.
* <SIGNATURE>---------------------------------------------------------------------------------------+
* | Static Public Method YCL_TOKEN=>GENERATE
* +-------------------------------------------------------------------------------------------------+
* | [<-()] RESULT TYPE STRING
* +--------------------------------------------------------------------------------------</SIGNATURE>
METHOD generate.
DATA tsl TYPE timestampl.
GET TIME STAMP FIELD tsl.
DATA time TYPE string.
time = tsl.
DATA gen TYPE string.
gen = time(11).
*Encode String to Base64
CALL METHOD cl_http_utility=>if_http_utility~encode_base64
EXPORTING
unencoded = gen
RECEIVING
encoded = result.
ENDMETHOD.
* <SIGNATURE>---------------------------------------------------------------------------------------+
* | Static Public Method YCL_TOKEN=>VALIDATE
* +-------------------------------------------------------------------------------------------------+
* | [--->] TOKEN TYPE STRING
* | [<-()] RESULT TYPE ABAP_BOOL
* +--------------------------------------------------------------------------------------</SIGNATURE>
METHOD validate.
DATA:
lv_token type string.
CALL METHOD cl_http_utility=>if_http_utility~decode_base64
EXPORTING
encoded = token
RECEIVING
decoded = lv_token.
DATA tsl TYPE timestampl.
GET TIME STAMP FIELD tsl.
DATA time TYPE string.
time = tsl.
DATA gen TYPE string.
gen = time(11).
IF gen EQ lv_token.
result = abap_true.
ELSE.
result = abap_false.
ENDIF.
ENDMETHOD.
ENDCLASS.