【发布时间】:2016-09-05 23:17:18
【问题描述】:
我正在开发一套微服务中的 spring-boot 微服务。服务端点都使用两个功能进行保护:@PreAuthorize 注释和提供额外无状态身份验证的自定义 GenericFilterBean。
有些人使用 MockMvc 首先发布到登录 url,然后从指定的端点获取。这对我来说是个问题,因为登录是由不同的微服务执行的。
我在没有完全理解的情况下做了不同的尝试,可以总结为:
- 通过其他微服务登录以获取设置了 cookie 的会话
- 模拟会话以使用虚假 cookie
- 禁用安全和自定义过滤器
MockMvc 不允许调用外部 url 来执行登录,所以第一个被排除在外。模拟会话似乎没有给我一种设置 cookie 的方法——我只在响应对象上看到 addCookie。禁用自定义过滤器没有导致任何事情发生(也许我做错了)。
在我看来,正确的测试方法是进行有效的模拟会话并保持安全性。我不知道如何继续。
spring-boot 父 pom 是:spring-cloud-starter-parent - Brixton.M4
如何测试单个微服务并绕过安全性?
【问题讨论】:
标签: java spring junit spring-security spring-boot