Skip to content

Commit b89915f

Browse files
authored
Merge pull request #10 from ruibaby/fix/configmap
fix: prevent page access issue when configmap is missing
2 parents a57c51c + 113717e commit b89915f

File tree

3 files changed

+12
-7
lines changed

3 files changed

+12
-7
lines changed

build.gradle

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@ repositories {
1616
}
1717

1818
dependencies {
19-
implementation platform('run.halo.tools.platform:plugin:2.13.0-SNAPSHOT')
19+
implementation platform('run.halo.tools.platform:plugin:2.17.0-SNAPSHOT')
2020
compileOnly 'run.halo.app:api'
2121

2222
testImplementation 'run.halo.app:api'

src/main/java/se/webp/plugin/WebpCloudImageOptimizerWebFilter.java

Lines changed: 9 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -106,6 +106,7 @@ public Mono<Void> writeWith(@NonNull Publisher<? extends DataBuffer> body) {
106106
var html = byteBuffersToString(byteBuffers);
107107

108108
return Settings.getBasicConfig(settingFetcher)
109+
.switchIfEmpty(Mono.just(new Settings.BasicConfig()))
109110
.flatMap(config -> {
110111
var apiKeySecret = config.getApiKeySecret();
111112
var proxies = config.getProxies();
@@ -125,15 +126,18 @@ public Mono<Void> writeWith(@NonNull Publisher<? extends DataBuffer> body) {
125126

126127
private String replaceImageSrc(String html, Proxy[] proxies) {
127128
Document document = Jsoup.parse(html);
128-
String externalUrl = externalUrlSupplier.get().toString();
129+
var externalUrl = externalUrlSupplier.getRaw();
129130

130131
document.select("img").forEach(img -> {
131132
String src = img.attr("src");
132133

133134
if (!PathUtils.isAbsoluteUri(src)) {
134-
String proxyUrl = getProxyUrl(src, proxies, externalUrl);
135-
if (proxyUrl != null) {
136-
img.attr("src", proxyUrl + src);
135+
if (externalUrl != null) {
136+
String proxyUrl = getProxyUrl(proxies, externalUrl.toString());
137+
138+
if (proxyUrl != null) {
139+
img.attr("src", proxyUrl + src);
140+
}
137141
}
138142
} else {
139143
for (Proxy proxy : proxies) {
@@ -148,7 +152,7 @@ private String replaceImageSrc(String html, Proxy[] proxies) {
148152
return document.outerHtml();
149153
}
150154

151-
private String getProxyUrl(String src, Proxy[] proxies, String externalUrl) {
155+
private String getProxyUrl(Proxy[] proxies, String externalUrl) {
152156
for (Proxy proxy : proxies) {
153157
if (proxy.getOrigin_url().equals(externalUrl)) {
154158
return proxy.getProxy_url();

ui/src/components/ApiKeyBindingModal.vue

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -48,7 +48,8 @@ async function onSubmit(data: { apiKeySecret: string }) {
4848
const configMapToCreate: ConfigMap = {
4949
data: {
5050
basic: JSON.stringify({
51-
basic: { apiKeySecret: data.apiKeySecret, proxies: [] },
51+
apiKeySecret: data.apiKeySecret,
52+
proxies: [],
5253
}),
5354
},
5455
apiVersion: "v1alpha1",

0 commit comments

Comments
 (0)