# Webstart und Authentifizierung



## Henrik (10. Dez 2007)

Hallo,

ich bin auf der suche nach Tutorials zum Thema Webstart und Authentifizierung. Ich habe schon eine ganze Zeit gesucht aber nur allgemeinere Artikel gefunden. Also wenn jemand ein Tutorial kenn oder mir sagen kann nach was ich genau suchen soll, soll er es doch bitte hier posten.


----------



## The_S (10. Dez 2007)

Authentifizierung für/von was?


----------



## Henrik (10. Dez 2007)

Für einen Nutzer, also ich möchte das sich ein Nutzer erst auf dem Server anmelden muss bevor er auf die Daten vom Server zugreifen kann.


----------



## The_S (10. Dez 2007)

Werd doch mal ein bisschen genauer. Möchtest du, dass der User, bevor er über WebStart eine neue Version beziehen kann, sich erstmal irgendwo authentifizieren muss, oder tauscht deine Applikation mit einem Server Daten aus, die eine Authentifizierung voraussetzen, oder was ganz was anderes, ... ?


----------



## Henrik (10. Dez 2007)

Also ich habe ein Admin Tool für unsere Datenbank geschrieben. Auf diese Datenbank greift meine Webstart Anwendung über den Server zu. Und ich möchte das der Server den Client( meine Webstart Anwendung )nur dann zugriff auf die Datenbank gibt wenn er sich vor Angemeldet hat. Also so das nur Registierte User die Anwendung nutzen können.


----------



## The_S (10. Dez 2007)

Naja, dann sollte die Datenbank zur Anmeldung auch ein Kennwort erwarten. Und dieses übermittelst du dann über deine Anwendung.


----------



## Henrik (10. Dez 2007)

Die Datenbank erwartet keine Kennwort, die Datenbank ist über den Webserver eingebunden, der zugriff drauf erfolgt über EJB's und EJB-QL und ich möchte auch das die Authentifizierung nur über den Webserver läuft. Ich möchte einfach das der User das Programm nur nutzen kann wenn er sich vorher beim Server angemeldet hat ganz unabhängig von der Datenbank. Genau so wie es wär wenn ich eine normale Webseite mit Login erstellt hätte.


----------



## The_S (10. Dez 2007)

Und wo sind die Benutzerdaten hinterlegt?


----------



## Henrik (10. Dez 2007)

In einer Datenbank die in den Server eingebunden ist.


----------



## The_S (10. Dez 2007)

Dann musste dich auf die Datenbank verbinden und überprüfen, ob die eingegebenen Benutzerdaten vorhanden sind.


----------



## Henrik (10. Dez 2007)

Sorry wenn ich das jetzt mal frage aber weißt du überhaupt wie sowas normalerweiße funktioniert ? Ich habe nämlich nicht das gefühl. Bei normalen Webanwendung ist es so das man im Webserver festlegt wo sich das Passwort und die Usernamen befinden. Dann macht man sich eine Login Seite und stellt ein paar sachen in der web.xml ein, das wars. Den rest übernimmt der Webserver, genau das gleiche muss auch mit Webstart möglich sein und dafür suche ich eine Lösung. Dabei muss ich mich aber mit sicherheit nicht "per Hand" mit der Datenbank verbinden.


----------



## The_S (10. Dez 2007)

Webstart ist aber keine Webanwendung. Webstart ist clientseitig und hat somit nichts mit dem Server zu tun, wo es liegt.


----------



## maki (10. Dez 2007)

> Webstart ist aber keine Webanwendung. Webstart ist clientseitig und hat somit nichts mit dem Server zu tun, wo es liegt.


Offensichtlich weiss Hendrik nicht so richtig worum es beim Webstart geht.


----------



## Henrik (10. Dez 2007)

Webstart ist nur eine Technologie zum Starten und aktualisieren von Java Anwendungen oder ?.   Und natürlich hat meine Anwendung etwas mit dem Server zu tun, immerhin greife ich über das Remoteinterface von der Webstart Anwendung auf die EJB zu die im Server laufen.


----------



## The_S (10. Dez 2007)

Henrik hat gesagt.:
			
		

> Webstart ist nur eine Technologie zum Starten und aktualisieren von Java Anwendungen oder ?



