java - Spring Security jwt单元测试

标签 java spring spring-boot spring-security

单元测试新手,我将如何测试这个类

@RestController
@CrossOrigin
public class JwtAuthenticationController {
    @Autowired
    private AuthenticationManager authenticationManager;
    @Autowired
    private JwtTokenUtil jwtTokenUtil;
    @Autowired
    private JwtUserDetailsService userDetailsService;

    @PostMapping(value = "/authenticate")
    public ResponseEntity<?> createAuthenticationToken(@RequestBody JwtRequest authenticationRequest) throws Exception {
        authenticate(authenticationRequest.getUsername(), authenticationRequest.getPassword());
        final UserDetails userDetails = userDetailsService.loadUserByUsername(authenticationRequest.getUsername());
        final String token = jwtTokenUtil.generateToken(userDetails);
        return ResponseEntity.ok(new JwtResponse(token));
    }

    private void authenticate(String username, String password) throws Exception {
        try {
            authenticationManager.authenticate(new UsernamePasswordAuthenticationToken(username, password));
        } catch (DisabledException e) {
            throw new Exception("USER_DISABLED", e);
        } catch (BadCredentialsException e) {
            throw new Exception("INVALID_CREDENTIALS", e);
        }enter code here
    }
}

这是其余的代码:

https://www.javainuse.com/spring/boot-jwt

最佳答案

您可以通过多种方式进行测试。单元和集成。单元测试需要模拟所有依赖项,而集成(有些人称之为单元)只需要测试 Web 层。既然你正在使用 Spring,我建议你看看这个 article

关于java - Spring Security jwt单元测试,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61647513/

相关文章:

java - 如何修复 JAVA_HOME 对 cordova 无效

javascript - 如何使用 dojo 提交使用 spring 表单标签创建的表单

spring - OAuth2 能否用于非社交登录类型的 token 生成?

java - 上下文初始化时遇到异常

java - 如何将 Hibernate 对象导出到插入语句中

java - 如何在不同于 'Application' 和 'Activity' 的扩展中实现全局变量?

java - HashMap 中的重复值

java - JSR303 自定义 validator 被调用两次

spring - Spring Boot遮蔽了库中的Gradle依赖关系

java - 无法找到或加载主类 org.apache.maven.wrapper.MavenWrapperMain