Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,7 @@ import java.util.*
@Configuration
class SwaggerConfig {
@Value("\${swagger.authUrl}")
val authUrl: String = ""
private lateinit var authUrl: String

@Bean
fun opexApi(): Docket {
Expand Down Expand Up @@ -94,4 +94,4 @@ class SwaggerConfig {
.scopeSeparator(",")
.build()
}
}
}
5 changes: 5 additions & 0 deletions BlockchainGateway/bc-gateway-app/pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -103,6 +103,11 @@
<artifactId>bc-gateway-persister-postgres</artifactId>
<version>${bc-gateway.version}</version>
</dependency>
<dependency>
<groupId>io.springfox</groupId>
<artifactId>springfox-boot-starter</artifactId>
<version>3.0.0</version>
</dependency>
</dependencies>

<dependencyManagement>
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,97 @@
package co.nilin.opex.bcgateway.app.config

import org.springframework.beans.factory.annotation.Value
import org.springframework.context.annotation.Bean
import org.springframework.context.annotation.Configuration
import org.springframework.security.core.annotation.AuthenticationPrincipal
import springfox.documentation.builders.ApiInfoBuilder
import springfox.documentation.builders.OAuthBuilder
import springfox.documentation.builders.PathSelectors
import springfox.documentation.builders.RequestParameterBuilder
import springfox.documentation.service.*
import springfox.documentation.spi.DocumentationType
import springfox.documentation.spi.service.contexts.SecurityContext
import springfox.documentation.spring.web.plugins.Docket
import springfox.documentation.swagger.web.SecurityConfiguration
import springfox.documentation.swagger.web.SecurityConfigurationBuilder
import java.security.Principal
import java.util.*

@Configuration
class SwaggerConfig {
@Value("\${swagger.authUrl}")
private lateinit var authUrl: String

@Bean
fun opexBCGateway(): Docket {
return Docket(DocumentationType.SWAGGER_2)
.groupName("opex-bc-gateway")
.apiInfo(apiInfo())
.select()
.paths(PathSelectors.regex("^/actuator.*").negate())
.build()
.globalRequestParameters(
Collections.singletonList(
RequestParameterBuilder()
.name("content-type")
.description("content-type")
.`in`(ParameterType.HEADER)
.required(true)
.build()
)
)
.ignoredParameterTypes(AuthenticationPrincipal::class.java, Principal::class.java)
.useDefaultResponseMessages(false)
.securitySchemes(Collections.singletonList(oauth()))
.securityContexts(Collections.singletonList(securityContext()))
}

private fun apiInfo(): ApiInfo {
return ApiInfoBuilder()
.title("OPEX API")
.description("Backend for opex exchange.")
.license("MIT License")
.licenseUrl("https://github.com/opexdev/Back-end/blob/feature/1-MVP/LICENSE")
.version("0.1")
.build()
}

private fun oauth(): SecurityScheme {
return OAuthBuilder()
.name("opex")
.grantTypes(grantTypes())
.scopes(scopes())
.build()
}

private fun scopes(): List<AuthorizationScope?> {
return listOf(AuthorizationScope("openid", "OpenId"))
}

private fun grantTypes(): List<GrantType?> {
val tokenUrl = "$authUrl/auth/realms/opex/protocol/openid-connect/token"
val grantType = ResourceOwnerPasswordCredentialsGrant(tokenUrl)
return Collections.singletonList(grantType)
}

private fun securityContext(): SecurityContext {
val securityReference = SecurityReference.builder()
.reference("opex")
.scopes(emptyArray())
.build()
return SecurityContext.builder()
.securityReferences(Collections.singletonList(securityReference))
.operationSelector { true }
.build()
}

@Bean
fun securityInfo(): SecurityConfiguration {
return SecurityConfigurationBuilder.builder()
.clientId("admin-cli")
.realm("opex")
.appName("opex")
.scopeSeparator(",")
.build()
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -29,3 +29,5 @@ spring:
logging:
level:
org.apache.kafka: DEBUG

swagger.authUrl: https://api.opex.dev
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,7 @@ import java.util.*
@Configuration
class SwaggerConfig {
@Value("\${swagger.authUrl}")
val authUrl: String = ""
private lateinit var authUrl: String

@Bean
fun opexMatchingGateway(): Docket {
Expand Down Expand Up @@ -95,4 +95,4 @@ class SwaggerConfig {
.scopeSeparator(",")
.build()
}
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,7 @@ import java.util.*
@Configuration
class SwaggerConfig {
@Value("\${swagger.authUrl}")
val authUrl: String = ""
private lateinit var authUrl: String

@Bean
fun opexWallet(): Docket {
Expand Down Expand Up @@ -96,4 +96,4 @@ class SwaggerConfig {
.scopeSeparator(",")
.build()
}
}
}