You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@directory.apache.org by Patrick Radtke <pr...@stanford.edu> on 2013/11/14 22:44:13 UTC

eSCIMo and generalizing resources

I wanted to start working on/with the eSCIMo project.
I'm interested in how to use it for adding resources besides User and Group.

The current ProviderService interface has Resource specific methods for 
Users any Groups (e.g getUser(), patchGroup()). The SCIM specification 
allows for additional resources to be defined - either within the realm 
of the spec, or by the service provider.
In an ideal world, I would be able to add these additional resources by 
extending ServerResource and implementing a resource specific provider 
interface, and the rest of the Server implementation would be generic 
enough to "just work". Currently that is not the case, and the server 
implementation assumes User and Group resources.

I think it may make sense to generalize ProviderService so that 
implementation would be both Resource and Backend specific. As example, 
implementations could be like:
  LdapUserResourceProvider - a User resource that is provide from ldap
  XmlGroupResourceProvider - a group resource that is provided from an 
xml file
  JpaPizzaResourceProvider - a Pizza resource that comes from a DB

Then  at the RESTful server level, instead of defining resource specific 
endpoints like GroupService and UserService, a generic ResourceService 
could determine the corresponding resource specific ProvderService 
implementation based on the URL. For example, if ResourceService saw 
/Users/123 it could user the string "Users" to look up in a factory, or 
a map the correct ProviderService.

What do people think? Other ideas?

thanks,

Patrick

Re: eSCIMo and generalizing resources

Posted by Kiran Ayyagari <ka...@apache.org>.
Patrick,


On Fri, Nov 15, 2013 at 3:14 AM, Patrick Radtke <pr...@stanford.edu>wrote:

> I wanted to start working on/with the eSCIMo project.
> I'm interested in how to use it for adding resources besides User and
> Group.
>
> The current ProviderService interface has Resource specific methods for
> Users any Groups (e.g getUser(), patchGroup()). The SCIM specification
> allows for additional resources to be defined - either within the realm of
> the spec, or by the service provider.
> In an ideal world, I would be able to add these additional resources by
> extending ServerResource and implementing a resource specific provider
> interface, and the rest of the Server implementation would be generic
> enough to "just work". Currently that is not the case, and the server
> implementation assumes User and Group resources.
>
> yeap, the current use of UserResource and UserResource is a bit archaic,
it was coded during the
early days of implementation and later I decided to move to use the generic
ServerResource all over
hence the slowly started emptying the UserResource and UserResource
classes, all that is needed is
to update the server code.


> I think it may make sense to generalize ProviderService so that
> implementation would be both Resource and Backend specific. As example,
> implementations could be like:
>  LdapUserResourceProvider - a User resource that is provide from ldap
>  XmlGroupResourceProvider - a group resource that is provided from an xml
> file
>  JpaPizzaResourceProvider - a Pizza resource that comes from a DB
>
> Then  at the RESTful server level, instead of defining resource specific
> endpoints like GroupService and UserService, a generic ResourceService
> could determine the corresponding resource specific ProvderService
> implementation based on the URL. For example, if ResourceService saw
> /Users/123 it could user the string "Users" to look up in a factory, or a
> map the correct ProviderService.
>
> What do people think? Other ideas?
>
> Can you file a JIRA report for this here
https://issues.apache.org/jira/browse/ESCIMO , include your
recommendations as well.

thank you

> thanks,
>
> Patrick
>



-- 
Kiran Ayyagari
http://keydap.com

Re: eSCIMo and generalizing resources

Posted by Kiran Ayyagari <ka...@apache.org>.
Patrick,


On Fri, Nov 15, 2013 at 3:14 AM, Patrick Radtke <pr...@stanford.edu>wrote:

> I wanted to start working on/with the eSCIMo project.
> I'm interested in how to use it for adding resources besides User and
> Group.
>
> The current ProviderService interface has Resource specific methods for
> Users any Groups (e.g getUser(), patchGroup()). The SCIM specification
> allows for additional resources to be defined - either within the realm of
> the spec, or by the service provider.
> In an ideal world, I would be able to add these additional resources by
> extending ServerResource and implementing a resource specific provider
> interface, and the rest of the Server implementation would be generic
> enough to "just work". Currently that is not the case, and the server
> implementation assumes User and Group resources.
>
> yeap, the current use of UserResource and UserResource is a bit archaic,
it was coded during the
early days of implementation and later I decided to move to use the generic
ServerResource all over
hence the slowly started emptying the UserResource and UserResource
classes, all that is needed is
to update the server code.


> I think it may make sense to generalize ProviderService so that
> implementation would be both Resource and Backend specific. As example,
> implementations could be like:
>  LdapUserResourceProvider - a User resource that is provide from ldap
>  XmlGroupResourceProvider - a group resource that is provided from an xml
> file
>  JpaPizzaResourceProvider - a Pizza resource that comes from a DB
>
> Then  at the RESTful server level, instead of defining resource specific
> endpoints like GroupService and UserService, a generic ResourceService
> could determine the corresponding resource specific ProvderService
> implementation based on the URL. For example, if ResourceService saw
> /Users/123 it could user the string "Users" to look up in a factory, or a
> map the correct ProviderService.
>
> What do people think? Other ideas?
>
> Can you file a JIRA report for this here
https://issues.apache.org/jira/browse/ESCIMO , include your
recommendations as well.

thank you

> thanks,
>
> Patrick
>



-- 
Kiran Ayyagari
http://keydap.com