@Test public void testHandleAuthenticateUser() throws Exception { UserId aggregateIdentifier = new UserId(); final Date time = currentTime(); final Identifier identifier = new Identifier(Identifier.Type.IDENTITY_CARD, "110101201101019252"); UserEntry userEntry = new UserEntry(); userEntry.setUsername("buyer1"); userEntry.setPrimaryKey(aggregateIdentifier.toString()); userEntry.setLastName("Buyer One"); userEntry.setFirstName("Mr"); userEntry.setIdentifier(identifier); when(userQueryRepository.findByUsername("buyer1")).thenReturn(userEntry); fixture.given( new UserCreatedEvent( aggregateIdentifier, "buyer1", "Mr", "Buyer One", identifier, "buyer1@163.com", passwordEncoder.encode("buyer1"), UserCommandHandler.DEFAULT_ROLES, time)) .when(new AuthenticateUserCommand("buyer1", "buyer1", "localhost", current)) .expectEvents(new UserAuthenticatedEvent(aggregateIdentifier, "buyer1", "buyer1@163.com", "localhost", current)); }
@CommandHandler public UserAccount handleAuthenticateUser(AuthenticateUserCommand command) { UserAccount account = userQueryRepository.findByUsername(command.getUserName()); if (account == null) { return null; } final Date authTime = nullSafe(command.getAuthTime(), currentTime()); boolean success = onUser(account.getPrimaryKey()) .authenticate(passwordEncoder, command.getPassword(), command.getOperatingIp(), authTime); return success ? account : null; }
UserCommandHandler { @CommandHandler public UserAccount handleAuthenticateUser(AuthenticateUserCommand command) { UserAccount account = userQueryRepository.findByUsername(command.getUserName()); if (account == null) { return null; } final Date authTime = nullSafe(command.getAuthTime(), currentTime()); boolean success = onUser(account.getPrimaryKey()) .authenticate(passwordEncoder, command.getPassword(), command.getOperatingIp(), authTime); return success ? account : null; } }
UserCommandHandler { @CommandHandler public UserAccount handleAuthenticateUser(AuthenticateUserCommand command) { UserAccount account = userQueryRepository.findByUsername(command.getUserName()); if (account == null) { return null; } final Date authTime = nullSafe(command.getAuthTime(), currentTime()); boolean success = onUser(account.getPrimaryKey()) .authenticate(passwordEncoder, command.getPassword(), command.getOperatingIp(), authTime); return success ? account : null; }  }
UserCommandHandler { @CommandHandler public UserAccount handleAuthenticateUser(AuthenticateUserCommand command) { UserAccount account = userQueryRepository.findByUsername(command.getUserName()); if (account == null) { return null; } final Date authTime = nullSafe(command.getAuthTime(), currentTime()); boolean success = onUser(account.getPrimaryKey()) .authenticate(passwordEncoder, command.getPassword(), command.getOperatingIp(), authTime); return success ? account : null; }  @CommandHandler UserId handleCreateUser(CreateUserCommand command); @CommandHandler UserAccount handleAuthenticateUser(AuthenticateUserCommand command); @CommandHandler String handleForgetPassword(ForgetPasswordCommand command); @CommandHandler String handlePasswordReset(ResetPasswordCommand command); @CommandHandler void handleChangePassword(ChangePasswordCommand command); @CommandHandler void handleChangeWithdrawPasswordCommand(ChangeWithdrawPasswordCommand command); @CommandHandler void handleCreateWithdrawPasswordCommand(CreateWithdrawPasswordCommand command); @CommandHandler void handleUpdateNotificationCommand(UpdateNotificationSettingsCommand command); @CommandHandler void handleChangeInfoCommand(ChangeInfoCommand command); @CommandHandler void handleChangeAdminInfoCommand(ChangeAdminInfoCommand command); @Autowired @Qualifier("userRepository") void setRepository(Repository<User> userRepository); @SuppressWarnings("SpringJavaAutowiringInspection") @Autowired void setPasswordEncoder(PasswordEncoder passwordEncoder); @SuppressWarnings("SpringJavaAutowiringInspection") @Autowired void setUserPasswordResetRepository(UserPasswordResetRepository userPasswordResetRepository); @SuppressWarnings("SpringJavaAutowiringInspection") @Autowired void setUserRepository(UserQueryRepository userRepository); @SuppressWarnings("SpringJavaAutowiringInspection") @Autowired void setPasswordResetTokenGenerator(PasswordResetTokenGenerator passwordResetTokenGenerator); }
UserCommandHandler { @CommandHandler public UserAccount handleAuthenticateUser(AuthenticateUserCommand command) { UserAccount account = userQueryRepository.findByUsername(command.getUserName()); if (account == null) { return null; } final Date authTime = nullSafe(command.getAuthTime(), currentTime()); boolean success = onUser(account.getPrimaryKey()) .authenticate(passwordEncoder, command.getPassword(), command.getOperatingIp(), authTime); return success ? account : null; }  @CommandHandler UserId handleCreateUser(CreateUserCommand command); @CommandHandler UserAccount handleAuthenticateUser(AuthenticateUserCommand command); @CommandHandler String handleForgetPassword(ForgetPasswordCommand command); @CommandHandler String handlePasswordReset(ResetPasswordCommand command); @CommandHandler void handleChangePassword(ChangePasswordCommand command); @CommandHandler void handleChangeWithdrawPasswordCommand(ChangeWithdrawPasswordCommand command); @CommandHandler void handleCreateWithdrawPasswordCommand(CreateWithdrawPasswordCommand command); @CommandHandler void handleUpdateNotificationCommand(UpdateNotificationSettingsCommand command); @CommandHandler void handleChangeInfoCommand(ChangeInfoCommand command); @CommandHandler void handleChangeAdminInfoCommand(ChangeAdminInfoCommand command); @Autowired @Qualifier("userRepository") void setRepository(Repository<User> userRepository); @SuppressWarnings("SpringJavaAutowiringInspection") @Autowired void setPasswordEncoder(PasswordEncoder passwordEncoder); @SuppressWarnings("SpringJavaAutowiringInspection") @Autowired void setUserPasswordResetRepository(UserPasswordResetRepository userPasswordResetRepository); @SuppressWarnings("SpringJavaAutowiringInspection") @Autowired void setUserRepository(UserQueryRepository userRepository); @SuppressWarnings("SpringJavaAutowiringInspection") @Autowired void setPasswordResetTokenGenerator(PasswordResetTokenGenerator passwordResetTokenGenerator); static List<String> DEFAULT_ROLES; }