[AB-xxx] adding user agent for all outgoing okhttp requests

This commit is contained in:
Sheldan
2025-09-11 00:52:49 +02:00
parent 2f18b7431d
commit e265eb6760
4 changed files with 34 additions and 6 deletions

View File

@@ -39,7 +39,7 @@ public class WikipediaServiceBean implements WikipediaService {
Response response = okHttpClient.newCall(request).execute();
if(!response.isSuccessful()) {
if(log.isDebugEnabled()) {
log.error("Failed to retrieve wikipedia summary. Response had code {} with body {}.",
log.debug("Failed to retrieve wikipedia summary. Response had code {} with body {}.",
response.code(), response.body());
}
throw new WikipediaRequestException(response.code());

View File

@@ -6,7 +6,6 @@ import com.google.gson.GsonBuilder;
import com.google.gson.typeadapters.RuntimeTypeAdapterFactory;
import dev.sheldan.abstracto.core.logging.OkHttpLogger;
import dev.sheldan.abstracto.core.metric.OkHttpMetrics;
import dev.sheldan.abstracto.core.service.BotService;
import dev.sheldan.abstracto.core.templating.model.messagecomponents.ActionRowButtonConfig;
import dev.sheldan.abstracto.core.templating.model.messagecomponents.ActionRowItemConfig;
import dev.sheldan.abstracto.core.templating.model.messagecomponents.ComponentConfig;
@@ -37,15 +36,15 @@ import java.util.List;
@Configuration
public class CoreConfig {
@Autowired
private BotService botService;
@Autowired
private OkHttpMetrics okHttpMetrics;
@Autowired
private OkHttpLogger okHttpLogger;
@Autowired
private OkHttpUserAgentSetter okHttpUserAgentSetter;
@Autowired
private List<CustomJsonSerializer> customJsonSerializers;
@@ -95,6 +94,7 @@ public class CoreConfig {
return new OkHttpClient.Builder()
.addInterceptor(okHttpMetrics)
.addInterceptor(okHttpLogger)
.addInterceptor(okHttpUserAgentSetter)
.build();
}

View File

@@ -0,0 +1,26 @@
package dev.sheldan.abstracto.core.config;
import java.io.IOException;
import okhttp3.Interceptor;
import okhttp3.Request;
import okhttp3.Response;
import org.jetbrains.annotations.NotNull;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Component;
@Component
public class OkHttpUserAgentSetter implements Interceptor {
@Value("${abstracto.okhttp.useragent}")
private String userAgent;
@NotNull
@Override
public Response intercept(@NotNull Chain chain) throws IOException {
Request originalRequest = chain.request();
Request requestWithUserAgent = originalRequest.newBuilder()
.header("User-Agent", userAgent)
.build();
return chain.proceed(requestWithUserAgent);
}
}

View File

@@ -22,4 +22,6 @@ abstracto.systemConfigs.maxMessages.name=maxMessages
abstracto.systemConfigs.maxMessages.longValue=3
abstracto.featureFlags.core.featureName=core
abstracto.featureFlags.core.enabled=true
abstracto.featureFlags.core.enabled=true
abstracto.okhttp.useragent=abstracto (https://github.com/Sheldan/)