Add security for openapi endpoint doc
This commit is contained in:
parent
6d1ebcc414
commit
58087efdc1
@ -1,5 +1,7 @@
|
|||||||
package com.cubetiqs.web.config
|
package com.cubetiqs.web.config
|
||||||
|
|
||||||
|
import io.swagger.v3.oas.annotations.enums.SecuritySchemeType
|
||||||
|
import io.swagger.v3.oas.annotations.security.SecurityScheme
|
||||||
import io.swagger.v3.oas.models.ExternalDocumentation
|
import io.swagger.v3.oas.models.ExternalDocumentation
|
||||||
import io.swagger.v3.oas.models.OpenAPI
|
import io.swagger.v3.oas.models.OpenAPI
|
||||||
import io.swagger.v3.oas.models.info.Info
|
import io.swagger.v3.oas.models.info.Info
|
||||||
@ -9,9 +11,15 @@ import org.springframework.context.annotation.Bean
|
|||||||
import org.springframework.context.annotation.Configuration
|
import org.springframework.context.annotation.Configuration
|
||||||
|
|
||||||
@Configuration
|
@Configuration
|
||||||
class SpringDocConfig {
|
@SecurityScheme(
|
||||||
|
name = "bearerAuth",
|
||||||
|
type = SecuritySchemeType.HTTP,
|
||||||
|
scheme = "bearer",
|
||||||
|
bearerFormat = "JWT",
|
||||||
|
|
||||||
|
)
|
||||||
|
class OpenApiDocConfig {
|
||||||
companion object {
|
companion object {
|
||||||
private val PUBLIC_API_PATH get() = "/public/**"
|
|
||||||
private val ADMIN_API_PATH get() = "/admin/**"
|
private val ADMIN_API_PATH get() = "/admin/**"
|
||||||
private val DEFAULT_API_PATH get() = "/**"
|
private val DEFAULT_API_PATH get() = "/**"
|
||||||
}
|
}
|
||||||
@ -19,25 +27,17 @@ class SpringDocConfig {
|
|||||||
@Bean
|
@Bean
|
||||||
fun defaultApi(): GroupedOpenApi {
|
fun defaultApi(): GroupedOpenApi {
|
||||||
return GroupedOpenApi.builder()
|
return GroupedOpenApi.builder()
|
||||||
.group("default-api")
|
.group("default")
|
||||||
.pathsToMatch(DEFAULT_API_PATH)
|
.pathsToMatch(DEFAULT_API_PATH)
|
||||||
.pathsToExclude("/error", PUBLIC_API_PATH, ADMIN_API_PATH)
|
.pathsToExclude("/error", ADMIN_API_PATH)
|
||||||
.packagesToScan("com.cubetiqs.web")
|
.packagesToScan("com.cubetiqs.web")
|
||||||
.build()
|
.build()
|
||||||
}
|
}
|
||||||
|
|
||||||
@Bean
|
|
||||||
fun publicApi(): GroupedOpenApi {
|
|
||||||
return GroupedOpenApi.builder()
|
|
||||||
.group("public-api")
|
|
||||||
.pathsToMatch(PUBLIC_API_PATH)
|
|
||||||
.build()
|
|
||||||
}
|
|
||||||
|
|
||||||
@Bean
|
@Bean
|
||||||
fun adminApi(): GroupedOpenApi {
|
fun adminApi(): GroupedOpenApi {
|
||||||
return GroupedOpenApi.builder()
|
return GroupedOpenApi.builder()
|
||||||
.group("admin-api")
|
.group("admin")
|
||||||
.pathsToMatch(ADMIN_API_PATH)
|
.pathsToMatch(ADMIN_API_PATH)
|
||||||
.build()
|
.build()
|
||||||
}
|
}
|
@ -0,0 +1,21 @@
|
|||||||
|
package com.cubetiqs.web.controller.admin
|
||||||
|
|
||||||
|
import com.cubetiqs.web.controller.BaseController
|
||||||
|
import com.cubetiqs.web.util.RouteConstants
|
||||||
|
import io.swagger.v3.oas.annotations.Operation
|
||||||
|
import io.swagger.v3.oas.annotations.security.SecurityRequirement
|
||||||
|
import io.swagger.v3.oas.annotations.tags.Tag
|
||||||
|
import org.springframework.web.bind.annotation.GetMapping
|
||||||
|
import org.springframework.web.bind.annotation.RequestMapping
|
||||||
|
import org.springframework.web.bind.annotation.RestController
|
||||||
|
|
||||||
|
@Tag(name = "Admin")
|
||||||
|
@RestController
|
||||||
|
@RequestMapping(RouteConstants.ADMIN)
|
||||||
|
class AdminController : BaseController {
|
||||||
|
@Operation(security = [SecurityRequirement(name = "bearerAuth")])
|
||||||
|
@GetMapping
|
||||||
|
fun getAdmin(): String {
|
||||||
|
return "Admin"
|
||||||
|
}
|
||||||
|
}
|
@ -2,6 +2,7 @@ package com.cubetiqs.web.util
|
|||||||
|
|
||||||
object RouteConstants {
|
object RouteConstants {
|
||||||
const val INDEX = "/"
|
const val INDEX = "/"
|
||||||
|
const val ADMIN = "/admin"
|
||||||
}
|
}
|
||||||
|
|
||||||
object AppConstants {
|
object AppConstants {
|
||||||
|
Loading…
Reference in New Issue
Block a user