Closed
Description
Describe the bug
- enabling
query-config-enabled
when any other boolean parameter ofSwaggerUiConfigProperties
is set breaks redirection to UI
To Reproduce
With springdoc-openapi 1.6.7 and:
springdoc:
swagger-ui:
path: /api/
show-extensions: true
query-config-enabled: true
go to /api/
URL. SpringDoc will throw an exception:
Caused by: java.lang.ClassCastException: class java.lang.Boolean cannot be cast to class java.lang.String (java.lang.Boolean and java.lang.String are in module java.base of loader 'bootstrap')
at org.springdoc.ui.AbstractSwaggerWelcome.lambda$getUriComponentsBuilder$6(AbstractSwaggerWelcome.java:163)
...
at java.base/java.util.TreeMap$EntrySpliterator.forEachRemaining(TreeMap.java:3287)
at java.base/java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:509)
at java.base/java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:499)
at java.base/java.util.stream.ForEachOps$ForEachOp.evaluateSequential(ForEachOps.java:150)
at java.base/java.util.stream.ForEachOps$ForEachOp$OfRef.evaluateSequential(ForEachOps.java:173)
at java.base/java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:234)
at java.base/java.util.stream.ReferencePipeline.forEach(ReferencePipeline.java:596)
at org.springdoc.ui.AbstractSwaggerWelcome.getUriComponentsBuilder(AbstractSwaggerWelcome.java:164)
at org.springdoc.webmvc.ui.SwaggerWelcomeCommon.redirectToUi(SwaggerWelcomeCommon.java:43)
at org.springdoc.webmvc.ui.SwaggerWelcomeWebMvc.redirectToUi(SwaggerWelcomeWebMvc.java:88)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77)
at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.base/java.lang.reflect.Method.invoke(Method.java:568)
at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:205)
at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:150)
at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:117)
at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:895)
at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:808)
at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87)
at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1067)
at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:963)
at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1006)
... 103 common frames omitted
Additional context
Looks like this is caused by treating all entries returned by swaggerUiConfigParameters.getConfigParameters()
as Strings at line 163: