stop annoying fb identify tags in URL
This commit is contained in:
parent
d10f5734fb
commit
0ebec74bed
3 changed files with 56 additions and 1 deletions
|
@ -16,6 +16,7 @@ public class Beans implements WebMvcConfigurer {
|
||||||
@Override
|
@Override
|
||||||
public void addInterceptors(InterceptorRegistry registry) {
|
public void addInterceptors(InterceptorRegistry registry) {
|
||||||
registry.addInterceptor(localeChangeInterceptor());
|
registry.addInterceptor(localeChangeInterceptor());
|
||||||
|
registry.addInterceptor(new CleanUrlInterceptor());
|
||||||
}
|
}
|
||||||
|
|
||||||
@Bean
|
@Bean
|
||||||
|
|
|
@ -0,0 +1,44 @@
|
||||||
|
package stirling.software.SPDF.config;
|
||||||
|
import org.springframework.web.servlet.HandlerInterceptor;
|
||||||
|
import org.springframework.web.servlet.ModelAndView;
|
||||||
|
|
||||||
|
import jakarta.servlet.http.HttpServletResponse;
|
||||||
|
import jakarta.servlet.http.HttpServletRequest;
|
||||||
|
import java.util.regex.Matcher;
|
||||||
|
import java.util.regex.Pattern;
|
||||||
|
|
||||||
|
public class CleanUrlInterceptor implements HandlerInterceptor {
|
||||||
|
|
||||||
|
private static final Pattern LANG_PATTERN = Pattern.compile("&?lang=([^&]+)");
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception {
|
||||||
|
String queryString = request.getQueryString();
|
||||||
|
if (queryString != null && !queryString.isEmpty()) {
|
||||||
|
String requestURI = request.getRequestURI();
|
||||||
|
|
||||||
|
// Keep the lang parameter if it exists
|
||||||
|
Matcher langMatcher = LANG_PATTERN.matcher(queryString);
|
||||||
|
String langQueryString = langMatcher.find() ? "lang=" + langMatcher.group(1) : "";
|
||||||
|
|
||||||
|
// Check if there are any other query parameters besides the lang parameter
|
||||||
|
String remainingQueryString = queryString.replaceAll(LANG_PATTERN.pattern(), "").replaceAll("&+", "&").replaceAll("^&|&$", "");
|
||||||
|
|
||||||
|
if (!remainingQueryString.isEmpty()) {
|
||||||
|
// Redirect to the URL without other query parameters
|
||||||
|
String redirectUrl = requestURI + (langQueryString.isEmpty() ? "" : "?" + langQueryString);
|
||||||
|
response.sendRedirect(redirectUrl);
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void postHandle(HttpServletRequest request, HttpServletResponse response, Object handler, ModelAndView modelAndView) {
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void afterCompletion(HttpServletRequest request, HttpServletResponse response, Object handler, Exception ex) {
|
||||||
|
}
|
||||||
|
}
|
|
@ -37,6 +37,8 @@ public class MergeController {
|
||||||
for (PDPage page : pages) {
|
for (PDPage page : pages) {
|
||||||
mergedDoc.addPage(page);
|
mergedDoc.addPage(page);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// Return the merged document
|
// Return the merged document
|
||||||
|
@ -55,8 +57,16 @@ public class MergeController {
|
||||||
|
|
||||||
PDDocument mergedDoc = mergeDocuments(documents);
|
PDDocument mergedDoc = mergeDocuments(documents);
|
||||||
|
|
||||||
|
|
||||||
// Return the merged PDF as a response
|
// Return the merged PDF as a response
|
||||||
return PdfUtils.pdfDocToWebResponse(mergedDoc, files[0].getOriginalFilename().replaceFirst("[.][^.]+$", "") + "_merged.pdf");
|
ResponseEntity<byte[]> response = PdfUtils.pdfDocToWebResponse(mergedDoc, files[0].getOriginalFilename().replaceFirst("[.][^.]+$", "") + "_merged.pdf");
|
||||||
|
|
||||||
|
for (PDDocument doc : documents) {
|
||||||
|
// Close the document after processing
|
||||||
|
doc.close();
|
||||||
|
}
|
||||||
|
|
||||||
|
return response;
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
Loading…
Reference in a new issue