使用Swagger记录SpringOAuth2.0API

使用Swagger记录SpringOAuth2.0API,swagger,api-doc,spring-oauth2,Swagger,Api Doc,Spring Oauth2,我正在使用SpringSecurity设置OAuth2.0授权服务器。我想使用Swagger记录OAuth2.0API。我应该怎么做呢?我目前正在研究它,我正在使用Springfox库来记录它 伊奥·斯普林福克斯 springfox-Swagger 2 2.4.0 伊奥·斯普林福克斯 springfox招摇过市用户界面 2.4.0 我的招摇过市配置如下所示: @Configuration @EnableSwagger2 @EnableWebMvc public class Swa

我正在使用SpringSecurity设置OAuth2.0授权服务器。我想使用Swagger记录OAuth2.0API。我应该怎么做呢?

我目前正在研究它,我正在使用Springfox库来记录它


伊奥·斯普林福克斯
springfox-Swagger 2
2.4.0


伊奥·斯普林福克斯
springfox招摇过市用户界面
2.4.0

我的招摇过市配置如下所示:

    @Configuration
@EnableSwagger2
@EnableWebMvc
public class SwaggerConfig {

    @Bean
    public Docket documentation() {
        return new Docket(DocumentationType.SWAGGER_2)
            .select()
                .apis(RequestHandlerSelectors.any())
                .paths(PathSelectors.any())
                .build()
            .useDefaultResponseMessages(false)
            .pathMapping("/")
            .apiInfo(apiInfo());
    }



    /**
     * API INFO
     * @return
     */
    private ApiInfo apiInfo() {
        return new ApiInfoBuilder()
                .title("xxx")
                .description("xxx")
                .version("xxx")                 
                .contact("xxx")
                .build();
    }
}
我的一个端点的一部分(注意:没有正确的方法来注释映射。2.4.0添加了支持,但我还没有尝试过。)

@Api(value=“xxx”)
@框架端点
@会期贡献(“授权请求”)
公共类OAuthAuthorizationEndpoint{
私有授权端点授权端点;
/**
*@param端点
*基本授权检查点
*/
公共OAuthAuthorizationEndpoint(授权端点){
this.authorizationEndpoint=端点;
}
@ApiOperation(value=“xxx”,httpMethod=“GET”,notes=“xxx”)
@ApiResponses(值={
@ApiResponse(code=400,message=“无效输入:…”,response=Auth400Response.class),
@ApiResponse(code=200,message=“Ok”,response=Auth200Response.class)
})  
@RequestMapping(value=“/oauth/authorize”,products=“application/json”)
@应答器
公共模型和视图授权(@apignore-Map-model,
@ApiParam(value=“xxx”,required=true,defaultValue=“xxx”)@RequestParam字符串响应类型,
@ApiParam(value=“xxx”,required=true)@RequestParam-String-client\u-id,
@ApiParam(value=“xxx”,required=true)@RequestParam字符串重定向\u uri,
@ApiParam(value=“xxx”,required=false,defaultValue=“/”@RequestParam字符串域,
@ApiParam(value=“xxx”,required=false)@RequestParam字符串状态,
@apignore SessionStatus SessionStatus,@apignore Principal){
映射参数=新的HashMap();
参数put(“响应类型”,响应类型);
参数put(“客户端id”,客户端id);
参数put(“领域”,领域);
参数put(“重定向uri”,重定向uri);
参数。put(“状态”,状态);
返回此.authorizationEndpoint.authorization(模型、参数、会话状态、主体);

这可能会对您有所帮助。

我可以知道投票失败的原因吗?嗨,安全过滤器怎么样,它们是否正确地应用于这样一个包装器端点?谢谢!这种方法似乎不起作用-由于映射不明确,应用程序无法启动
@Api(value = "xxx")
@FrameworkEndpoint
@SessionAttributes("authorizationRequest")
public class OAuthAuthorizationEndpoint {

    private AuthorizationEndpoint authorizationEndpoint;

    /**
     * @param endpoint
     *      base AuthorizationCheckpoint
     */
    public OAuthAuthorizationEndpoint(AuthorizationEndpoint endpoint){
        this.authorizationEndpoint = endpoint;
    }
@ApiOperation(value = "xxx", httpMethod = "GET", notes = "xxx")
    @ApiResponses(value = {
            @ApiResponse(code = 400, message = "Invalid input:...", response = Auth400Response.class),
            @ApiResponse(code = 200, message = "Ok", response = Auth200Response.class)
            })  
    @RequestMapping(value = "/oauth/authorize", produces = "application/json")
    @ResponseBody
    public ModelAndView authorize(@ApiIgnore Map<String, Object> model,
            @ApiParam(value = "xxx", required = true, defaultValue = "xxx") @RequestParam String response_type, 
            @ApiParam(value = "xxx", required = true) @RequestParam String client_id, 
            @ApiParam(value = "xxx", required = true) @RequestParam String redirect_uri, 
            @ApiParam(value = "xxx", required = false, defaultValue = "/") @RequestParam String realm,
            @ApiParam(value = "xxx", required = false) @RequestParam String state,
            @ApiIgnore SessionStatus sessionStatus, @ApiIgnore Principal principal){
        Map<String, String> parameters = new HashMap<String, String>();
        parameters.put("response_type", response_type);
        parameters.put("client_id", client_id);
        parameters.put("realm", realm);
        parameters.put("redirect_uri", redirect_uri);
        parameters.put("state", state);
        return this.authorizationEndpoint.authorize(model, parameters, sessionStatus, principal);