JustVoodoo
Cadet 3rd Year
- Registriert
- Aug. 2010
- Beiträge
- 32
Hallo zusammen,
ich brauche eure Hilfe um ein kleines Projekt vorran zu bringen, denn da weiß ich im Moment nicht weiter. Und zwar versuche ich gerade eine WebApp für ein Haushaltsbuch zu schreiben, so dass man erstmal über den Browser, später übers Smarthphone, sich mit Namen und Passwort anmelden kann und dann seine eigenen Einträge (Wann habe ich was und für wieviel gekauft) lesen/erstellen/editieren kann.
Dazu möchte ich folgendes benutzen:
Das Problem ist, dass ich zu viele unterschiedliche und nicht zusammenhängende Tutorials, Foreneinträge und andere Dinge gelesen habe ich jetzt recht verwirrt bin, wie ich das Ganze eigentlich umsetzen soll...
Bisher kenne ich mich eigentlich nur mit Objektorientierter Programmierung (Java) und ein bischen SOAP aus. WebApplications habe ich bisher auch nur mit ZKoss geschrieben und wollte mich mal an JSP wagen. Mit RESTful WS habe ich erst vor kurzem angefangen und habe noch einige Verständnisprobleme mit dem Resourcen orientierten Ansatz.
Ich stelle hier einfach mal meine "Lösung" vor, woran ich gerade arbeite, aber ich habe das Gefühl, dass ich die Technologien nicht so einsetze, wie man es eigentlich sollte, ganz besonders den REST-Teil.
---
Ich bin soweit, dass ich über einfache JSPs, bzw. unter Verwendung der REST Web Services, die User und Einträge verwalten kann. Allerdings kann jeder mit einem Browser auf alle Resourcen (Einträge und User) zugreifen, ohne dass ein Login erforderlich wäre. Also wenn man z.B. .../eintrag/1 eingibt, bekommt man den entsprechenden Datensatz aus der DB zurück, egal wer die Daten anfordert.
Jetzt habe ich gelesen, dass man mittels HTTP (BASIC) Authentication den Zugriff auf die Resourcen des Web Services einschränken kann. Dabei gibt es aber das Problem, dass dann potentielle Benutzer in die Konfigurationsdaei des Web Servers (Tomcat 7.x) eingetragen werden müssten. Das will ich eigentlich nicht, denn die sollten in der DB gespeichert werden.
Also habe ich mich dazu entschlossen, dass sich nur die WebApp gegenüber dem Server authentisieren kann, so dass ich nur einen User im Tomcat Server registrieren muss. Somit kann schon mal niemand über den Browser o.ä. auf die Resourcen des Web Services zugreifen. Bleibt nur das Problem, dass sich jetzt ein User mit Namen und Passwort noch über die WebApp anmelden können muss, so dass er nur seine eigenen Einträge angezeigt bekommt.
Das wollte ich wie folgt machen:
* Dabei sind x = MD5(name), y=MD5(password), was aber wohl keine Replay Attacken verhindern kann? Im Grunde würde das wohl auch gar nichts bringen, oder? Denn wenn jemand den Request abfängt, dann bekommt er ja in jedem Fall ein gültiges Paar aus Username und Passwort... Hilft da vielleicht die Verschlüsselung mit SSL??
Wenn die WebApp dann die ID hat, kann sie z.B. mittels GET .../eintrag/user/33 alle Einträge des Users mit der ID 33 anfordern.
Alles zusammen bin ich der Meinung, dass das was ich da mache schlicht "Murks" ist und ich habe keine Ahnung in wie es richtig gemacht wird.
Offene Fragen sind noch:
LIST]
[*]Kann ich für mein login-Problem accessTokens Verwenden und wenn ja wie?
[*]Sollte man auf jeden Fall SSL/TLS verwenden, oder gibt es auch Ansätze die ohne auskommen? Es muss auch nicht ultra sicher sein, sind ja keine Bankgeheimnisse, die ich da speichern will.
[/LIST]
Ich suche hier also auch keine fertige Lösung mit Code, sondern den Weg, wie es (heutzutage) richtig gemacht wird.
Schon mal Danke im Voraus.
ich brauche eure Hilfe um ein kleines Projekt vorran zu bringen, denn da weiß ich im Moment nicht weiter. Und zwar versuche ich gerade eine WebApp für ein Haushaltsbuch zu schreiben, so dass man erstmal über den Browser, später übers Smarthphone, sich mit Namen und Passwort anmelden kann und dann seine eigenen Einträge (Wann habe ich was und für wieviel gekauft) lesen/erstellen/editieren kann.
Dazu möchte ich folgendes benutzen:
- JSP für die WebApp
- MySQL für die Speicherung von Usern und Einträgen
- RESTful Web Services (Jersey) um auf die Datenbank zuzugreifen
Das Problem ist, dass ich zu viele unterschiedliche und nicht zusammenhängende Tutorials, Foreneinträge und andere Dinge gelesen habe ich jetzt recht verwirrt bin, wie ich das Ganze eigentlich umsetzen soll...
Bisher kenne ich mich eigentlich nur mit Objektorientierter Programmierung (Java) und ein bischen SOAP aus. WebApplications habe ich bisher auch nur mit ZKoss geschrieben und wollte mich mal an JSP wagen. Mit RESTful WS habe ich erst vor kurzem angefangen und habe noch einige Verständnisprobleme mit dem Resourcen orientierten Ansatz.
Ich stelle hier einfach mal meine "Lösung" vor, woran ich gerade arbeite, aber ich habe das Gefühl, dass ich die Technologien nicht so einsetze, wie man es eigentlich sollte, ganz besonders den REST-Teil.
---
Ich bin soweit, dass ich über einfache JSPs, bzw. unter Verwendung der REST Web Services, die User und Einträge verwalten kann. Allerdings kann jeder mit einem Browser auf alle Resourcen (Einträge und User) zugreifen, ohne dass ein Login erforderlich wäre. Also wenn man z.B. .../eintrag/1 eingibt, bekommt man den entsprechenden Datensatz aus der DB zurück, egal wer die Daten anfordert.
Jetzt habe ich gelesen, dass man mittels HTTP (BASIC) Authentication den Zugriff auf die Resourcen des Web Services einschränken kann. Dabei gibt es aber das Problem, dass dann potentielle Benutzer in die Konfigurationsdaei des Web Servers (Tomcat 7.x) eingetragen werden müssten. Das will ich eigentlich nicht, denn die sollten in der DB gespeichert werden.
Also habe ich mich dazu entschlossen, dass sich nur die WebApp gegenüber dem Server authentisieren kann, so dass ich nur einen User im Tomcat Server registrieren muss. Somit kann schon mal niemand über den Browser o.ä. auf die Resourcen des Web Services zugreifen. Bleibt nur das Problem, dass sich jetzt ein User mit Namen und Passwort noch über die WebApp anmelden können muss, so dass er nur seine eigenen Einträge angezeigt bekommt.
Das wollte ich wie folgt machen:
- In der WebApp gibt man Name und Passwort ein
- Die WebApp führt daraufhin ein HTTP Request [GET .../user/login?username=x&password=y] (was aber wohl nicht sehr RESTful ist oder?) und bekommt die ID des Nutzers zurück *
- Die WebApp soll die ID dann für alle weiteren Anfragen benutzen, um nur Einträge des entsprechenden Users anzuzeigen
* Dabei sind x = MD5(name), y=MD5(password), was aber wohl keine Replay Attacken verhindern kann? Im Grunde würde das wohl auch gar nichts bringen, oder? Denn wenn jemand den Request abfängt, dann bekommt er ja in jedem Fall ein gültiges Paar aus Username und Passwort... Hilft da vielleicht die Verschlüsselung mit SSL??
Wenn die WebApp dann die ID hat, kann sie z.B. mittels GET .../eintrag/user/33 alle Einträge des Users mit der ID 33 anfordern.
Alles zusammen bin ich der Meinung, dass das was ich da mache schlicht "Murks" ist und ich habe keine Ahnung in wie es richtig gemacht wird.
Offene Fragen sind noch:
LIST]
[*]Kann ich für mein login-Problem accessTokens Verwenden und wenn ja wie?
[*]Sollte man auf jeden Fall SSL/TLS verwenden, oder gibt es auch Ansätze die ohne auskommen? Es muss auch nicht ultra sicher sein, sind ja keine Bankgeheimnisse, die ich da speichern will.
[/LIST]
Ich suche hier also auch keine fertige Lösung mit Code, sondern den Weg, wie es (heutzutage) richtig gemacht wird.
Schon mal Danke im Voraus.