title: Clean architecture current user acquisition
body: <p>Should in Clean Architecture use cases be aware of the authentication/authorization process and command/query layer should have some abstraction of the authentication service implemented in layer below using some framework or user identifier should be passed as the part of the command/query?</p>
  <p>Options:</p>
  <p>Option 1:</p>
  <pre><code>class ChangePasswordCommand {
  
      char[] newPassword;
  }
  
  class ChangePasswordCommandHandler {
  
      AuthService authService;
  
      void handle(ChangePasswordCommand command) {
          User currentUser = authService.currentUser();
          // logic
      }
  }
  </code></pre>
  <p>Option 2:</p>
  <pre><code>class ChangePasswordCommand {
  
      UUID userId;
      char[] newPassword;
  }
  
  class ChangePasswordCommandHandler {
  
      UserRepository userRepository;
  
      void handle(ChangePasswordCommand command) {
           User currentUser = userRepository.findById(command.getUserId());
           // logic
      }
  }
  </code></pre>