Passwortänderung durch Endbenutzer: In der Anwendung
von Bruno Unberath, Nürnberger Versicherungsgruppe
Auch in Installationen, für die das eingebaute
Authentifizierungsschema "Application Express"
verwendet wird, ist es oft erwünscht, dass die
Endbenutzer ihr Kennwort selbstständig ändern können.
Hier erfahren Sie, wie dies ermöglicht werden kann.
Ziel ist es, eine Anwendungsseite zu erstellen,
die in etwa wie in Abbildung 1 aussieht und beliebig
in Applikationen eingebaut werden kann.
Abbildung 1: Dialog zum Ändern des Passworts für den Endbenutzer
Erstellen Sie im Application Builder
eine neue Seite oder navigieren
Sie zu der Seite, die das Formular zur Kennwortänderung erhalten soll.
Das Beispiel verwendet Seite 4 - sie können natürlich eine beliebige
Seite verwenden.
Region und Elemente (Items)
Navigieren in der Seitenbearbeitung im linken Bereich zu den
Regionen und erstellen Sie
eine neue HTML-Region mit dem
Namen Kennwort ändern. Akzeptieren Sie dabei
die vorgeschlagenen Default-Werte.
Erstellen Sie danach vier Texteingabefelder in der neuen Region:
P4_CURR_USER,
P4_PW,
P4_NEW_PW und
P4_NEW_PW2 (Die Variante
Mehrere Elemente mit tabellarischer Form erstellen ist hierbei
sehr hilfreich).
Nun passen Sie die erstellten Elemente an, indem
Sie in der Seitenbearbeitung auf diese klicken und so
ins Menü Seitenelement bearbeiten geführt werden.
Nehmen Sie folgende Änderungen vor:
-
Stellen Sie die Eigenschaft Schreibgeschützt beim
Element P4_CURR_USER auf immer.
-
Stellen Sie die Elemente P4_PW und P4_NEW_PW auf
den Anzeigetyp Kennwort um.
-
Stellen Sie das Element P4_NEW_PW2 auf den Typ
Kennwort (wird nach Drücken der EINGABETASTE weitergeleitet) um.
-
Und wenn Sie möchten: Richten Sie den Label aller Elemente links aus
(Label: Horizontale/vertikale Ausrichtung).
Schaltfläche
Erstellen Sie als nächstes eine Schaltfläche in derselben Region (Abbildung 2)
Abbildung 2: Schaltfläche hinzufügen
Akzeptieren Sie als Schaltflächenposition Schaltfläche in einer Regionsposition
erstellen. Als Name der Schaltfläche wählen Sie Anwenden
(APPLY_CHANGES).
Akzeptieren Sie das Label Anwenden, den Schaltfächentyp
und die Aktion
Seite weiterleiten und an URL umleiten. Klicken Sie auf den folgenden Seiten
stets auf Weiter und erstellen Sie schließlich die Schaltfläche.
Ladeprozeß
Nun geht es daran, den Namen des aktuell angemeldeten Benutzers beim Laden der
Seite in das Eingabefeld P4_CURR_USER einzutragen. Erstellen Sie dazu einen
neuen onLoad-Prozeß:
Wählen Sie den Prozesstyp PL/SQL, benennen Sie den Prozess mit
UserNameLaden und wählen Sie den Punkt Beim Laden - Vor Regionen.
Geben Sie dann folgenden PL/SQL-Code ein:
Testen Sie die Seite nun - bis hierhin sieht es ganz gut aus:
der Name des angemeldeten Benutzers wird angezeigt und die Eingaben in
den drei Kennwort-Feldern werden als Sternchen angezeigt - allerdings fehlen
noch die Komponenten, die Sie für die Verarbeitung brauchen.
Validierungen
Als erstes wird sichergestellt, dass in alle Felder Eingaben gemacht
werden. Erstellen Sie dazu Validierungen.
Wählen Sie dort die
Variante Mehrere NOT NULL-Validierungen erstellen, markieren Sie
alle Elemente und erstellen Sie so die Validierungen.
Abbildung 3: NOT NULL Validierungen erstellen
Als nächstes erstellen Sie eine Validierung, die das
aktuelle Passwort des Benutzers prüft. Wählen Sie dafür
Validierung auf Elementebene für das
Element P4_PW,
als Methode PL/SQL und dort
Funktion, die Fehlertext zurückgibt.
Hinterlegen Sie folgenden Code für die Validierungsfunktion:
Als nächstes muss sichergestellt werden, dass das
neue Passwort mit seiner Wiederholung übereinstimmt.
Erstellen Sie dafür wiederum eine Validierung auf Elementebene
zum Element P4_NEW_PW2.
Auch dies ist eine PL/SQL-Funktion, die Fehlertext zurückgibt:
Als letzte Validierung wid nun eine Prüfung erstellt, mit der das neue Kennwort gegen
die Kriterien geprüft wird, die auf Administrationsebene definiert wurden.
Dies ist wieder eine Validierung auf Elementebene
und zwar bezogen auf P4_NEW_PW.
Auch diese Validierung ist eine Funktion, die einen Fehlertext zurückgibt.
Erstellen Sie die Validierung - diese Lösung ist recht flexibel, da nun für
das neue Passwort die Regeln greifen, welche der APEX Administrator zentral für
den Server festgelegt hat.
Verarbeitungsprozeß
Abbildung 4: Verarbeitungsprozeß und abschließende Verzweigung erstellen
Erstellen Sie nun einen onSubmit-Prozess,
welcher das Passwort tatsächlich
ändert (bis hierhin wurde lediglich validiert). Als Ausführungspunkt wählen Sie
also Bei Weiterleitung - Nach Berechnungen und Validierungen aus. Der
PL/SQL-Code ist recht simpel:
Hinterlegen Sie Kennwort wurde geändert oder einen ähnlichen Text
als Erfolgsmeldung - als Fehlermeldung bietet sich #SQLERRM# an. Zum
Abschluß muss nun nur noch eine Verzweigung erstellt werden ...
Verzweigung
Erstellen Sie also eine neue Verzweigung - das Ziel hängt von Ihrer Anwendung ab. Wichtig
ist, dass Sie den Cache Inhalt löschen und die
Erfolgsmeldung über Prozess einbeziehen.
Fertig. Nun kann der Endbenutzer mit dieser Seite sein Passwort ändern. Die Kür
ist es nun, die Seite einzeln zu exportieren und dann in anderen Anwendungen
wiederzuverwenden ...
Zurück zur Community-Seite
Bruno Unberath ist seit 1991 Anwendungsentwickler bei der Nürnberger
Versicherungsgruppe. Nach etlichen Jahren Großrechnererfahrung, verlagerte
sich sein Tätigkeitsschwerpunkt in das J2EE- und Oracle-Umfeld.
Zur Zeit betreut er die Oracle-Belange in einem großen Projekt; er beschäftigt sich
auch mit Datenbank-basierten Anwendungen - insbesondere APEX."
|