Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
16 changes: 10 additions & 6 deletions ui/src/views/network/CreateVpnCustomerGateway.vue
Original file line number Diff line number Diff line change
Expand Up @@ -258,9 +258,13 @@ export default {
'Group 15': 'modp3072',
'Group 16': 'modp4096',
'Group 17': 'modp6144',
'Group 18': 'modp8192'
'Group 18': 'modp8192',
'Group 22': 'modp1024s160',
'Group 23': 'modp2048s224',
'Group 24': 'modp2048s256',
'Group 31': 'curve25519'
},
ikeDhGroupInitialValue: 'Group 5(modp1536)',
ikeDhGroupInitialValue: 'Group 31(curve25519)',
Copy link

Copilot AI Mar 10, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

ikeDhGroupInitialValue is set to a label-like string (Group 31(curve25519)), but the <a-select> for IKE DH uses :value="DHGroups[group]" (e.g. curve25519). This mismatch makes the initial-value comparison in handleSubmit unreliable and contributes to generating invalid ikepolicy values. Set ikeDhGroupInitialValue to the actual option value (e.g. curve25519) or remove the special-casing logic entirely and always append values.ikeDh.

Suggested change
ikeDhGroupInitialValue: 'Group 31(curve25519)',
ikeDhGroupInitialValue: 'curve25519',

Copilot uses AI. Check for mistakes.
isSubmitted: false,
ikeversion: 'ike'
}
Expand All @@ -275,12 +279,12 @@ export default {
initForm () {
this.formRef = ref()
this.form = reactive({
ikeEncryption: 'aes128',
ikeEncryption: 'aes256',
ikeHash: 'sha1',
ikeversion: 'ike',
ikeDh: 'Group 5(modp1536)',
espEncryption: 'aes128',
espHash: 'sha1',
ikeDh: 'Group 31(curve 25519)',
espEncryption: 'aes256',
Comment on lines +285 to +286
Copy link

Copilot AI Mar 9, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The default ikeDh is set to a label-like string (Group 31(...) / curve 25519), but the select stores the raw DH token (e.g., curve25519). Initialize form.ikeDh to the raw value and adjust the submit logic accordingly (it currently assumes parentheses parsing for the default), otherwise the default won’t be selected and ikepolicy may be built with an invalid DH group.

Copilot uses AI. Check for mistakes.
espHash: 'sha256',
perfectForwardSecrecy: 'None',
ikelifetime: '86400',
esplifetime: '3600',
Expand Down
2 changes: 1 addition & 1 deletion utils/src/main/java/com/cloud/utils/net/NetUtils.java
Original file line number Diff line number Diff line change
Expand Up @@ -1265,7 +1265,7 @@ public static boolean isValidS2SVpnPolicy(final String policyType, final String
if (group == null && policyType.toLowerCase().matches("ike")) {
return false; // StrongSwan requires a DH group for the IKE policy
}
if (group != null && !group.matches("modp1024|modp1536|modp2048|modp3072|modp4096|modp6144|modp8192")) {
if (group != null && !group.matches("modp1024|modp1536|modp2048|modp3072|modp4096|modp6144|modp8192|modp1024s160|modp2048s224|modp2048s256|curve25519")) {
return false;
}
}
Expand Down
4 changes: 4 additions & 0 deletions utils/src/test/java/com/cloud/utils/net/NetUtilsTest.java
Original file line number Diff line number Diff line change
Expand Up @@ -131,6 +131,10 @@ public void testIsValidS2SVpnPolicy() {
assertTrue(NetUtils.isValidS2SVpnPolicy("ike", "3des-md5;modp1024"));
assertTrue(NetUtils.isValidS2SVpnPolicy("ike", "3des-sha1;modp3072,aes128-sha1;modp1536"));
assertTrue(NetUtils.isValidS2SVpnPolicy("ike", "3des-sha256;modp3072,aes128-sha512;modp1536"));
assertTrue(NetUtils.isValidS2SVpnPolicy("ike", "aes256-sha256;modp1024s160"));
assertTrue(NetUtils.isValidS2SVpnPolicy("ike", "aes256-sha256;modp2048s224"));
assertTrue(NetUtils.isValidS2SVpnPolicy("ike", "aes256-sha256;modp2048s256"));
assertTrue(NetUtils.isValidS2SVpnPolicy("ike", "aes256-sha256;curve25519"));
assertFalse(NetUtils.isValidS2SVpnPolicy("ike", "aes128-sha1"));
assertFalse(NetUtils.isValidS2SVpnPolicy("ike", "3des-sha1"));
assertFalse(NetUtils.isValidS2SVpnPolicy("ike", "3des-sha1,aes256-sha1"));
Expand Down
Loading