package otpserver.simple;
import java.awt.event.ActionEvent;
import java.security.MessageDigest;
import java.security.NoSuchAlgorithmException;
import java.time.LocalDateTime;
import java.time.ZoneId;
import java.util.Base64;
import java.util.Optional;
import java.util.Random;
import javax.swing.JOptionPane;
import javax.xml.bind.DatatypeConverter;
import javafx.application.Application;
import javafx.application.Platform;
import javafx.scene.Scene;
import javafx.scene.layout.*;
import javafx.scene.text.Text;
import javafx.scene.control.*;
import javafx.stage.Stage;
public class Login extends Application {
private final PasswordField clave = new PasswordField();
private boolean tieneToken = false;
private String secretotoken
= "";
@Override
public void start(Stage primaryStage) {
usuario.setPromptText("usuario");
token.setPromptText("token");
token.setVisible(false);
VBox root = new VBox();
root.getChildren().add(usuario);
root.getChildren().add(clave);
root.getChildren().add(token);
root.getChildren().add(boton);
Scene scene = new Scene(root, 200, 200);
// longrunning operation runs on different thread
boton.setOnAction(p -> {
if (usuario.getText().equals("admin") && clave.getText().equals("admin") && !tieneToken) {
TextInputDialog dialog = new TextInputDialog();
dialog.setTitle("parear");
dialog.setHeaderText("parear");
// Traditional way to get the response value.
Optional<String> result = dialog.showAndWait();
if (result.isPresent()) {
tieneToken = true;
token.setVisible(tieneToken);
}
// The Java 8 way to get the response value (with lambda expression).
result.ifPresent(name -> {
secretotoken=name;
});
}
if (usuario.getText().equals("admin") && clave.getText().equals("admin") && tieneToken) {
try {
long a
= System.
currentTimeMillis()/(1000*60); instance.update((secretotoken +a).getBytes());
byte[] digest = instance.digest();
String tokenProvar
= DatatypeConverter.
printHexBinary(digest
).
toUpperCase(); System.
out.
println("tokenProvar "+tokenProvar
); if(token.getText().equals(tokenProvar.substring(0,5))) {
}else {
}
}
}
});
primaryStage.setTitle("Login");
primaryStage.setScene(scene);
primaryStage.show();
}
public static void main
(String[] args
) { launch(args);
}
}