如何使用受OAuth2Sso保护的弹簧支架api?

时间:2017-10-27 13:33:02

标签: rest redirect oauth-2.0 swagger

大家下午好。 我陷入两难境地。 最近,我被指派使用SpringFox和@ EnableSwagger2注释创建一个使用Swagger 2,版本2.6.1的API文档。在这样做之后,我被赋予了“保护”它的任务,最好是使用Oauth2。一开始我研究了如何做到这一点,经过多次试验和错误后,我放弃了,想出了保护整个包装和apis的想法。我这样做的方法如下。我创建了一个基本的Oauth2服务器和客户端,在Web上提供了一些教程,我在客户端中添加了swagger和其他方法。客户端以下列方式工作。在我进入网站http://localhost:8082/ui/index.html后,它会提示我登录。我按下登录,它将我重定向到http://localhost:8081/auth/login上的身份验证服务器上的登录表单,在那里我输入我的凭据,之后它将我重定向到我的招摇。如果我在浏览器URL中输入来自客户端的任何链接,如果我之前没有登录,它会将我转发到index.html。

我的问题是,现在,Swagger工作,是安全的,但是如果尝试从邮递员调用我的方法它会在html中显示我的登录页面。我是休息时的初学者,你能给我一些指示吗?

我使用以下代码进行重定向。

@Override
public void addViewControllers(ViewControllerRegistry registry) {
    super.addViewControllers(registry);

    registry.addViewController("/")
            .setViewName("forward:/index");

    registry.addViewController("/index");
    registry.addRedirectViewController("/ui/v2/api-docs", "/v2/api-docs").setKeepQueryParams(true);
    registry.addRedirectViewController("/ui/swagger-resources/configuration/ui","/swagger-resources/configuration/ui");
    registry.addRedirectViewController("/ui/swagger-resources/configuration/security","/swagger-resources/configuration/security");
    registry.addRedirectViewController("/ui/swagger-resources", "/swagger-resources");
    registry.addViewController("/api");


}

@Override
public void addResourceHandlers(ResourceHandlerRegistry registry) {
    registry.addResourceHandler("/resources/**")
            .addResourceLocations("/resources/").addResourceLocations("/ui");
    registry.addResourceHandler("/ui/**").addResourceLocations("classpath:/META-INF/resources/");
}

例如,如果我访问http://localhost:8082/ui/api2/getConf,api的一种方法,如果我没有登录,我会将我重定向到登录。

如果我必须用邮递员测试api,我该如何将登录集成到它中? 登录基于用户和密码。

谢谢。

0 个答案:

没有答案