春季安全性方法的Springfox 3.0.0文档

问题描述

Spring Boot-2.3.4.RELEASE
Springfox-swagger2-3.0.0

主要目标是添加用于授权的Spring Security自动生成方法的文档。登录方法是带有主体模式凭据{email:String,password:String}的POST。通常,问题与此处相同: Documenting Spring's login/logout API in Swagger

但是不建议使用其较新版本的Spring Fox和许多方法/构建器/方法

这是我根据先前的示例得出的结果。

class formLoginOperations @Autowired constructor(apiDescriptionReader: ApiDescriptionReader?,apiModelReader: ApiModelReader?,modelSpecificationReader: ApiModelSpecificationReader,pluginsManager: DocumentationPluginsManager?)
: ApiListingScanner(apiDescriptionReader,apiModelReader,modelSpecificationReader,pluginsManager) {

@Autowired private val typeResolver: TypeResolver? = null

override fun scan(context: ApiListingScanningContext): Map<String,List<ApiListing>> {
    val def: MutableMap<String,MutableList<ApiListing>> = super.scan(context)
    val apis: LinkedList<ApiDescription> = LinkedList()
    val operations: ArrayList<Operation> = ArrayList()
    val apiListings: ArrayList<ApiListing> = ArrayList()

    operations.add(OperationBuilder(CachingOperationNameGenerator())
            .method(HttpMethod.POST)
            .uniqueId("login")
            .parameters(Arrays.asList(
                    ParameterBuilder()
                            .name("email")
                            .description("User email")
                            .parameterType(ParameterType.BODY)
                            .type(typeResolver!!.resolve(String::class.java))
                            .modelRef(ModelRef("string"))
                            .build(),ParameterBuilder()
                            .name("password")
                            .description("User password")
                            .parameterType(ParameterType.BODY)
                            .type(typeResolver.resolve(String::class.java))
                            .modelRef(ModelRef("string"))
                            .build()))
            .summary("Log in") //
            .notes("Here you can log in")
            .build())

    apis.add(ApiDescription("Auth","/api/login/","Authentication documentation","Auth api",operations,false))

    apiListings.add(ApiListingBuilder(context.documentationContext.apiDescriptionordering)
            .apis(apis)
            .description("Custom authentication")
            .build())

    def.put("authentication",apiListings)

    return def
}

}

enter image description here

所以我找不到一个主要的问题,例如如何添加带有主体参数的自定义操作或传递完整的api模型的示例或文档。 取消了OperationBuilder和ParameterBuilder中的parameters()方法。也许这是问题的主要原因。

我也尝试使用新的requestParameters和RequestParameterBuilder,但是它总是抛出NullPointerException

.requestParameters(Arrays.asList(
    RequestParameterBuilder()
            .name("email")
            .description("User email")
            .`in`(ParameterType.BODY)
            .required(true)
            .build()

我很乐意提供任何建议。 最好的问候。

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)