Skip to content

Commit

Permalink
chore(swagger): Code minus kork constraints to switch to openapi.
Browse files Browse the repository at this point in the history
  • Loading branch information
jasonmcintosh committed Jul 18, 2024
1 parent 08fa4c8 commit 3850647
Show file tree
Hide file tree
Showing 10 changed files with 25 additions and 41 deletions.
1 change: 0 additions & 1 deletion build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,6 @@ allprojects {
apply plugin: 'org.openrewrite.rewrite'

group = "io.spinnaker.gate"

if ([korkVersion, fiatVersion].find { it.endsWith('-SNAPSHOT') }) {
repositories {
mavenLocal()
Expand Down
3 changes: 0 additions & 3 deletions gate-bom/gate-bom.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -28,9 +28,6 @@ dependencies {
api("io.spinnaker.fiat:fiat-api:$fiatVersion")
api("io.spinnaker.fiat:fiat-core:$fiatVersion")

api("io.swagger.core.v3:swagger-annotations:2.2.22")
api("io.swagger.core.v3:swagger-core:2.2.22")


rootProject
.subprojects
Expand Down
2 changes: 0 additions & 2 deletions gate-integrations-gremlin/gate-integrations-gremlin.gradle
Original file line number Diff line number Diff line change
@@ -1,6 +1,4 @@
dependencies {
implementation platform(project(":gate-bom"))

implementation project(":gate-core")
implementation "io.swagger.core.v3:swagger-annotations"

Expand Down
2 changes: 1 addition & 1 deletion gate-web/gate-web.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -53,7 +53,7 @@ dependencies {
force = true // Unpin it after adoption of spring-boot-starter-graphql
}

implementation "io.springfox:springfox-swagger2"
implementation "org.springdoc:springdoc-openapi-ui:1.8.0"

implementation "io.cloudevents:cloudevents-spring:2.5.0"
implementation "io.cloudevents:cloudevents-json-jackson:2.5.0"
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -26,7 +26,7 @@
public class CloudEventHandlerConfiguration implements WebMvcConfigurer {

@Override
public void configureMessageConverters(List<HttpMessageConverter<?>> converters) {
public void extendMessageConverters(List<HttpMessageConverter<?>> converters) {
converters.add(cloudEventHttpMessageConverter());
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,6 @@ package com.netflix.spinnaker.gate.config

import com.fasterxml.jackson.databind.ObjectMapper
import com.fasterxml.jackson.databind.SerializationFeature
import com.fasterxml.jackson.dataformat.yaml.YAMLFactory
import com.netflix.spectator.api.Registry
import com.netflix.spinnaker.config.DefaultServiceEndpoint
import com.netflix.spinnaker.config.OkHttp3ClientConfiguration
Expand All @@ -28,8 +27,6 @@ import com.netflix.spinnaker.fiat.shared.FiatPermissionEvaluator
import com.netflix.spinnaker.fiat.shared.FiatService
import com.netflix.spinnaker.fiat.shared.FiatStatus
import com.netflix.spinnaker.filters.AuthenticatedRequestFilter
import com.netflix.spinnaker.gate.converters.JsonHttpMessageConverter
import com.netflix.spinnaker.gate.converters.YamlHttpMessageConverter
import com.netflix.spinnaker.gate.filters.RequestLoggingFilter
import com.netflix.spinnaker.gate.filters.RequestSheddingFilter
import com.netflix.spinnaker.gate.filters.ResetAuthenticatedRequestFilter
Expand Down Expand Up @@ -57,7 +54,6 @@ import org.springframework.context.annotation.Configuration
import org.springframework.context.annotation.Import
import org.springframework.context.annotation.Primary
import org.springframework.core.Ordered
import org.springframework.http.converter.json.AbstractJackson2HttpMessageConverter
import org.springframework.http.converter.json.Jackson2ObjectMapperBuilder
import org.springframework.util.CollectionUtils
import org.springframework.web.client.RestTemplate
Expand Down Expand Up @@ -101,19 +97,6 @@ class GateConfig {
@Autowired
Jackson2ObjectMapperBuilder objectMapperBuilder

/**
* This needs to be before the yaml converter in order for json to be the default
* response type.
*/
@Bean
AbstractJackson2HttpMessageConverter jsonHttpMessageConverter() {
return new JsonHttpMessageConverter(objectMapperBuilder.build())
}

@Bean
AbstractJackson2HttpMessageConverter yamlHttpMessageConverter() {
return new YamlHttpMessageConverter(objectMapperBuilder.factory(new YAMLFactory()).build())
}

@Bean
RequestContextProvider requestContextProvider() {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -16,27 +16,32 @@

package com.netflix.spinnaker.gate.config


import com.fasterxml.jackson.dataformat.yaml.YAMLFactory
import com.netflix.spectator.api.Registry
import com.netflix.spinnaker.gate.converters.JsonHttpMessageConverter
import com.netflix.spinnaker.gate.converters.YamlHttpMessageConverter
import com.netflix.spinnaker.gate.filters.ContentCachingFilter
import com.netflix.spinnaker.gate.interceptors.RequestContextInterceptor
import com.netflix.spinnaker.gate.interceptors.ResponseHeaderInterceptor
import com.netflix.spinnaker.gate.interceptors.ResponseHeaderInterceptorConfigurationProperties
import com.netflix.spinnaker.gate.retrofit.UpstreamBadRequest
import com.netflix.spinnaker.kork.dynamicconfig.DynamicConfigService
import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty;
import com.netflix.spinnaker.kork.web.interceptors.MetricsInterceptor
import org.springframework.beans.factory.annotation.Autowired
import org.springframework.beans.factory.annotation.Value
import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty
import org.springframework.boot.context.properties.EnableConfigurationProperties
import org.springframework.context.ApplicationContext
import org.springframework.context.annotation.Bean
import org.springframework.context.annotation.ComponentScan
import org.springframework.context.annotation.Configuration
import org.springframework.http.HttpStatus
import org.springframework.http.converter.HttpMessageConverter
import org.springframework.http.converter.json.Jackson2ObjectMapperBuilder
import org.springframework.web.bind.annotation.ControllerAdvice
import org.springframework.web.bind.annotation.ExceptionHandler
import org.springframework.web.bind.annotation.ResponseBody
import org.springframework.web.servlet.config.annotation.ContentNegotiationConfigurer
import org.springframework.web.servlet.config.annotation.InterceptorRegistry
import org.springframework.web.servlet.config.annotation.WebMvcConfigurer
import org.springframework.web.servlet.handler.HandlerMappingIntrospector
Expand All @@ -54,6 +59,9 @@ public class GateWebConfig implements WebMvcConfigurer {

@Autowired
DynamicConfigService dynamicConfigService
@Autowired
Jackson2ObjectMapperBuilder objectMapperBuilder


@Autowired
Registry spectatorRegistry
Expand All @@ -68,7 +76,7 @@ public class GateWebConfig implements WebMvcConfigurer {
public void addInterceptors(InterceptorRegistry registry) {
registry.addInterceptor(
new MetricsInterceptor(
this.registry, "controller.invocations", ["account", "region"], ["BasicErrorController"]
this.registry, "controller.invocations", ["account", "region"], null, ["BasicErrorController"]
)
)

Expand All @@ -81,8 +89,12 @@ public class GateWebConfig implements WebMvcConfigurer {
return new HandlerMappingIntrospector(context)
}


// Add the ability to disable as this breaks numerous integration patterns
@Override
void extendMessageConverters(List<HttpMessageConverter<?>> converters) {
converters.add(new JsonHttpMessageConverter(objectMapperBuilder.build()))
converters.add( new YamlHttpMessageConverter(objectMapperBuilder.factory(new YAMLFactory()).build()))
}
// Add the ability to disable as this breaks numerous integration patterns
@Bean
@ConditionalOnProperty(value = "content.cachingFilter.enabled", matchIfMissing = true)
Filter contentCachingFilter() {
Expand Down Expand Up @@ -126,9 +138,4 @@ public class GateWebConfig implements WebMvcConfigurer {
]
}
}

@Override
void configureContentNegotiation(ContentNegotiationConfigurer configurer) {
configurer.favorPathExtension(false)
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -31,7 +31,6 @@ import org.springframework.web.bind.annotation.RequestMapping
import org.springframework.web.bind.annotation.RequestMethod
import org.springframework.web.bind.annotation.RequestParam
import org.springframework.web.bind.annotation.RestController
import springfox.documentation.annotations.ApiIgnore

import javax.servlet.http.HttpServletResponse
import java.util.regex.Pattern
Expand Down Expand Up @@ -69,9 +68,9 @@ class AuthController {
}
}

@Operation(summary = "Get user")
@Operation(summary = "Get user", hidden=true)
@RequestMapping(value = "/user", method = RequestMethod.GET)
User user(@ApiIgnore @SpinnakerUser User user) {
User user(@SpinnakerUser User user) {
if (!user) {
return user
}
Expand All @@ -83,9 +82,9 @@ class AuthController {
return user
}

@Operation(summary = "Get service accounts")
@Operation(summary = "Get service accounts", hidden=true)
@RequestMapping(value = "/user/serviceAccounts", method = RequestMethod.GET)
List<String> getServiceAccounts(@ApiIgnore @SpinnakerUser User user,
List<String> getServiceAccounts(@SpinnakerUser User user,
@RequestParam(name = "application", required = false) String application) {

String appName = Optional.ofNullable(application)
Expand Down
1 change: 1 addition & 0 deletions gate-web/src/main/resources/application.properties
Original file line number Diff line number Diff line change
Expand Up @@ -23,3 +23,4 @@ spring.jackson.deserialization.read-unknown-enum-values-as-null=true
# https://github.com/spinnaker/gate/pull/230
# Either way, this filter needs to come before the AuthenticatedRequestFilter
spring.security.filter.order=0
springdoc.writer-with-default-pretty-printer=true
2 changes: 1 addition & 1 deletion gradle.properties
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
enablePublishing=false
fiatVersion=1.48.0
includeProviders=basic,iap,ldap,oauth2,saml,x509
korkVersion=7.235.0
korkVersion=opendocs-upgrade-SNAPSHOT
kotlinVersion=1.6.21
org.gradle.parallel=true
spinnakerGradleVersion=8.32.1
Expand Down

0 comments on commit 3850647

Please sign in to comment.