allora, non capisco bene perchè mi da errore.
allora:
codice:
public void doLogin(View view) {
rfidTxt = rfid.getText().toString().trim();
usernameTxt = username.getText().toString().trim();
passwordTxt = password.getText().toString().trim();
if (TextUtils.isEmpty(rfidTxt) || TextUtils.isEmpty(usernameTxt) || TextUtils.isEmpty(passwordTxt)) {
GenericToast.viewToast(getApplicationContext(), "Tutti i campi sono obbligatori", Toast.LENGTH_LONG, Gravity.CENTER);
} else {
try (BindMyDataSource dataSource = BindMyDataSource.open()) {
Users u = dataSource.usersDao.login(usernameTxt, rfidTxt);
if (u == null) {
GenericToast.viewToast(getApplicationContext(), "Username, password o rfid errati!", Toast.LENGTH_LONG, Gravity.CENTER);
} else {
Log.e("USER", u.hashedPassword);
if (BCrypt.checkpw(passwordTxt, u.hashedPassword)) {
Log.e("USER", "OK");
} else {
GenericToast.viewToast(getApplicationContext(), "Username, password o rfid errati!", Toast.LENGTH_LONG, Gravity.CENTER);
}
}
}
}
}
in pratica arrivo al Log.e e mi da il valore di u.hashedPassword, però poi va in errore:
codice:
2020-02-03 11:03:18.902 26227-26227/com.easytrack.app E/USER: $2y$12$OPE8ACrZuoe5okYxlnCI2eD11F5n8F1xPmf26n3g9OBqFqvCIlHMm
2020-02-03 11:03:18.907 26227-26227/com.easytrack.app E/AndroidRuntime: FATAL EXCEPTION: main
Process: com.easytrack.app, PID: 26227
java.lang.IllegalStateException: Could not execute method for android:onClick
at androidx.appcompat.app.AppCompatViewInflater$DeclaredOnClickListener.onClick(AppCompatViewInflater.java:402)
at android.view.View.performClick(View.java:6669)
at android.view.View.performClickInternal(View.java:6638)
at android.view.View.access$3100(View.java:789)
at android.view.View$PerformClick.run(View.java:26145)
at android.os.Handler.handleCallback(Handler.java:873)
at android.os.Handler.dispatchMessage(Handler.java:99)
at android.os.Looper.loop(Looper.java:193)
at android.app.ActivityThread.main(ActivityThread.java:6898)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:537)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:858)
Caused by: java.lang.reflect.InvocationTargetException
at java.lang.reflect.Method.invoke(Native Method)
at androidx.appcompat.app.AppCompatViewInflater$DeclaredOnClickListener.onClick(AppCompatViewInflater.java:397)
at android.view.View.performClick(View.java:6669)
at android.view.View.performClickInternal(View.java:6638)
at android.view.View.access$3100(View.java:789)
at android.view.View$PerformClick.run(View.java:26145)
at android.os.Handler.handleCallback(Handler.java:873)
at android.os.Handler.dispatchMessage(Handler.java:99)
at android.os.Looper.loop(Looper.java:193)
at android.app.ActivityThread.main(ActivityThread.java:6898)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:537)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:858)
Caused by: java.lang.IllegalArgumentException: Invalid salt revision
at org.mindrot.jbcrypt.BCrypt.hashpw(BCrypt.java:665)
at org.mindrot.jbcrypt.BCrypt.checkpw(BCrypt.java:764)
at com.easytrack.app.LoginActivity.doLogin(LoginActivity.java:93)