SOA és jogosultságok
Üdv.
Az érdekelne, hogy hogyan szokás webserviceknél jogosultságot kezelni?
Hogy kézzelfogható legyen, írok egy konkrét példát:
Itt a login és getAll action-ök használatára alapból mindenkinek joga van, viszont a put action használatára csak annak van joga, aki bejelentkezett az oldalon. Na most azt, hogy milyen actiont lehet az adott sessionnel meghívni valahogyan jelezni kell a kliensnek, és engem ennek a mikéntje érdekel.
Előre is kösz a válaszokat!
■ Az érdekelne, hogy hogyan szokás webserviceknél jogosultságot kezelni?
Hogy kézzelfogható legyen, írok egy konkrét példát:
class ForumService
{
void login(String email, String password);
List<Comment> getAll();
void put(Comment value);
}
{
void login(String email, String password);
List<Comment> getAll();
void put(Comment value);
}
Itt a login és getAll action-ök használatára alapból mindenkinek joga van, viszont a put action használatára csak annak van joga, aki bejelentkezett az oldalon. Na most azt, hogy milyen actiont lehet az adott sessionnel meghívni valahogyan jelezni kell a kliensnek, és engem ennek a mikéntje érdekel.
Előre is kösz a válaszokat!
Mintha helyi lenne
Azért nem teljesen, mert
Nem egy elterjedt dolog ajax+php-val soa-zni, mert nem erre találták ki soa-t. Mindenesetre jobb, mint postData-t parsolni, és minden egyes Controllert(servicet) kézzel megírni.
Bugos
Ami az access controlt illeti: próbáld meg úgy szervezni, hogy a SOA hívások egy-egy controllerben kössenek. Innentől fogva vagy a controllernek vagy a modellnek úgyis kell autorizációt ellenőrizni, pusztán a GPC paraméterek parzolását kell kihagyni.
Erről egyébként Felhő tudna többet mondani, de sajnos keveset jár erre.
Persze, én is úgy gondoltam,
Lesz a Session-ben egy SecurityService, amitől le tudja kérdezni a service bus, hogy megvan e a jogosultság, aztán ha nincs, akkor exceptiont dob, így nem jut el a Service-ig a kérés. Meg ugyanennél lesznek külső elérésű dolgok is, úgy, mint login, loginPermanentCookie, getPermissionMap meg ilyesmik...
Ezzel a rendszerrel szerintem nagyon jól átlatható lesz az egész validálás, csak nagyon kevés dolog lesz, amit manuálisan kell megoldani, szóval sokkal egyszerűbb lesz biztonságos oldalt írni, meg a View részt teljesen le lehet választani a szerverről.
Valóban
Hát eddig kettőt találtam:
- Nem ellenőrzi az XML Schema alapján az átvitt adatot, szóval gyakorlatilag nem validál, így bármit át lehet hozni
- Nincs normális megoldás az áthozott adat objektumokra való alakítására, lehet megadni classMap-et meg typeMap-et, de olyat nem lehet, hogy egy függvénynek passzolod le a konvertálást, így gyakorlatilag lehetetlen általános konvertálót beleírni. (Gondolok itt olyanra, hogy a típusokat ugyanúgy nevezem el, mint az osztályokat egy névtérben, aztán csak megadom a névteret, a konverziót meg automatikusan végrehajtja a rendszer.)
Pocsék... Valszeg írok egy saját egyszerű valamit a témára, vagy váltok java-ra, mert már kezdem unni, hogy php-ben nincsen semmihez használható eszköz.
Másik