Skip to content

Commit 4113b90

Browse files
committed
Add options to install/update domain certificate
1 parent 72d8266 commit 4113b90

File tree

5 files changed

+73
-50
lines changed

5 files changed

+73
-50
lines changed

src/#apmg#cl_strust.clas.abap

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@ CLASS /apmg/cl_strust DEFINITION
1313
************************************************************************
1414
PUBLIC SECTION.
1515

16-
CONSTANTS c_version TYPE string VALUE '2.0.1' ##NEEDED.
16+
CONSTANTS c_version TYPE string VALUE '2.0.2' ##NEEDED.
1717

1818
CONSTANTS:
1919
BEGIN OF c_context ##NEEDED,

src/#apmg#strust_installer.prog.abap

Lines changed: 34 additions & 28 deletions
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,8 @@ SELECTION-SCREEN END OF BLOCK b2.
2020
SELECTION-SCREEN BEGIN OF BLOCK b3 WITH FRAME TITLE TEXT-t03.
2121
PARAMETERS:
2222
p_passwd TYPE string LOWER CASE,
23-
p_root AS CHECKBOX DEFAULT abap_false,
23+
p_root AS CHECKBOX DEFAULT abap_true,
24+
p_main AS CHECKBOX DEFAULT abap_true,
2425
p_test AS CHECKBOX DEFAULT abap_true.
2526
SELECTION-SCREEN END OF BLOCK b3.
2627

@@ -84,7 +85,7 @@ START-OF-SELECTION.
8485
STOP.
8586
ENDIF.
8687

87-
" We finally have a certificate that can be used for the update, yay!
88+
" We finally have a certificate that can be used for the install, yay!
8889

8990
" Root and intermediate certificates
9091
IF p_root = abap_true.
@@ -117,42 +118,47 @@ START-OF-SELECTION.
117118

118119
ENDIF.
119120

120-
" Main certificate
121-
DATA(peer_pem) = ajson->get( '/peerCertificate/pem' ).
122-
DATA(peer_date_from) = ajson->get( '/peerCertificate/validFrom' ).
123-
DATA(peer_date_to) = ajson->get( '/peerCertificate/validTo' ).
124-
DATA(peer_subject) = 'CN=' && ajson->get( '/peerCertificate/subject/CN' ).
125-
IF peer_subject = 'CN='.
126-
peer_subject = 'O=' && ajson->get( '/peerCertificate/subject/O' ).
127-
ENDIF.
128-
IF strlen( peer_subject ) > 78.
129-
peer_subject = peer_subject(75) && '...'.
130-
ENDIF.
121+
" Domain certificate
122+
IF p_main = abap_true.
123+
124+
DATA(peer_pem) = ajson->get( '/peerCertificate/pem' ).
125+
DATA(peer_date_from) = ajson->get( '/peerCertificate/validFrom' ).
126+
DATA(peer_date_to) = ajson->get( '/peerCertificate/validTo' ).
127+
DATA(peer_subject) = 'CN=' && ajson->get( '/peerCertificate/subject/CN' ).
128+
IF peer_subject = 'CN='.
129+
peer_subject = 'O=' && ajson->get( '/peerCertificate/subject/O' ).
130+
ENDIF.
131+
IF strlen( peer_subject ) > 78.
132+
peer_subject = peer_subject(75) && '...'.
133+
ENDIF.
134+
135+
IF p_test = abap_false.
136+
strust->add_pem( peer_pem ).
137+
ENDIF.
138+
139+
WRITE: /10 'New certificate added:' COLOR COL_POSITIVE,
140+
AT 50 peer_subject,
141+
AT 130 peer_date_from(10),
142+
AT 145 peer_date_to(10),
143+
AT 158 ''.
131144

132-
IF p_test = abap_false.
133-
strust->add_pem( peer_pem ).
134145
ENDIF.
135146

136-
WRITE: /10 'New certificate added:' COLOR COL_POSITIVE,
137-
AT 50 peer_subject,
138-
AT 130 peer_date_from(10),
139-
AT 145 peer_date_to(10),
140-
AT 158 ''.
141-
142147
ULINE.
143148

144149
IF p_test = abap_true.
145150
WRITE: / 'Test run' COLOR COL_TOTAL, '(changes were not saved)'.
146-
STOP.
147-
ENDIF.
151+
ELSE.
152+
153+
" Load and lock
154+
strust->load( ).
148155

149-
" Load and lock
150-
strust->load( ).
156+
" Save changes
157+
strust->update( ).
151158

152-
" Save changes
153-
strust->update( ).
159+
WRITE / 'Certificates saved' COLOR COL_POSITIVE.
154160

155-
WRITE / 'Certificates saved' COLOR COL_POSITIVE.
161+
ENDIF.
156162

