首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >基于JWT认证的多业务微环境测试

基于JWT认证的多业务微环境测试
EN

Stack Overflow用户
提问于 2020-02-09 19:44:54
回答 1查看 1.2K关注 0票数 2

我有多重服务:ServiceAServiceBServiceC,启用了JWT身份验证和传播。负责用户身份验证的服务是ServiceA

那么,如果启用了身份验证,并且该服务不知道如何进行身份验证,我如何测试(JUnit5)我的服务BC

代码语言:javascript
复制
[main] INFO  i.m.context.env.DefaultEnvironment - Established active environments: [test]
[nioEventLoopGroup-1-3] DEBUG i.m.http.client.DefaultHttpClient - Sending HTTP Request: POST /serviceB/order/item
[nioEventLoopGroup-1-3] DEBUG i.m.http.client.DefaultHttpClient - Chosen Server: localhost(33006)
[nioEventLoopGroup-1-3] TRACE i.m.http.client.DefaultHttpClient - Authorization: Bearer eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJzaGVybG9jayIsIm5iZiI6MTU4MTI3NjA2NSwicm9sZXMiOltdLCJpc3MiOiJ1c2VyIiwiZXhwIjoxNTgxMjc5NjY1LCJpYXQiOjE1ODEyNzYwNjV9.yrVqAluyZvKIGjtu4tDVSnZZiZ8kdhduN20n1xd1z6U
[nioEventLoopGroup-1-3] TRACE i.m.http.client.DefaultHttpClient - host: localhost:33006
[nioEventLoopGroup-1-3] TRACE i.m.http.client.DefaultHttpClient - connection: close
[nioEventLoopGroup-1-3] TRACE i.m.http.client.DefaultHttpClient - content-type: application/json
[nioEventLoopGroup-1-3] TRACE i.m.http.client.DefaultHttpClient - content-length: 2
[nioEventLoopGroup-1-3] TRACE i.m.http.client.DefaultHttpClient - Request Body
[nioEventLoopGroup-1-3] TRACE i.m.http.client.DefaultHttpClient - HTTP Client Response Received for Request: POST http://localhost:33006/serviceB/order/item
[nioEventLoopGroup-1-3] TRACE i.m.http.client.DefaultHttpClient - Status Code: 403 Forbidden
[nioEventLoopGroup-1-3] TRACE i.m.http.client.DefaultHttpClient - Date: Sun, 9 Feb 2020 19:23:08 GMT
[nioEventLoopGroup-1-3] TRACE i.m.http.client.DefaultHttpClient - connection: close

使用:Micronaut 1.3.0JDK 1.8

EN

回答 1

Stack Overflow用户

发布于 2020-09-17 16:31:13

这是一种使用JWT令牌的方法:

代码语言:javascript
复制
@Filter("/**")
@Requires(env = Environment.TEST)
@Requires(property = "spec.name", notEquals = "SecuritySpec")
public class MockSecurityBypassFilter implements HttpClientFilter
{
    private final static Logger LOG = LoggerFactory.getLogger(MockSecurityBypassFilter.class);
    
    @Override
    public Publisher<? extends HttpResponse<?>> doFilter(MutableHttpRequest<?> request, ClientFilterChain chain)
    {
        LOG.info(">>> Mock Security Filter automatic sign in");
        // token expire at -> Saturday, April 20, 2030 9:39:44 PM GMT-03:00
        final String JWT_TOKEN = "eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJzdXBlcmFkbWluQG5vaG9tZS5jb20iLCJyb2xlcyI6WyJST09UIiwiU1VQRVJfQURNSU4iLCJVU0VSU19BRE1JTiIsIlVTRVJTX1JFQUQiLCJVU0VSU19XUklURSIsIkFDQ1RTX0FETUlOIiwiQUNDVFNfUkVBRCIsIkFDQ1RTX1dSSVRFIiwiQ1VTVFNfQURNSU4iLCJDVVNUU19SRUFEIiwiQ1VTVFNfV1JJVEUiLCJMQUJPUl9BRE1JTiIsIkxBQk9SX1JFQUQiLCJMQUJPUl9XUklURSIsIlNBTEVTUkVQIl0sImlzcyI6InVzZXJzIiwiYWNjdElkIjoiQWNjdFZwVWdxSzBOIiwib3duZXJJZCI6Ik93bmN5YWZ0Q2giLCJsb2NhbGUiOiJwdCIsIm1vZHVsZXMiOlsiU0FMRVNfUkVQIl0sInNpZCI6ImplczV3U2doemNodiIsIm5iZiI6MTU5NDI3MTEzOCwic2VyaWFsIjoiNTY3ODkiLCJhY2Nlc3NDb2RlIjoiUjEwMCIsIm5hbWUiOiJMdWtlIFNreXdhbGtlciIsInpvbmVJZCI6IlVUQy0zIiwiZXhwIjoxOTA5NjMxMTM4LCJpYXQiOjE1OTQyNzExMzh9.-MXKLJe7iqpAcdViFtcHFg2Yvcypf9E3KVLyxc";
        request.bearerAuth(JWT_TOKEN);
        return chain.proceed(request);
    }
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/60140632

复制
相关文章

相似问题

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