Skip to content

Commit

Permalink
fix: Fix some bugs in header control configurations (#348)
Browse files Browse the repository at this point in the history
  • Loading branch information
CH3CHO authored Sep 29, 2024
1 parent 4982cc4 commit 199b623
Show file tree
Hide file tree
Showing 4 changed files with 52 additions and 11 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -32,6 +32,7 @@
import java.util.Optional;
import java.util.Set;
import java.util.regex.Pattern;
import java.util.stream.Collectors;

import javax.naming.InvalidNameException;
import javax.naming.ldap.LdapName;
Expand Down Expand Up @@ -1208,21 +1209,32 @@ private void fillIngressHeaderControlStageConfig(V1ObjectMeta metadata, HeaderCo
}
if (CollectionUtils.isNotEmpty(config.getAdd())) {
setFunctionalAnnotation(metadata, addKey,
StringUtils.join(config.getAdd().stream().map(this::getHeaderConfig).toList(), Separators.NEW_LINE),
StringUtils.join(config.getAdd().stream().map(this::getHeaderConfig).filter(Objects::nonNull).toList(),
Separators.NEW_LINE),
enabled);
}
if (CollectionUtils.isNotEmpty(config.getSet())) {
setFunctionalAnnotation(metadata, setKey,
StringUtils.join(config.getSet().stream().map(this::getHeaderConfig).toList(), Separators.NEW_LINE),
StringUtils.join(config.getSet().stream().map(this::getHeaderConfig).filter(Objects::nonNull).toList(),
Separators.NEW_LINE),
enabled);
}
if (CollectionUtils.isNotEmpty(config.getRemove())) {
setFunctionalAnnotation(metadata, removeKey, StringUtils.join(config.getRemove(), Separators.COMMA),
setFunctionalAnnotation(metadata, removeKey,
StringUtils.join(
config.getRemove().stream().filter(StringUtils::isNotEmpty).collect(Collectors.toList()),
Separators.COMMA),
enabled);
}
}

private String getHeaderConfig(Header header) {
if (StringUtils.isEmpty(header.getKey())) {
return null;
}
if (StringUtils.isEmpty(header.getValue())) {
return header.getKey() + Separators.SPACE;
}
return header.getKey() + Separators.SPACE + header.getValue();
}

Expand Down Expand Up @@ -1273,7 +1285,7 @@ private void fillIngressTls(V1ObjectMeta metadata, V1IngressSpec spec, Route rou
}

V1IngressTLS tls = new V1IngressTLS();
if (!HigressConstants.DEFAULT_DOMAIN.equals(domainName)){
if (!HigressConstants.DEFAULT_DOMAIN.equals(domainName)) {
tls.setHosts(Collections.singletonList(domainName));
}
tls.setSecretName(domain.getCertIdentifier());
Expand Down
6 changes: 5 additions & 1 deletion frontend/src/locales/en-US/translation.json
Original file line number Diff line number Diff line change
Expand Up @@ -145,7 +145,11 @@
"set": "Set",
"remove": "Remove",
"action": "Action",
"addNewRule": "Add New Rule"
"addNewRule": "Add New Rule",
"headerTypeRequired": "Please select header type",
"actionTypeRequired": "Please select action type",
"keyRequired": "Please input header key",
"valueRequired": "Please input header value"
},
"cors": {
"allowOrigins": "Allow Origins",
Expand Down
6 changes: 5 additions & 1 deletion frontend/src/locales/zh-CN/translation.json
Original file line number Diff line number Diff line change
Expand Up @@ -145,7 +145,11 @@
"set": "更新",
"remove": "删除",
"action": "操作",
"addNewRule": "添加新规则"
"addNewRule": "添加新规则",
"headerTypeRequired": "请选择Header类型",
"actionTypeRequired": "请选择操作类型",
"keyRequired": "请输入Header Key",
"valueRequired": "请输入Header Value"
},
"cors": {
"allowOrigins": "允许的访问来源",
Expand Down
31 changes: 26 additions & 5 deletions frontend/src/pages/plugin/components/HeaderModify/index.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -48,7 +48,10 @@ const HeaderModify = forwardRef((props, ref) => {
return (
<Form.Item
shouldUpdate
rules={[{ required: true }]}
rules={[{
required: true,
message: t('plugins.builtIns.headerControl.headerTypeRequired') || '',
}]}
name={[field.name, 'headerType']}
fieldKey={[field.fieldKey, 'headerType']}
>
Expand All @@ -69,7 +72,10 @@ const HeaderModify = forwardRef((props, ref) => {
return (
<Form.Item
shouldUpdate
rules={[{ required: true }]}
rules={[{
required: true,
message: t('plugins.builtIns.headerControl.actionTypeRequired') || '',
}]}
name={[field.name, 'actionType']}
fieldKey={[field.fieldKey, 'actionType']}
>
Expand All @@ -90,7 +96,10 @@ const HeaderModify = forwardRef((props, ref) => {
return (
<Form.Item
shouldUpdate
rules={[{ required: true }]}
rules={[{
required: true,
message: t('plugins.builtIns.headerControl.valueRequired') || '',
}]}
name={[field.name, 'key']}
fieldKey={[field.fieldKey, 'key']}
>
Expand All @@ -104,11 +113,23 @@ const HeaderModify = forwardRef((props, ref) => {
title: 'Header Value',
key: 'value',
dataIndex: 'value',
render(text, field, record) {
render(text, field, index) {
return (
<Form.Item
shouldUpdate
rules={[{ required: true }]}
rules={[{
validator(_, value) {
const headerList = form.getFieldValue('headerList');
if (!Array.isArray(headerList) || headerList.length === 0) {
return '';
}
const header = headerList[index];
if (header.actionType !== 'remove' && !value) {
return Promise.reject(new Error(t('plugins.builtIns.headerControl.valueRequired') || ''));
}
return Promise.resolve();
},
}]}
name={[field.name, 'value']}
fieldKey={[field.fieldKey, 'value']}
>
Expand Down

0 comments on commit 199b623

Please sign in to comment.