{"header":{"type":"auto_translation","ret_code":"NullPointerException","time_cost":4347.0,"request_id":"9ddb7121590711ed9ba95b34174e380d"}}
bvhaajcl1#
我在你的代码中找不到资源服务器配置(只有oauth2 Login)。你需要它:根据定义,使用OAuth2保护的@RestController是一个资源服务器(登录管理应该是客户端关心的问题,而不是只关心请求是否得到授权的资源服务器)@WithMockUser使用UsernamePasswordAuthenticationToken填充测试安全上下文,这不是您将在资源服务器中获得的Authentication类型=〉不要使用它。使用spring-security-test中的org.springframework.security.test.web.servlet.request.SecurityMockMvcRequestPostProcessors.jwt或spring-addons中的@WithMocjJwtAuth
@RestController
@WithMockUser
UsernamePasswordAuthenticationToken
Authentication
org.springframework.security.test.web.servlet.request.SecurityMockMvcRequestPostProcessors.jwt
@WithMocjJwtAuth
你最好切换到Java 17,它将是(很快)即将到来的 Spring 版本的最低要求你应该访问this tutorials来配置你的资源服务器,这可能会节省你相当多的时间。
1条答案
按热度按时间bvhaajcl1#
我在你的代码中找不到资源服务器配置(只有oauth2 Login)。你需要它:根据定义,使用OAuth2保护的
@RestController
是一个资源服务器(登录管理应该是客户端关心的问题,而不是只关心请求是否得到授权的资源服务器)@WithMockUser
使用UsernamePasswordAuthenticationToken
填充测试安全上下文,这不是您将在资源服务器中获得的Authentication
类型=〉不要使用它。使用spring-security-test中的org.springframework.security.test.web.servlet.request.SecurityMockMvcRequestPostProcessors.jwt
或spring-addons中的@WithMocjJwtAuth
PS
你最好切换到Java 17,它将是(很快)即将到来的 Spring 版本的最低要求
你应该访问this tutorials来配置你的资源服务器,这可能会节省你相当多的时间。