一、该问题的重现步骤是什么?
做集成测试时要调用其他服务时需要用到用户认证信息,比如获取用户id,租户id等,请问如何在测试时通过oauth2的认证或者加入认证信息?
我尝试使用继承RequestInterceptor的方式写入请求属性,但未成功:
@Service
class FeignRequestInterceptor : RequestInterceptor {
override fun apply(requestTemplate: RequestTemplate) {
val attributes = RequestContextHolder.getRequestAttributes() as ServletRequestAttributes
val bladeUser = BladeUser()
with (bladeUser) {
clientId = "clientId"
userId = 1234564000000000302
tenantId = "123456"
oauthId = "1"
deptId = "1234564000000000501"
postId = "1234564000000000302"
roleId = "-1"
account = "test"
roleName = "用户"
userName = "test"
nickName = "test"
detail = Kv.create()
}
requestTemplate.header("Authorization", "Bearer test") // 可以传过去
// attributes.setAttribute("_BLADE_USER_REQUEST_ATTR_", bladeUser, 1)
attributes.request.setAttribute("_BLADE_USER_REQUEST_ATTR_", bladeUser) // 无效
attributes.request.setAttribute("aaaaaaaaaaaaaaaa", "test") // 无效
// val token = JwtUtil.getAccessTokenKey("123456", "1234564000000000302", null)
// RequestContextHolder.setRequestAttributes(attributes, true)
}
}
上述代码里,head是可以传过去的,但
_BLADE_USER_REQUEST_ATTR_
属性传不过去,后来我又想办法用oauth2认证,但因为blade-auth并没有接口,所以想请问下有什么方便的方法集成吗?
扫一扫访问 Blade技术社区 移动端