I have a PHP application that has an access control mechanism based on a navigation identifier for individual pages. Thus, the user can have access to pages 1, 4, 5, for example. The navigation identifier is not static, new pages (and therefore new identifiers) can be generated by the administrator. And I have some kind of service oriented architecture. Thus, I have services that are called from the JSON client, but also from the server side by PHP classes (controllers) directly. I have a problem, I need an access control mechanism for services. And I would like it to be separated from the services themselves.
Services return business objects. All of this BO has some kind of βconnectionβ with an object that has a navigation identifier. for example, service returns images: Image.page β Page.navID or service returns dimensions (nn): Dimension β DimImageConnector β Image.page β Page.navID.
I cannot imagine a clean access control solution. Finding a navigation identifier in business objects does not seem to be a very good and easy solution.
It would be nice to have some input for my access control architecture.
Thanks!
BTW: I use the annotation structure, so one of the possibilities is to provide some access information directly using the service method.
source share