Non è quello il modo di effettuare l'autenticazione.
Devi fornire un UserAuthenticator:

codice:
public class TuaClasse {

   private class UserAuthenticator extends Authenticator {

      private String user;
      private String pass;

      public UserAuthenticator(String user, String pass) {
         this.user = user;
         this.pass = pass;
      }

      @Override
      protected PasswordAuthentication getPasswordAuthentication() {
         return new PasswordAuthentication(user, pass);
      }
   }

   ...

   public void inviaMail() {
String host = "smtp.gmail.com";
        int port = 587;
        String username = "user_name";
        String password = "psw";

        Properties props = new Properties();
        props.put("mail.smtp.auth", "true");
        props.put("mail.smtp.starttls.enable", "true");


        UserAuthenticator userAuthenticator = new UserAuthenticator(username, password);
        Session session = Session.getDefaultInstance(props, userAuthenticator);

        Message message = new MimeMessage(session);
        message.setFrom(new InternetAddress("mail_mittente@gmail.com"));
        message.setRecipients(Message.RecipientType.TO,
        InternetAddress.parse("mail_destinatario@virgilio.it"));
        message.setSubject("Prova d'invio");
        message.setText("Ciaoooooooooooo!!!");


        Transport.send(message);

        System.out.println("Inviata");   }
Ciao.