157163
CATCH /apmg/cx_error INTO error.
158164
WRITE: / 'Error updating certificate:' COLOR COL_NEGATIVE, error->get_text( ).

src/#apmg#strust_installer.prog.xml

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -51,6 +51,12 @@
5151
<ENTRY>Domain</ENTRY>
5252
<LENGTH>14</LENGTH>
5353
</item>
54+
<item>
55+
<ID>S</ID>
56+
<KEY>P_MAIN</KEY>
57+
<ENTRY>Add domain certificate</ENTRY>
58+
<LENGTH>30</LENGTH>
59+
</item>
5460
<item>
5561
<ID>S</ID>
5662
<KEY>P_PASSWD</KEY>

src/#apmg#strust_updater.prog.abap

Lines changed: 26 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -21,8 +21,9 @@ SELECTION-SCREEN BEGIN OF BLOCK b3 WITH FRAME TITLE TEXT-t03.
2121
PARAMETERS:
2222
p_days TYPE i DEFAULT 30,
2323
p_passwd TYPE string LOWER CASE,
24-
p_root AS CHECKBOX DEFAULT abap_false,
25-
p_remove AS CHECKBOX DEFAULT abap_false,
24+
p_root AS CHECKBOX DEFAULT abap_true,
25+
p_main AS CHECKBOX DEFAULT abap_true,
26+
p_remove AS CHECKBOX DEFAULT abap_true,
2627
p_test AS CHECKBOX DEFAULT abap_true.
2728
SELECTION-SCREEN END OF BLOCK b3.
2829

@@ -167,28 +168,32 @@ START-OF-SELECTION.
167168

168169
ENDIF.
169170

170-
" Main certificate
171-
DATA(peer_pem) = ajson->get( '/peerCertificate/pem' ).
172-
DATA(peer_date_from) = ajson->get( '/peerCertificate/validFrom' ).
173-
DATA(peer_date_to) = ajson->get( '/peerCertificate/validTo' ).
174-
DATA(peer_subject) = 'CN=' && ajson->get( '/peerCertificate/subject/CN' ).
175-
IF peer_subject = 'CN='.
176-
peer_subject = 'O=' && ajson->get( '/peerCertificate/subject/O' ).
177-
ENDIF.
178-
IF strlen( peer_subject ) > 78.
179-
peer_subject = peer_subject(75) && '...'.
180-
ENDIF.
171+
" Domain certificate
172+
IF p_main = abap_true.
173+
174+
DATA(peer_pem) = ajson->get( '/peerCertificate/pem' ).
175+
DATA(peer_date_from) = ajson->get( '/peerCertificate/validFrom' ).
176+
DATA(peer_date_to) = ajson->get( '/peerCertificate/validTo' ).
177+
DATA(peer_subject) = 'CN=' && ajson->get( '/peerCertificate/subject/CN' ).
178+
IF peer_subject = 'CN='.
179+
peer_subject = 'O=' && ajson->get( '/peerCertificate/subject/O' ).
180+
ENDIF.
181+
IF strlen( peer_subject ) > 78.
182+
peer_subject = peer_subject(75) && '...'.
183+
ENDIF.
184+
185+
IF p_test = abap_false.
186+
strust->add_pem( peer_pem ).
187+
ENDIF.
188+
189+
WRITE: /10 'New certificate added' COLOR COL_POSITIVE,
190+
AT 50 peer_subject,
191+
AT 130 peer_date_from(10),
192+
AT 145 peer_date_to(10),
193+
AT 158 ''.
181194

182-
IF p_test = abap_false.
183-
strust->add_pem( peer_pem ).
184195
ENDIF.
185196

186-
WRITE: /10 'New certificate added' COLOR COL_POSITIVE,
187-
AT 50 peer_subject,
188-
AT 130 peer_date_from(10),
189-
AT 145 peer_date_to(10),
190-
AT 158 ''.
191-
192197
CATCH /apmg/cx_error INTO error.
193198
WRITE: /10 'Error updating certificate:' COLOR COL_NEGATIVE, error->get_text( ).
194199
ENDTRY.

src/#apmg#strust_updater.prog.xml

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -51,6 +51,12 @@
5151
<ENTRY>Minimum days before reneval</ENTRY>
5252
<LENGTH>35</LENGTH>
5353
</item>
54+
<item>
55+
<ID>S</ID>
56+
<KEY>P_MAIN</KEY>
57+
<ENTRY>Update domain certificate</ENTRY>
58+
<LENGTH>33</LENGTH>
59+
</item>
5460
<item>
5561
<ID>S</ID>
5662
<KEY>P_PASSWD</KEY>

0 commit comments

Comments
 (0)