Jap, kann man so ausdrücken.



			
				Henrik hat gesagt.:
			
		

> Und natürlich hat meine Anwendung etwas mit dem Server zu tun, immerhin greife ich über das Remoteinterface von der Webstart Anwendung auf die EJB zu die im Server laufen.



So wie du die Situation beschrieben hast, gehe ich davon aus, dass du irgendwo nen Server stehen hast, auf welchem deine Webstart Anwendung liegt. Und du erwartest dann, dass beim Starten deiner Anwendung auf irgendwelchen internen Ressourcen deines Servers zugegriffen werden kann.

Bei Webstart hast du eine pure clientseitige Anwendung. Alle Daten die du z. B. von einem Server benötigst, musst du auch genau so anfordern, wie jede andere Anwendung auch.


----------



## Henrik (10. Dez 2007)

Der entscheide Punkt ist nicht Webstart, es geht darum das ich eine Client Sever Anwendung habe und das der User nur auf die Daten vom Server (Die EJB) zugriff hat wenn er sich vorher angemeldet hat. Und zwar beim Server und nicht bei der Datenbank, ich möchte das dass Client Programm eine Session ID bekommt und nach einer Zeit ein Timeout. Genau wie bei einer normalen Webanwendung. 



			
				maki hat gesagt.:
			
		

> > Webstart ist aber keine Webanwendung. Webstart ist clientseitig und hat somit nichts mit dem Server zu tun, wo es liegt.
> 
> 
> Offensichtlich weiss Hendrik nicht so richtig worum es beim Webstart geht.



Sinnvoller beitrag.  :roll:


----------



## maki (10. Dez 2007)

> Sinnvoller beitrag.


Das war als Hinweis gedacht, nimm ihn dir mal zu Herzen, denn offensichtlich ignorierst du immer noch was man dir sagt  



> .. Und zwar beim Server und nicht bei der Datenbank, ich möchte das dass Client Programm eine Session ID bekommt und nach einer Zeit ein Timeout. Genau wie bei einer normalen Webanwendung.


Dann solltest du als Client einen Webbrowser nehmen, nicht eine Java Anwendung.

Webstart ist keine "normale Webanwedung", Java Programme sind keine "normalen Webanwendungen", du bist auf dem Holzweg.


----------



## The_S (10. Dez 2007)

Wenn es nicht um Webstart geht, warum postest du dann im Webstart-Forum und redest über eine "Webstart Authentifizierung"? Wie gesagt, Webstart kann nicht wie "eine normale Webanwendung" behandelt werden, da Webstart keine Webanwendung ist.

Du könntest z. B. einen Dienst auf deinem Server bereitstellen, der Authentifizierung, Timeout, ... realisiert. Deine Webstart Anwendung müsste dann damit kommunizieren und z. B. im Fall eines Timeouts eine neue Anmeldung erzwingen.

Evtl. gibts dafür auch schon irgendwelche Frameworks, mir ist aber keines bekannt.


----------



## Henrik (13. Dez 2007)

maki hat gesagt.:
			
		

> > Sinnvoller beitrag.
> 
> 
> Das war als Hinweis gedacht, nimm ihn dir mal zu Herzen, denn offensichtlich ignorierst du immer noch was man dir sagt


Nimm mir das nicht übel aber vielleicht solltest du mal dadrüber nachdenken das jemand, der etwas auf eine bestimmte weiße machen will, da wirklich ahnung von hat und nicht immer ein Anfänger ist der mit dem Kopf durch die Wand will. 

Seis drum, trotzdem vielen Dank das ihr mir helfen wollte   , die Lösung ist zumindestens super einfach, man muss nur eine Annotation zur EJB hinzufügen:


```
@RolesAllowed({"admin"})
```

Dann sorgt der Application Server dafür das nur noch User die sich bei ihm einloggen und die Rolle admin haben zugriff auf die EJB haben. Der Logindialog wird automatisch erzeugt sobald die Anwendung auf die entsprechende EJB zugreifen will. Ich nutz zurzeit den Default Realm, was kein Problem ist weil der genau auf meine Datenbank verweißt aber irgendwie muss es auch noch möglich sein das man einen anderen Realm einstellt. Also falls dafür noch jemand eine Lösung hat wär ich sehr dankbar.


----------

