如何使用招摇着OAuth的API?(How to use swagger with OAuth AP

2019-07-19 22:14发布

是否有可能使用招摇作为一个文档/测试工具使用的OAuth2的API? 我没有看到(为此事或其他地方)上招摇网站任何内容。 我见过的每一个使用或者使用API​​密钥,HTTP基本或饼干。

Answer 1:

我一直沿着相同的路线工作。 扬鞭将接受任何标题或URL定义的API密钥或令牌。 添加验证助手API和应用程序是一个标准的做法。

端Oauth确实需要一个HTML审查和或登录开始握手aouth过程。 这意味着,一个招摇的API将需要支持Web界面进行标准登录和范围的认可。 滚动的OAuth成招摇结果在几个逻辑回路,其长期不容易支持。

我们正在探索一种不同的方法是让API处理和存储访问令牌用于许多不同的OAuth提供者的选择; GitHub上,Twitter和Facebook。 这可能导致登录循环为好。



Answer 2:

晚在这里聚会,但OAuth的支持,现在是在1.3.0-RC1 招摇核心 。 它可以支持OAuth的JavaScript库在昨天公布招摇-JS 。 最后, 招摇的UI是在开发阶段,很快就会有一个隐含的OAuth和服务器流量。



Answer 3:

所述blog's张贴http://developers-blog.helloreverb.com/enabling-oauth-with-swagger/通过@fehguy引示出的Java代码的示例包括在由生成招摇JSON授权数据,但是我的问题是它应该包括使用Spring,JAXRS和CXF应用程序。 我didn't发现它在CXF + JAXRS样品: https://github.com/swagger-api/swagger-core/tree/master/samples/java-jaxrs-cxf

然而,寻找更多一点,疑难杂症!

https://github.com/swagger-api/swagger-core/blob/master/samples/java-jersey-spring/src/main/resources/beans-asset-ws.xml

有必要包括一个Bean了一个名为Bootstrap类(延伸的HttpServlet)和静态块!

观点:也许这将是更多的“春天友好”从休息类,而不是在servlet的静态块由SwaggerConfig扫描注释加载。



Answer 4:

@Configuration
public class SwaggerConfiguration {

    @Bean
    @DependsOn("jaxRsServer") //org.apache.cxf.endpoint.Server bean
    public ServletContextInitializer initializer() {
        return new ServletContextInitializer() {
            @Override
            public void onStartup(ServletContext servletContext) throws ServletException {
                BeanConfig scanner = (BeanConfig) ScannerFactory.getScanner();
                Swagger swagger = scanner.getSwagger();
                servletContext.setAttribute("swagger", swagger);
            }
        };
    }

    @Bean
    public Feature swaggerFeature() {
        XSwagger2Feature feature = new XSwagger2Feature();

        return feature;
    }

    @Bean
    public FilterRegistrationBean swaggerApiFilter() {
        ApiOriginFilter filter = new ApiOriginFilter();

        FilterRegistrationBean registrationBean = new FilterRegistrationBean();
        registrationBean.setFilter(filter);
        registrationBean.setOrder(Ordered.HIGHEST_PRECEDENCE);

        return registrationBean;
    }

    public static class XSwagger2Feature extends Swagger2Feature {

        @Override
        protected void addSwaggerResource(Server server) {
            super.addSwaggerResource(server);

            BeanConfig scanner = (BeanConfig) ScannerFactory.getScanner();
            Swagger swagger = scanner.getSwagger();
            swagger.securityDefinition("api_key", new ApiKeyAuthDefinition("api_key", In.HEADER));
            swagger.securityDefinition("petstore_auth", 
              new OAuth2Definition()
                .implicit("http://petstore.swagger.io/api/oauth/dialog")
                .scope("read:pets", "read your pets")
                .scope("write:pets", "modify pets in your account"));
        }

    }

}


Answer 5:

从IOdocs mashery似乎支持OAuth的,但它是从招摇(Redis的,节点等)完全不同。 它可在github上 。



文章来源: How to use swagger with OAuth API?
标签: swagger