oauth-2.0 如何在Junit5中从测试代码向API控制器发送会话?

4urapxun  于 2022-10-31  发布在  其他
关注(0)|答案(1)|浏览(170)

{"header":{"type":"auto_translation","ret_code":"NullPointerException","time_cost":4347.0,"request_id":"9ddb7121590711ed9ba95b34174e380d"}}

bvhaajcl

bvhaajcl1#

我在你的代码中找不到资源服务器配置(只有oauth2 Login)。你需要它:根据定义,使用OAuth2保护的@RestController是一个资源服务器(登录管理应该是客户端关心的问题,而不是只关心请求是否得到授权的资源服务器)
@WithMockUser使用UsernamePasswordAuthenticationToken填充测试安全上下文,这不是您将在资源服务器中获得的Authentication类型=〉不要使用它。使用spring-security-test中的org.springframework.security.test.web.servlet.request.SecurityMockMvcRequestPostProcessors.jwtspring-addons中的@WithMocjJwtAuth

PS

你最好切换到Java 17,它将是(很快)即将到来的 Spring 版本的最低要求
你应该访问this tutorials来配置你的资源服务器,这可能会节省你相当多的时间。

相关问题