Witam.
Potrzebuję stworzyć w Javie aplikację okienkową uruchamianą w systemach użytkowników ale pracującą ze zdalną bazą danych na serwerze (np. MySQL). Dostęp do aplikacji musi być ograniczony po przez logowanie (dane użytkowników w bazie na serwerze). Mógłby mi ktoś podpowiedzieć jak wykonać takie uwierzytelnianie? Szukałem na necie różnych tutoriali ale wszystko dotyczy aplikacji webowych Java EE pracujących na serwerze aplikacyjnym np. Tomcat.
Nie widzę dużego problemu. Ja użył bym do tego JDBC i nawet Hibernata możesz użyc :), by móc połaczyć się do bazy danych mysql i gdy będzie odpowiedni event to będę porównywal go z danymi pobranymi z bazy danych. Tutoriale:
https://netbeans.org/kb/docs/java/hibernate-java-se.html
http://www.javaguicodexample.com/javadesktopguimysql1.html
W czym problem?
Robisz zwykłą tabele gdzie trzymasz login, hash hasła i salt.
Formularz logowania, obliczasz hash i porównujesz.
Zgadza się zalogowany i tyle. JDBC w zupełności starszy czy też możesz się pokusić o ORM.
W zasadzie tutoriale dla web są też dla ciebie chyba tylko poza formularzem, który klepiesz w czymkolwiek robisz tą apkę. Reszta powinna wyglądać mniej-więcej tak samo.
@sledzdev, @Madaoo nie do końca tak jak mówicie. Generalnie trzeba obsłużyć dwa logowania. Pierwsze do bazy danych, drugie do samej aplikacji. Paradoksalnie łatwiej jest to zrobić w odwrotnej kolejności.
Pierwsze uruchomienie:
Użytkownik otrzymuje plik ze swoim certyfikatem/licencją podaje hasło (otrzymane np. na maila) i aplikacja rozszyfrowuje plik (plik może mieć nazwę jak login trochę to ułatwi życie).
W pliku mamy podane dane dostępowe do bazy danych.
Łączymy się z bazą i wymuszamy na użytkowniku zmianę hasła.
Nowe hasło po zahashowaniu posłuży nam jako klucz szyfrujący certyfikat. Co też robimy.
Kolejne uruchomienia:
Użytkownik podaje hasło.
Następuje odszyfrowanie certyfikatu i połączenie do bazy danych.
Odzyskanie hasła:
Użytkownik musi otrzymać nowy plik certyfikatu. Postępowanie jak przy pierwszym uruchomieniu.
Zmiana hasła:
Procedura jak przy pierwszym uruchomieniu tyle tylko, że uruchamiana z akcji użytkownika.