1
18
19 package org.springdoc.webmvc.ui;
20
21 import java.io.IOException;
22
23 import javax.servlet.http.HttpServletRequest;
24
25 import com.fasterxml.jackson.databind.ObjectMapper;
26 import org.springdoc.core.SwaggerUiOAuthProperties;
27 import org.springdoc.ui.AbstractSwaggerIndexTransformer;
28
29 import org.springframework.core.io.Resource;
30 import org.springframework.util.AntPathMatcher;
31 import org.springframework.util.CollectionUtils;
32 import org.springframework.web.servlet.resource.ResourceTransformer;
33 import org.springframework.web.servlet.resource.ResourceTransformerChain;
34 import org.springframework.web.servlet.resource.TransformedResource;
35
36 public class SwaggerIndexTransformer extends AbstractSwaggerIndexTransformer implements ResourceTransformer {
37
38 public SwaggerIndexTransformer(SwaggerUiOAuthProperties swaggerUiOAuthProperties, ObjectMapper objectMapper) {
39 super(swaggerUiOAuthProperties, objectMapper);
40 }
41
42 @Override
43 public Resource transform(HttpServletRequest request, Resource resource,
44 ResourceTransformerChain transformerChain) throws IOException {
45 final AntPathMatcher antPathMatcher = new AntPathMatcher();
46 boolean isIndexFound = antPathMatcher.match("**/swagger-uiindex.html", resource.getURL().toString());
47 if (isIndexFound && !CollectionUtils.isEmpty(swaggerUiOAuthProperties.getConfigParameters())) {
48 String html = readFullyAsString(resource.getInputStream());
49 html = addInitOauth(html);
50 return new TransformedResource(resource, html.getBytes());
51 }
52 else
53 return resource;
54 }
55
56 }