Frage

Ich habe eine ziemlich gewöhnliche Java-EE-Anwendung auf JBOSS Laufen bekommt. Es nutzt die JBoss DatabaseLoginModule JAAS-Authentifizierung. Es hat auch Anwendungsschicht Benutzer / Rollen in den Ruhezustand, die genau die gleichen sind.

Ich habe eine Idee (was meiner Meinung nach ziemlich nützlich ist für mich jedenfalls) eine Fähigkeit wenig habe ich in dem Software-Lizenzobjekt festlegen kann (nicht Hibernate), die alle Benutzer Benutzer der Nur-Lese-macht. Auf diese Weise können Sie mir eine von Relizenzierung es nur Version des Produkts lesen machen.

Was ich möchte, ist die Benutzerverbände tun Neuzuordnung auf der Grundlage einen boolean-Flag zugänglich im Programm.

Also normalerweise bekommen wir (viele-viele join)

Benutzer - * Userrole * -Role - * RoleActions

Dabei steht

user.roleid => role.id

Wenn die boolean gesetzt (eine Fähigkeit Bit in der Software-Lizenz festgelegt)

Ich möchte JAAS handeln, wie alle Benutzer 1 RoleID wurden =, wenn die Lizenz so sagt.

Irgendwelche Ideen?

War es hilfreich?

Lösung

Mit dem DatabaseServerLoginModule Subklassen kann ich zusätzliche Prüfungen durchführen. (Auf der Software-Lizenz)

Trivial kann ich dann

  1. Wenn die Lizenz abgelaufen ist, gibt ein Read-only Benutzer (die Anmeldeinformationen sind festgelegt)

  2. Wenn die Lizenz für die Nur-Lese-Fähigkeit-Bit gesetzt hat, gibt die Read-only Benutzer (die Anmeldeinformationen sind festgelegt)

Da die Anmeldung abgefangen wurde, die Hibernate Benutzersuche für den richtigen Benutzer sein wird.

Andere Tipps

Vielleicht fehlt mir das Boot hier, aber warum nicht, dass programmatisch tun?

In User Objekt bietet ein vorübergehend Getter wie getAuthenticatedRoles(), die zusätzlich filtern würden, was geladen Hibernate. Additonally, die ursprünglichen abgebildet Sammlung Getter protected machen, und nur getAuthenticatedRoles() von anderem Java-Code verwenden.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top