Felhasználó kezelés dokumentáció, Molnár László, 2006
Felhasználó kezelés fejlesztési dokumentáció Tartalomjegyzék Felhasználó kezelés fejlesztési dokumentáció......................................................................................1 1. Vízió.............................................................................................................................................2 2. Követelmények............................................................................................................................2 Funkciónális (felhasználói).........................................................................................................2 Nem funkciónális (technikai)......................................................................................................7 Kiegészítő követelmények (már megoldott)...............................................................................7 Nem követelmények (későbbi bővíthetőség)..............................................................................7 3. Adatmodel....................................................................................................................................9 4. Funciónális terv..........................................................................................................................10 Web: .........................................................................................................................................11 Service: .....................................................................................................................................11 Dao: ..........................................................................................................................................11 Domain: ....................................................................................................................................11 Util (opcionális): ......................................................................................................................11 Az osztályok felsorolása:..........................................................................................................12 5. Tesztelés.....................................................................................................................................13 6. Bővíthetőség..............................................................................................................................13 7. Fejlesztési környezet..................................................................................................................13
1
Felhasználó kezelés dokumentáció, Molnár László, 2006
1. Vízió A felhasználók kezelésére alkalmas alap modul. Erre a modulra épülnel a további fejlesztések. Főbb funciók: –
felhasználói fiók rendszerhez adása (regisztráció)
–
rendszerbe belépés (további funkciók elérése miatt)
–
felhasználói adatok közötti keresés (pl: név, email)
–
felhasználói adatok módosítása (pl: email, cím)
–
felhasználói státusz módosítása (pl: aktív, inaktív)
–
felhasználó törlése a rendszerből
–
a felhasználói adatok kezeléséhez szükséges rendszer beállításainak módosítása (pl: verzió, aktíválási határidő)
–
látogatók kezelése (pl: böngésző típus, kiinduló oldal)
–
műveletek kezelése (a látogató milyen műveleteket végzett a rendszerben)
–
a rendszer adatai közötti keresés (pl: műveletek, látogatók)
2. Követelmények Funkciónális (felhasználói) Modulok: –
Felhasználók (alap csomag)
–
Felhasználó rendszer (alap csomag)
–
Látogatók (alap csomag)
–
Műveletek (actionLog csomag)
–
Emailek restancia sorba rendezése - email sor (sendEmailQueue csomag)
–
Tiltott IP szűrés (bannedIp csomag)
–
Country és nyelv kezelés (country/language csomag)
–
Email küldés (MyUtils csomag)
Felhasználók A rendszer különböző funkcióit különböző jogosultságokkal lehet elérni. Jogosultság szerint lehetnek: látogató, felhasználó, rendszergazda. Technikai megjegyzés: A jogosultsági szintek XML fájlból állíthatók. Látogatói és felhasználói funkciók (alap): keresés, regisztráció, bejelentkezés, kilépés, saját adatok megtekintése/szerkesztése/törlése. Email, telefon és honlap adatok kezelése (hozzáad, szerkeszt, töröl). 2
Felhasználó kezelés dokumentáció, Molnár László, 2006 Rendszergazda funkciók: alap + minden felhasználó adatának kezelése, a rendszer adatainak kezelése (látogatók, műveletek, email sor). A rendszergazda jellemzői: felhasználónév, jelszó, típus (Technikai megjegyzés: XML fájlból). A felhasználó jellemzői: felhasználónév (egyedi), jelszó, vezetéknév, utónév, regisztráció dátuma, módosítás dátuma, utolsó belépés dátuma, (alapértelmezett) email cím, cím (ország, város, utca, irányítószám), státusz (aktív, inaktív, lezárva, tartozik, kizárva), nyelv, hibás bejelentkezések száma. A felhasználó kiegészítő jellemzői: email címek, telefonszámok, honlapok. A látogató jellemzői: azonosító, ip cím, hoszt neve, menet azonosító, böngésző típusa, látogatás időpontja. Regisztráció: 1. Felhasználó --> A felhasználói adatok megadása a regisztrációs formon. 2. Rendszer --> Regisztrációs levél (regisztráció történt) küldése a felhasználó megadott email címére. --> Regisztráció 3. Felhasználó --> Válasz a regisztrációs levélre (vagy rendszergazdai aktiválás) --> Aktiválás 4. Rendszer --> Aktivációs levél (sikeres volt) küldése a felhasználó megadott email címére. A funkciók eléréséhez regisztráció, aktiválás, majd bejelentkezés szükséges. A regisztráció, az aktiválás és a keresés látogatóként is használható. Az aktiváció csak 24 órán (vagy megadható intervallumon) belül lehetséges. Bejelentkezés: –
–
–
Hozzáférési vagy jogosultsági szintek: –
látogató (nincs bejelentkezve, pl: kezdőlap, keresés)
–
bármely bejelentkezett felhasználó (pl: hozzászólás egy fórum topikban),
–
bejelentkezett felhasználó (a rendszergazda is, pl: felhasználói adatok módosítása),
–
csak a rendszergazda kezelheti az adatokat (pl: rendszer adatok módostása)
Bejelentkezés vagy jogosultság ellenőrzése: –
Belépési oldalról: a felhasználónév és a jelszó megadásával a menet idejére (alap: 30 perc) (Technikai megjegyzés: opciónálisan IP vagy IP tartomány ellenőrzés is)
–
Sütik: loginForm-on bejelölve cookie-n keresztűl megjegyzi (webes felületről beállítható ideig)
–
A regisztrációnál és a felhasználói adatmódosításnál jelszó erősség ellenőrzés (Technikai megjegyzés: A kliens oldalon realtime ellenőrzés vizuális megerősítéssel) történik.
–
A többszöri rossz belépési próbálkozásra zárolás (a felhasználó inaktív lesz, a rendszergazda teheti ismét aktívvá).
–
A jelszó érvényességi időtartama beállítható (az utolsó jelszómódosítástól számítva, utána az új jelszó megadása automatikusan történik és e-mailben küldi ki a rendszer).
Ha már be van lépve, akkor nem engedi ismételten belépni (webes felületről beállítható/aktiválható, egy felhasználónévvel csak egy felhasználó lehet jelen a rendszerben egyidőben). 3
Felhasználó kezelés dokumentáció, Molnár László, 2006 –
A bejelentkezett felhasználókat a rendszer tárolja és láthatóvá teszi az oldalmenüben (webes felületről beállítható). Technikai megjegyzés: A tárolt listába bejelentkezéskor vagy cookie ellenőrzéskor beteszi a felhasználónevet (és a sessionId id-t), majd a session zárásakor kiveszi.
–
Belépés után a login (ha a loginra kattintott) vagy a kért weboldal (ha védett tartalomra kattintott) jelenik meg. Az oldalmenüben megjelennek az extra funkciók.
–
Bejelentkezés IP címre való szűrése a rendszergazdánál és a felhasználóknál (egyénileg állítható a felhasználó részéről)
–
Az aktív és bejelentkezett felhasználók (Technikai megjegyzés: session, validUser) megjelenítése az oldalmenüben
–
A regisztrált felhasználók száma, legutóbb regisztrált felhasználók neve, belépett felhasználók neve, és a látogatók (mostanában, mai, eddigi) számának megjelenítése az oldalmenüben
Felhasználó rendszer A felhasználókhoz kapcsolódó rendszer beállításainak kezelése. –
Általános beállítások: verziószám, legutóbbi módosítás időpontja.
–
Regisztrációs beállítások: Jelszó erősség, jelszó érvényesség, címadatok ellenőrzése, account ellenőrzése és aktiválási határidő.
–
Belépési beállítások: rendszergazda IP címe, IP cím szerinti bejelentkezés engedélyezése, cookie-k használatának engedélyezése, többszöri bejelentkezés engedélyezése, max bejelentkezés a menetben, max bejelentkezés az adatbázisban, tiltott IP címek, tiltás bekapcsolása.
–
Oldalmenüben: egy elem hossza, elemek száma, frissesség, menet monitor, látogató monitor (menetek, egyedi látogatók), felhasználó monitor (regisztrált, bejelentkezett), keresés monitor, műveletek monitor (műveletek, nem logolt műveletek), egyedi látogatás időtartam, felhasználók és keresések maximális száma az oldalmenüben. Technikai megjegyzés: Max egyedi látogatók száma
Verziószám: Az éppen aktuális verziószám (pl: 1.01 vagy 1.23.45) Legutóbbi módosítás időpontja: A rendszergazda ekkor módosította utoljára a rendszer beállításait. Jelszó erősség: A jelszó kitalálhatóságának alap szintje. Gyenge - nincs szabály, Megfelelő = min 6 karakter, Közepes - min 7 karakter (betű + szám), Erős - min 7 karakter (betű + szám + spec karakter) Jelszó érvényesség: A jelszó érvényességi ideje (napban). Címadatok ellenőrzése: Igen vagy nem. Igen, ha a teljes címadatokat is ellenőrizze (ország, város, cím) a regisztrációnál. Account ellenőrzése: Igen vagy nem. Ha a rendszerben szükség lenne ügyfélazonosítóra. Ügyfél azonosító ellenőrzése, ha igen. Aktiválási határidő: A regisztráció és az aktiválás közötti maximális időtartam percben (pl: 1 nap = 1440, 1 hét = 10080). Rendszergazda IP címe: A rendszergazda csak a megadott IP címről vagy IP tartományból léphet be. Az engedélyezett adminisztrátori IP címek listája. Megadása: 192.168.1.1 vagy 4
Felhasználó kezelés dokumentáció, Molnár László, 2006 192.168.1.1;127.0.0.1 vagy 192.168.1.1|127.0.0.1 vagy ^(192.168.*|127.*|10.*)$. Technikai megjegyzés: Bármely regexp kifejezés használható. IP cím szerinti bejelentkezés engedélyezése: Igen vagy nem. A bejelentkezési admin IP cím ellenőrzése. Cookie-k használatának engedélyezése: Igen vagy nem. Igen, ha a rendszer megjegyezheti az felhasználók belépési adatait. Technikai megjegyzés: a felhasználó gépén a sütik között tárolja, nem biztonságos. Többszöri bejelentkezés engedélyezése: Igen vagy nem. Igen, ha egy időben egy felhasználónévvel több látogató beléphet. Max bejelentkezés a menetben: A maximális hibás bejelentkezések száma a menetben. Ha a megengedettnél többször próbált hibás felhasználónévvel vagy jelszóval belépni, akkor a rendszer a menet végéig nem engedi ismételten belépni. Technikai megjegyzés: brute force támadások ellen. Max bejelentkezés az adatbázisban: A maximális hibás bejelentkezések száma az adatbázisban. Ha a megengedettnél többször próbált hibás felhasználónévvel vagy jelszóval belépni, akkor a rendszer a rendszergazda beavatkozásáig nem engedi ismételten belépni. Ekkor a felhasználó státusza is megváltozik: lezárva (Technikai megjegyzés: locked). A rendszergazda teheti ismét aktívvá, mikor is törli (0) a „hibás bejelentkezések száma” mezőt a felhasználi adatoknál. Tiltott IP címek: A tiltott IP címekről az oldal nem elérhető. Tartományok is tilthatók és regexp használható. IP tiltás bekapcsolása: Igen vagy nem. Igen, ha a tiltás aktív. Ha a tiltás időtartama még nem járt le, akkor a megadott IP címról nem lehet elérni az oldalt. Oldalmenü elem hossza: Az oldalmenüben lévő elemek maximális hossza. Az oldalmenüből kilógás elkerülése miatt. Frissesség: A percben megadott értéknél korábbi elem frissnek számít az oldalmenüben. Látogató monitor: Igen vagy nem. Igen-nél a látogatók számának és az egyedi látogatók tárolása a menetben. Technikai megjegyzés: megjelenítés ajánlottan az oldalmenüben. Menet monitor: Igen vagy nem. Igen-nél a menetek számának tárolása a menetben. Csak a rendszergazda számára fontos információ. Technikai megjegyzés: megjelenítés ajánlottan az oldalmenüben. Max egyedi látogatók száma (technikai): A menetben tárolható egyedi látogatók maximális száma. E felett már nem tárolja, de az oldal elérhető számára is. A statisztika szempontjából van csak jelentősége. Technikai megjegyzés: a szám csökkentésével alacsony memóriájú vagy óriási egyidejű látogatószámú (fél óránként 1000+) rendszerekben gyorsulás érhető el illetve elkerülhető egy esetleges memóriahiány miatti leállás. Min egyedi látogatók időtartam: A statisztikában hány perc után számítson egyedi látogatónak. Felhasználó monitor: Igen vagy nem. Igen-nél a látogatók számának és az egyedi látogatók tárolása a menetben. Technikai megjegyzés: megjelenítés ajánlottan az oldalmenüben. Max regisztrált felhasználók: A legutóbb regisztrált felhasználók maximális száma az oldalmenüben. A felhasználónevet jeleníti meg. Max bejelentkezett felhasználók: A bejelentkezett felhasználók maximális száma az oldalmenüben. A felhasználónevet jeleníti meg. 5
Felhasználó kezelés dokumentáció, Molnár László, 2006 Keresés monitor: Igen vagy nem. Igen-nél az eddigi keresések tárolása (milyen szavakra kerestek legutóbb) a menetben. Technikai megjegyzés: megjelenítés ajánlottan az oldalmenüben. Max keresések száma: A keresések maximális száma az oldalmenüben. A keresett kifejezést jeleníti meg. Művelet monitor: Igen vagy nem. Igen-nél a műveletek logolása az adatbázisba is megtörténik. Technikai megjegyzés: itt nem a menetben, hanem az adatbázisban tárolódik. Elhagyásával jelentős sebességnövekedés érhető el (minden requestnél egy plusz adatbázisba írás). Nem logolt műveletek: Nem logolandó kiterjesztések listája. Pl: *(.jpg|.jpeg|.png|.gif|.css|.ico)$. Technikai megjegyzés: a logolás requestenként történik, érdemes elhagyni az oldalban importált képi, formázási és kliens oldali fájlokhoz tartozó kiterjesztéseket. Bármely regexp használható. A műveletek logolásának logolása (technikai): Igen vagy nem. A műveletek logolásának logolása az adatbázisban. Zt is logolja-e ha a műveletek listáját vagy részleteit nézi meg a rendszergazda. Ajánlott beállítás: nem. Látogatók Látogató aki megnyitja az oldal egy böngészőben (keresőmotorok is). A lap megnyításakor egy menet jön létre, amely a látogatás ideje alatt nem változik. A rendszer tárolja az adott látogató adatait és a látogató által végzett műveleteket. Jellemzői: IP cím, hostnév (az IP-hez rendelt domain), menet azonosító (session), userAgent (a böngésző adatai), létrehozás dátum. Műveletek Egy látogató által végzett funkció végrehajtása (pl: keresés). A műveletek jellemzői: azonostíó, felhasználónév (ha már belépett), a kért weblap címe, az előző weblap, a menet tartalma (Technikai megjegyzés: session változók), időpont. Email restancia és küldés A rendszer emailt küld a regisztráció, az aktíválás során és kérésre az elfelejtett jelszóról. A küldendő levél egy levelezési restancia sorba kerül be. Ezt a sort a rendszer néhány percenként (beállítható) ellenőrzi és kiküldi a leveleket. Technikai megjegyzés: A levélküldés a MyUtils csomag része. Jellemzői: feladó, címzett, email tárgya, email szövege, HTML elemeket tartalmazhat?, karakter kódolás, létrehozás/tervezett küldési/elküldési dátum, funkció (pl: regisztráció), próbálkozások száma (ha a küldés nem sikerülne elsőre). Tiltott IP szűrés A rendszer bizonyos IP címekről illetve tartományokból (Technikai megjegyzés: Regexp használható) érkező kéréseket tiltani tudja (Technikai megjegyzés: 403.6 hibalap). Így a látogató nem tudja elérni a kíván oldalt. Jellemzői: IP cím, a tiltó felhasználó, megjegyzés (a tiltás oka), a tiltás időtartam (órában), a tiltás lejárata, létrehozás dátum, statusz (aktív?). Country és nyelv kezelés A regisztrációnál a címadatoknál megadható az ország neve, a felhasználó által preferált nyelv (a későbbiekben lehet felhasználható).
6
Felhasználó kezelés dokumentáció, Molnár László, 2006
Nem funkciónális (technikai) –
limit a listázásnál (kész)
–
csak a megfelelő elemek a listázásnál (kész)
–
levélküldés (reg és akt) timerrel (id, emailTo, emailFrom - opciónális, subject, text, isHtml - 1, charset – utf-8, status – queued/sent/failed, createDate - létrehozva, sendDate – tervezett küldés, sentDate – valós küldés) (kész)
–
jelszó titkosítás (md5, sha vagy egyéni), (sha kész) + jelszó emlékezető alternatívaként: új jelszó küldése
–
messages.properties rendezése
–
legördülőben alapértelmezett (pl: országnál) (kész)
–
js ellenőrzés + form mezőknél (esetleg a végén pipa vagy x jelölés pic) (kész)
–
last és loggedUsernél csak a fontos adatokat kérdezze le (pl: emailt ne) (kész)
–
email címek védelme publikus oldalakon (js+replace, kész)
Kiegészítő követelmények (már megoldott) –
Cookie kezelés dokumentálása (kész)
–
Belépés ellenőrzés IP alapján minden felhasználónak (egyénileg beállítható) (kész)
–
Felhasználók az oldalmenüben: most (sessionId, logged), mostanában (visitorId, az utolsó x percben) + ma (egyedi), eddig (egyedi), reg felh (kész)
–
Minden funkció logolása adatbázisba (actionlog = visitor + user, művelet) (kész)
–
Keresések tárolása (searcheditem = actionlog + what, where, how) vagy a session tartalmának rögzítése (kész --> az actionLog-ba írva a sessionCont-ba) (kész)
–
A cím adatok mellőzése (beállítható), (kész)
–
A rendszerbe: verziószám (kész)
–
aktiváció legkésőbbi határideje (most 24 óra) a userSystem-be (kész)
–
Country és nyelv kezelés (kész)
–
Jelszó erősség ellenőrzés + többszöri rossz próbálkozásra lock + jelszó érvényességi időtartam (kész)
–
status (isActive): inactive, active, locked, restricted, banned --> az isActive kieg (0,1,2,3,4)
–
tiltott IP filter (Technikai megjegyzés: bannedIp jell: ip, tiltó felhasználó, megjegyzés, tiltás időtartama órában megadva, tiltás határideje, státusz; kész)
Nem követelmények (későbbi bővíthetőség) –
xss filter: <script>,
–
a jogosultsági szintek bővítése: manager, moderator, editor
–
Felhasználóhoz képek feltöltése 7
Felhasználó kezelés dokumentáció, Molnár László, 2006 –
Üzenetküldés a felhasználók között (Technikai megjegyzés: privateMessage jell: feladó, címzett, küldési időpont, státusz, létrehozva)
–
a felhasználó által preferált nyelv felhasználása
8
Felhasználó kezelés dokumentáció, Molnár László, 2006
3. Adatmodel
9
Felhasználó kezelés dokumentáció, Molnár László, 2006
4. Funciónális terv
A rendszer egy felhasználókezelési alapcsomagra épül (alap projekt), a feltöltéshez (upload) kapcsolódó része 7 (8) csomagot (alrendszer) tartalmaz, melyben 4 (5) réteg különül el.
10
Felhasználó kezelés dokumentáció, Molnár László, 2006
Web: A vezérlő csomag, mely a JSP és HTML lapokról érkező kéréseket dolgozza fel, majd továbbítja a választ a JSP lapokra. A MainController osztály a formokról érkező adatbevitel feldolgozáson kívüli funkciókat végzi. A formok feldolgozását az XxxFormController osztályok végzik.
Service: A szerviz csomag, mely összefogja az alkalmazás funkcióit. Ezen a csomagon keresztül érhetőek el az üzleti objektumok és az adatkapcsolatot biztosító réteg. Lehetővé teszi az alkalmazás elérését több típusú kliensen keresztül (vastag, vékony) interfészeken keresztül. Továbbá az összetett folyamatokat egy metódoson keresztül elérhetjük (pl: a feltöltés hozzáadásakor a fájlt is felmásoljuk a szerverre, az adatbázisba is beírjuk a fájl adatait és a lista módosítását).
Dao: Az adatkapcsolati csomag biztosítja a hozzáférést az adatbázishoz. Az interfészek segítségével könnyedén cserélhetők a specifikus adatbázis utasítások.
Domain: Az üzleti csomag, mely az adatbázisból kiolvasott és beírandó adatokat átmenetileg tárolja. A logic csomag az adatok beviteli helyességét ellenőrzi.
Util (opcionális): A rendszer kiegészítő funkcióit tartalmazó csomag. Tartalmazza a beléptető interceptorokat és a teszt unit-ot. A rendszer a különálló MyUtils csomagot is használja.
11
Felhasználó kezelés dokumentáció, Molnár László, 2006
Az osztályok felsorolása:
12
Felhasználó kezelés dokumentáció, Molnár László, 2006
5. Tesztelés
6. Bővíthetőség A felhasználókezelő (beléptető) rendszer bármely más rendszer alapja lehet.
7. Fejlesztési környezet JAVA (1.5) http://java.sun.com/ Eclipse IDE (3.0.2): http://www.eclipse.org/
13
Felhasználó kezelés dokumentáció, Molnár László, 2006 UML IDE (Eclipse plugin, 2.0.0): http://www.omondo.com/ Spring Framework (1.1.5) http://www.springframework.org/ Displaytag http://displaytag.sourceforge.net/ Sitemesh decorator http://www.opensymphony.com/sitemesh MySQL (5.0.15) http://www.mysql.com/ DB designer (4) http://www.fabforce.net/dbdesigner4/ Tomcat (5.5.9) http://jakarta.apache.org/tomcat/ Windows XP Home http://www.microsoft.com/
14