Login-Authorization, Hilfe!

no-name

Mitglied
Hallo an alle,

ich bin neu beim Programmieren und habe versucht, ein Programm zu machen, das eine Zulassung gibt, wenn jemand anmelden möchtet.

Also ich habe zwei Fenster, ein für Login, und dann, falls der Login erfolgreich wird, kommt die Anwendung. Ich habe auch zwei andere Klasse erzeugt, eine für die Users, da die Users-Dateien in einem HashSet gespeichert werden und eine LoginAuthorization-Klasse, da wo überprüft wird, ob das loginname und password schon registriert sind oder nicht. Aber das Problem ist hier, dass ich den Code für diese Klasse nicht programmieren kann.

Also kann jemand mir helfen? Hat jemand schon sowas programmiert ?

Ich habe die andere alles schon programmiert, es fellt nur eine Methode, die überprüft ob der User schon in HashSet von der Klasse Users gespeichert ist oder nicht. 🙁
 
Zeig doch mal deinen bisherigen Code?

<Klugs******>
Es gibt einen Unterschied zwischen Authentifizierung und Autorisierung.

Authentifzierung findet statt wenn etwas (eine Person, ein Programm oder...) beweisst die identität zu sein, von der sie behauptet zu sein. Also, wenn du dich beispielsweise am rechner anmeldest, authentifzierst du dich gegenüber dem Rechner und sagt ihm "hier loggt sich User Tom ein" und um zu beweisen das du wirklich Tom bist, gibst du als Beweis dessen Passwort ein. Es gibt neben der Passwort-Authentifizierung noch weitere verfahren, wie Fingerabdruck, Iris-scans, Chipkarten oder ähnliches.

Autorisierung dagegegen ist ein Test, ob ein Benutzer berechtigt ist, eine bestimmte Aktion auszuführen. Darf Tom als eingeloggter User beispielsweise in den Admin-Bereich wechseln und alle eingeloggten User sehen?

Dieses ist bei deiner Benamsung der Klassen nicht ganz klar und du scheinst Authentifizierung zu meinen.

</Klugs******>
 
Die deutsche Sprache ist nicht meine Muttersprache, deshalb konnte ich vielleich mich nicht ganz gut erklären.

Also, alles was ich nicht machen kann, ist eine Methode, die den Loginame und das Password von JTextfield and JPasswordfield nimmt(die sind in login-Fenster) und vergleicht mit den loginnames and password der Users(die ich in einem HashSet gespeichert habe, ich weiß nicht ob es das richtige ist).

Code:
public class Users implements Serializable {
	
	private String loginname = "", password = "";
	
	HashSet<Users> usersList = new HashSet<Users>();
	

	public Users(String loginname, String password) {
		this.loginname = loginname;
		this.password = password;
		usersList.add(this);
	}
	
	public String getLoginname() {
		return loginname;
	}
	
	public String getPassword() {
		return password;
	}
	
	public String toString() {
		return loginname;
	}


}

jetzt möchte ich eine Klasse ergeugen, die eine Methode gibt, die vergleicht die eingegebene String in login-fenster mit denen, die schon in HashSet sind. Und wenn die "equals" sind, wird dan das login erfolgreich.
 
Zuletzt bearbeitet:
Das kannst du mit einer equals-Methode erreichen
Java:
    @Override
    public boolean equals(Object obj) {
	if (!(obj instanceof Users))
	    return false;
	Users user = (Users) obj;
	if (this.loginname.equals(user.getLoginname()) && this.password.equals(user.getPassword()))
	    return true;
	return false;
    }

Bitte überlege noch dein Design. Du hast eine Hashset über alle Logins innerhalb einer Klasse, die eigentlich für einen User ist, oder? Das würde ich trennen, sonst hast du ja mehrere (tausend) Hashsets im Programm.
eingegebene String in login-fenster mit denen, die schon in HashSet sind
Und das geht mit Hashset::contains, sofern du die equals-Methode drin hat, damit Hashset entscheiden, wann zwei Objekte "gleich" sind.
 
Zuletzt bearbeitet:

Zurück
Oben