首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何使用SEEDSTACK框架在客户端配置假名以对REST服务进行身份验证?

如何使用SEEDSTACK框架在客户端配置假名以对REST服务进行身份验证?
EN

Stack Overflow用户
提问于 2020-01-30 10:39:44
回答 1查看 1.9K关注 0票数 1

我想用假名和SEEDSTACK从我的客户端应用程序调用一个REST web服务。使用SEEDSATCK开发的web服务也使用以下身份验证方法配置:"filters: authcBasic“

如何配置或编程客户端以获得认证权?如何传递用户和密码信息?

client FEIGNAPI类:

代码语言:javascript
复制
@FeignApi
public interface neosdServer {

    @RequestLine("GET /file/getfilesprop")
    List<NeosdFile> getfilesprop();

    @RequestLine("GET /file/getfiles")
    List<String> getfiles();
}

客户端APPLICATION.YAML

代码语言:javascript
复制
feign:
  endpoints:
    neosdClient.interfaces.rest.neosdServer: 
      baseUrl: http://localhost:8080
      encoder: feign.jackson.JacksonEncoder
      decoder: feign.jackson.JacksonDecoder

服务器APPLICATION.YAML

代码语言:javascript
复制
  web:
    urls:
      -
        pattern: /file/getfiles
        filters: [ authcBasic, 'roles[read]' ]   
EN

回答 1

Stack Overflow用户

发布于 2020-01-30 13:03:57

当前的SeedStack集成目前不支持在假装构建器上配置拦截器。相反,要进行身份验证,您可以使用@Headers注释在虚拟接口中指定一个标头(例如,用于基本身份验证):

代码语言:javascript
复制
@FeignApi
@Headers({"Authorization: Basic {credentials}"})
public interface neosdServer {

    @RequestLine("GET /file/getfilesprop")
    List<NeosdFile> getfilesprop(@Param("credentials") String credentials);

    @RequestLine("GET /file/getfiles")
    List<String> getfiles(@Param("credentials") String credentials);
}

注意,@Headers也可以用于各个方法。

然后,您必须将凭据作为方法参数传递。使用来自应用程序配置的凭据的示例实现是:

代码语言:javascript
复制
public class MyClass {
    @Configuration("myApp.credentials.user")
    private String username;
    @Configuration("myApp.credentials.password")
    private String password;
    @Inject
    private NeoSdClient client;

    public void myMethod() {
        List<String> files = client.getFiles(encodeCredentials());
    }

    private String encodeCredentials() {
        return BaseEncoding
                .base64()
                .encode((username + ":" + password)
                        .getBytes(Charsets.UTF_8));
    }
}

为了跟踪拦截器支持的实现,我在假冒伪劣的附加存储库上创建了一个问题:https://github.com/seedstack/feign-addon/issues/4

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/59984083

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档