Trace: • Using DBSecurityManager
Eine übliche Anforderung an Business Anwendungen ist die Benutzer Authentifizierung. Im Grunde eine triviale Anforderung, doch die Umsetzung ist alles andere als einfach. Je nachdem wie sehr eine Anwendung in die bestehende Infrastruktur eingegliedert werden muss, desto komplexer wird die Umsetzung, z.B. Single Sign On.
Das JVx Framework ermöglicht die Integration jedes beliebigen Authentifizierungs-Systems. Durch das Security Manager Konzept ist es jederzeit möglich ein neues System zu unterstützen.
Bereits implementiert wurden der XmlSecuritymanager und DBSecurityManager. Der DBSecurityManager prüft einen Benutzernamen und Passwort gegen eine Benutzertabelle in der Datenbank.
Diese Tabelle ist z.B. wie folgt definiert:
- create.sql
CREATE TABLE USERS ( ID INTEGER IDENTITY, USERNAME VARCHAR(255) NOT NULL, PASSWORD VARCHAR(255) NOT NULL, CHANGE_PASSWORD CHAR(1) DEFAULT 'N', VALID_FROM TIMESTAMP, VALID_TO TIMESTAMP, ACTIVE CHAR(1) DEFAULT 'Y', FIRST_NAME VARCHAR(20), LAST_NAME VARCHAR(20), EMAIL VARCHAR(255), PHONE VARCHAR(20), CONSTRAINT USR_PK PRIMARY KEY(ID), CONSTRAINT USR_NAME_UK UNIQUE(USERNAME) )
Damit der Security Manager verwendet wird muss die Konfiguration, config.xml, angepasst werden:
- config.xml
<application> ... <securitymanager> <class>com.sibvisions.rad.server.security.DBSecurityManager</class> <database> <url>jdbc:derby://localhost:1527/demo</url> <username>user</username> <password>pwd</password> </database> </securitymanager> ... </application>
Alles weitere wird nun von JVx erledigt:
- Benutzername prüfen
- Passwort prüfen
- Gültigkeit prüfen
- Aktivierung prüfen
Für die Implementierung von alternativen Authentifizierungs-Systemen siehe Einen SecurityManager implementieren.