Internet2 is investigating a security incident involving a compromise to a confluence server that affected https://spaces.at.internet2.edu on April 10, 2019, which was successfully mitigated on April 12, 2019. If you did not receive an email from us, it’s unlikely that any of the content you submitted to the Internet2 Spaces Wiki needs to be re-entered. We apologize for any inconvenience this may have caused. Should you have any questions or require further assistance, please email collaboration-support@internet2.edu.
Skip to end of metadata
Go to start of metadata

Grouper Web Services

  • Can I run Grouper web services against any version of Grouper?

No, you should use the version of Grouper bundled in the web services.  This makes it a little complicated if you have a UI / GSH / etc running against your Grouper DB.  You will need to keep them in sync.

  • Why are there three flavors of web services (SOAP, XML-HTTP, REST-Lite)?

SOAP is supported since many schools required it.  REST-Lite is supported because many schools required it.  XML-HTTP is supported because Axis2 gives it for free when building a SOAP web service.  This way the same SOAP interface can be accessed by clients who only want to talk HTTP and XML and not SOAP.

  • Why is the rampart .aar file named GrouperServiceWssec.aar, but the URL is still /services/GrouperService?

The URL for ramprt or not is the same.  Inside the services.xml in the .aar files, it configures the app name.  grouper-ws will not work if you change this (unless to do other build activities also)

  • Why is there a "simple" operation for every non simple operation in SOAP and XML-HTTP?

The non-simple operations are batchable if the client wants to do one operation multiple times with one request.  The simple operations are for if the client only needs to do one thing (e.g. assign a member to a group and not assign multiple members to a group).  Also, there is a valuable side effect that for the XML-HTTP, if the operation only has scaler input params (and not complex types or arrays), that the input does not need XML, it can be in the query string for GET or in the http form param pairs in the body for POST.

It is confusing that there are so many different ways to call grouper via web service.  The documentation will be improved to make it easier to find the best strategy.

  • Why element named "return" (by axis)

This is an unfortunate "feature" by axis, the default element is named "return" which is a keyword in many programming languages, so if the language automatically converts the xml to an object graph, then it will be broken.  Chris will followup with Axis to see if there is a fix for this

  • Why returning error codes and messages and not just use SOAP faults?

For two of three of the flavors of web services SOAP faults are not an option since they are not SOAP.  Also, for SOAP batched, the status of each line item needs to be returned for the client to process, and a SOAP fault would preclude that.  Also, the fewer SOAP specific features that are used, the more widespread the compatibility will be.  All three flavors of web service use the same underlying logic, so the more consistent the better.

  • Is there a way to find out about the health of my Grouper web services?

Yes, use the Grouper Diagnostics

  • Can we add a service for subject search?

Yes, see  subject search

  • How does always available web service work?

Grouper WS can be setup with multiple instances. If you have database replication (even readonly), then you can setup Grouper WS application servers in multiple data centers, and you can have the Grouper Failover Client among the nodes if there are errors or timeouts.

  • No labels