JBOSS Security, Struts, EJBs und Hibernate

studentxxx

Grünschnabel
Hallo, ich benutze das DatabaseServerLoginModule.

Die Autorisierung und Authentifizierung funktioniert jetzt einwandfrei.
Ich habe jetzt mal versucht in der Strunts-config.xml die Actions mit "roles" zu versehen.

Das funktioniert zwar auch, jedoch erscheint immer die "HTTP Status 403 - User is not authorized to access action" wenn der User kein Recht auf eine action hat. Kann man stattdessen eine selbst erstellte Seite anzeigen lassen ? Wenn ja wie ?

Meine zweite Frage wäre folgende:

Ich arbeite mit JBOSS, EJBs, Struts, Hibernate und Eclipse und als Datenbank MSSQL. Wie zuvor erwähnt benutze ich das DatabaseServerLoginModule für die Sicherheit der Anwendung. Ist es ausreichend nur die Actions zu sperren oder müsste ich auch die Session-Beans sperren ?


Meine dritte Frage wäre folgende:

Wie kann ich am einfachsten auch die Buttons in Abhängigkeit der Userrolle ausblenden?

Meine letzte Frage wäre folgende:

Username und Passwort wird ja im Container gespeichert und man hat mit den entsprechenden Methoden innerhalb der Session ja die ganze zeit Zugriff auf die Informationen. Deshalb bräuchte ich ja eigentlich keine ActionForm mehr, der diese Daten nur zusätzlich aufnehmen würde oder ?

Was wäre denn wenn z.B. ein User sein Passwort ändert? Könnte ich das über die Security-Methoden realisieren oder bräuchte ich dafür die ActionForm und die jeweiligen HibernateMappings ?
 
Hallo nochma,

meine zweite und dritte Frage haben sich erledigt. Ich bräuchte noch Hilfe zu der ersten und vierten Frage.

Weiß das hier keiner oder hat keiner Lust zu schreiben ?

Im Internet werde ich jetzt auch ma parallel weiter suchen.
Würde mich dennoch über Hilfestellung freuen.

Danke im voraus

Gruß
 
Zur ersten Frage:

ich bin kein JBoss Experte, aber die gängigen Web- bzw. ApplicationServer geben die Möglichkeit (z.B. in der web.xml beim Tomcat) explizit JSP Seiten für HTTP Fehlercodes per Konfigurationsdatei anzugeben. Googlen in diese Richtung sollte was finden... ;)

Gruß
Ollie
 
Danke für den Tip

Hab das hier gefunden:


<error-page>
<error-code>403</error-code>
<location>/errorpage.jsp</location>
</error-page>


Muss man in die web.xml eintragen nach welcome-file-list, da die Reihenfolge der Tags fest vorgeschrieben sind.

<!ELEMENT web-app (icon?, display-name?, description?, distributable?, con-text-param*, filter*, filter-mapping*, listener*, servlet*, servlet-mapping*, session-config?, mime-mapping*, welcome-file-list?, error-page*, taglib*, resource-env-ref*, resource-ref*, security-constraint*, login-config?, security-role*, env-entry*, ejb-ref*, ejb-local-ref*)>.



Ich probiere es jetzt aus.


Joa, dann bleibt noch meine vierte Frage offen. Hast du vielleicht auch dazu eine Idee ?
 
Ich hab es bisher immer vermieden den Conaitner als SecurityProvider zu benutzen. JAAS ist mir einfach zu unflexibel. Allerdings ist das wohl die API mit der du dich dann wohl beschäftigen solltest.

ActionForm ist soweit ich mich erinner ja die Bean hinter dem Loginformular. Wenn du nicht auf HTTPBasic umsteigen willst, wirst du dieses dann schon noch brauchen um deinem User erstaml die Möglichkeit zu geben, Authentifikationsinformationen einzugeben. Wie hast du das denn bisher gelöst?

Gruß
Ollie
 
Ich hab es bisher immer vermieden den Conaitner als SecurityProvider zu benutzen. JAAS ist mir einfach zu unflexibel. Allerdings ist das wohl die API mit der du dich dann wohl beschäftigen solltest.

ActionForm ist soweit ich mich erinner ja die Bean hinter dem Loginformular. Wenn du nicht auf HTTPBasic umsteigen willst, wirst du dieses dann schon noch brauchen um deinem User erstaml die Möglichkeit zu geben, Authentifikationsinformationen einzugeben. Wie hast du das denn bisher gelöst?

Gruß
Ollie


Ich hab ein Loginformular, also nicht Basic. Das Management übernimmt jedoch der Container bei mir. Ich hab die Actions mit roles versehen und die Funktionen/Buttons in der tiles-defs.xml habe ich mit roles versehen.

Ich hab bisher keine ActionForm für den Loginvorgang. Ich hab ja die ganz normale Benutzer und BenutzerImpl-Klasse auf die auch Hibernate zugreift.

Angenommen der User hat sich eingeloggt und will sein Passwort ändern. Meine Frage war ja, ob ich jetzt dafür doch die ActionForm brauche welche die Daten über den Request annimmt ? Oder kann ich das in meinem Fall auch ohne der ActionForm lösen weil die Informationen ja soweiso jeder Zeit griffbereit sind, da sie im Container gespeichert sind ? Ich hoffe du verstehst was ich meine :)

Ich wüsste nicht wann ich die Methoden von der JAAS API benutzen sollte ?
Bisher hats gereicht, die Actions und die Buttons mit roles zu versehen.
Wann genau bräuchte ich die Methoden von der JAAS API denn deiner Meinung nach ?
 
Woher weiß denn dein Container, welche Rollen der User hat? Das musst du ihm doch auf irgendeine Art und weise mitteilen. Ich dachte halt, dass du das über JAAS machst.

Gruß
Ollie
 

Neue Beiträge

Zurück