JSF Architektur/Design einer JEE 6 + JSF 2.x Webanwendung mit Subdomänen

Kann mir einer von euch bitte erläutern, wie man eine solche JEE 6 Webanwendung mit JSF 2.x Frontend technisch -- insbes. auf Servlet-Ebene -- hinbekommt?

Die Anwendung soll
  • eine gewöhnliche Hauptdomäne [www.acme.org] mit allgem. Infos verwalten können und darüber hinaus
  • N weitere Subdomänen [sd1.acme.org, sd2.acme.org, usw.; oder auch www.acme.org/sd1/, etc.] dynamisch registrieren können, über eine Funktion in der Hauptdomäne.
  • Jede Subdomäne ist für sich isoliert und abgesichert, hat also eigene Sicherheitsrichtlinien (Access Control).

Die Hauptfrage ist nun:
Wie muss ich das eine Frontend-FacesServlet (oder gar mehrere Servlets(?)) konfigurieren, damit die Anfragen/Antworten korrekt und abgesichert zw. Client und der Ziel-Subdomäne vermittelt werden?

Etwas aufgeschlüsselter wären dies die unklaren Aspekte:
  • Wie sind die vermittelnden Steuerungskomponenten (Servlets) organisiert?
  • Wie ermittelt das Front-Servlet die untergeordnete Steuerungskomponente der Subdomäne und erhält eine Referenz darauf? -- Sicherlich über einen Eintrag im ApplicationScope, oder?
  • Was leistet die Steuerungskomponente der Subdomäne im allgemeinen? -- D.h., an welcher Stelle wird die Authentifizierung und Autorisierung für die Subdomäne gewährleistet?
Für eine Erläuterung, Tipps oder Links zu einem solchen Beispiel wäre ich euch sehr dankbar.
Viele Grüße, Natalia
 
N weitere Subdomänen [sd1.acme.org, sd2.acme.org, usw.; oder auch www.acme.org/sd1/, etc.] dynamisch registrieren können, über eine Funktion in der Hauptdomäne.
Das wäre ein Fall fürVvirtual Hosts entweder direkt im Webcontainer oder mit vorgelagertem Apache-Httpd. Das würde eine Isolierung sicherstellen. Allerdings ist das nicht recht dynamisch, weil es konfiguriert wird.
 
Hallo zusammen und Danke für die schnelle Antworten!

Eigentlich soll es eine Std.-JavaEE-Anw. mit Servlets, JSFs und EJBs od. POJOs werden -- zumal ich mich erst gerade mit JavaEE beschäftige und Portal-Technologien u.ä. für mich noch "ganz weit weg" sind. Auch habe ich den Eindruck, dass meine Frage etwas komplizierter rüberkam als gedacht.

Eigentlich soll die Anw. möglichst einfach gestrickt sein, mit -- zur Veranschaulichung -- den folgenden URLs:


  1. www.acme.org/app/
    www.acme.org/app/index.jsf
    www.acme.org/app/provider-registration.jsf
    www.acme.org/app/login.jsf

  2. www.acme.org/app/providerN/admin-console.jsf
    www.acme.org/app/providerN/login.jsf , service-catalog.jsf , pageXYZ.jsf, ...
wobei (1) die a priori bekannten Hauptanwendungs-URLs sind (statische URLs) und (2) die provider-spezifischen URLs, deren relative Pfadteile (bis auf ggf. 'login' u. 'index') erst zur Laufzeit bekannt werden (dyn. URLs), weil jeder Provider sowohl seinen ContextPath (providerN) als auch seine Seitennamen selber benennen können soll. Somit sind für 2 versch. Provider auch versch. Schemas möglich, à la:


Momentan sehe ich 2 denkbare Lösungsansätze:
  1. Eine Webanwendung: Nur 1 FacesServlet, statisch konfiguriert auf ContextPath "www.acme.org/app/", der alle Anfragen erhält und anhand des Provider-URL-Teils (Subdomänen-Bezeichner) die Anfrage an die interne Steuerungs-Komponente dieser Subdomäre delegiert.
  2. Mehrere Webanwendungen: Eine Hauptanw. mit dem obigen einen FacesServlet für "www.acme.org/app/", der jetzt nur noch die (De-)Registrierung der Provider übernimmt UND pro Provider zusätzlich 1 FacesServlet (eigentlich vorbereitete WebAnwendung (im Default-Zustand)) beim AppServer *dynamisch* installiert (soll ja ab Servlet 3.0 ja möglich sein).
Beide Ansätze müssten eine Login-Funktionalität anbieten und für die Sicherheitsrichtlinien selber sorgen, d.h. ein vorkonfigurierter container-basierter Sicherheitsmechanismus wäre bei (1) gar nicht möglich und bei (2) ggf. nur beim dynamischen Deployen der Sub-Anwendungen, wenn der Provider bei der Provider-Registrierung die eigenen Sicherheitsrollen spezifiziert. Oder sehe ich das alles falsch?!?

Im Augenblick macht auf mich der Lösungsansatz 1 den "natürlicheren" Eindruck. Was meint ihr?

Für jede Hilfe vielen vielen Dank im Voraus.
Natalia
 

Zurück
Oben