Skip to Content.
Sympa Menu

grouper-users - Re: [grouper-users] Attempting to add an "external subject" with Grouper REST API

Subject: Grouper Users - Open Discussion List

List archive

Re: [grouper-users] Attempting to add an "external subject" with Grouper REST API


Chronological Thread 
  • From: Keith Hazelton <>
  • To:
  • Subject: Re: [grouper-users] Attempting to add an "external subject" with Grouper REST API
  • Date: Fri, 26 Oct 2012 13:07:22 -0500
  • Priority: normal

Should have included the HTTP response:----------
{"WsRestResultProblem":{"responseMetadata":{"millis":"2","serverVersion":"2.1.2"},"resultMetadata":{"resultCode":"EXCEPTION","resultMessage":"Problem
with request: uri:
/grouper-ws/servicesRest/v2_1_000/groups/458930f0-0716-11e2-892e-0800200c9a66%3A560d5c90-c23e-4e7c-903b-eab046b38cbc%3Axyz-1/members,
method: PUT, decoded url strings: 0: 'v2_1_000', 1: 'groups', 2:
'458930f0-0716-11e2-892e-0800200c9a66:560d5c90-c23e-4e7c-903b-eab046b38cbc:xyz-1',
3: 'members',\njava.lang.RuntimeException: Body of request must contain an
instance of WsRestAddMemberRequest in xml, xhtml, json, etc\n\tat
edu.internet2.middleware.grouper.util.GrouperUtil.assertion(GrouperUtil.java:2341)\n\tat

edu.internet2.middleware.grouper.ws.rest.GrouperServiceRest.addMember(GrouperServiceRest.java:296)\n\tat

edu.internet2.middleware.grouper.ws.rest.method.GrouperWsRestPutGroup$1.service(GrouperWsRestPutGroup.java:63)\n\tat

edu.internet2.middleware.grouper.ws.rest.method.GrouperWsRestPut$1.service(GrouperWsRestPut.java:110)\n\tat

edu.internet2.middleware.grouper.ws.rest.method.GrouperRestHttpMethod$3.service(GrouperRestHttpMethod.java:104)\n\tat

edu.internet2.middleware.grouper.ws.rest.GrouperRestServlet.service(GrouperRestServlet.java:199)\n\tat
javax.servlet.http.HttpServlet.service(HttpServlet.java:717)\n\tat
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)\n\tat

org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)\n\tat

edu.internet2.middleware.grouper.ws.GrouperServiceJ2ee.doFilter(GrouperServiceJ2ee.java:653)\n\tat

org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)\n\tat

org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)\n\tat

org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)\n\tat

org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)\n\tat

org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:563)\n\tat

org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)\n\tat

org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)\n\tat

org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)\n\tat

org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:293)\n\tat

org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:859)\n\tat

org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:602)\n\tat

org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:489)\n\tat
java.lang.Thread.run(Thread.java:679)","success":"F"}}}
----------


On 10/26/12, Keith Hazelton wrote:
>
>
>
> Thanks, but I still don't have something quite right. Here's a screen shot
> from Poster --Keith
>
>
>
> On Oct 26, 2012, at 11:58:49, Chris Hyzer wrote:
>
>
> > There isn’t comprehensive WS support for external subjects in Grouper.
> > This part is mainly so that Groupers can sync to other Groupers.
> >
> > So make a group of external users somewhere, send a WS call to add a
> > member to the group by EPPN or whatever, and set that flag to T, and it
> > will add the external user. They could still login to the UI to register
> > their personal information if you need it (that part isn’t part of the
> > WS).
> >
> > See the samples for addMember:
> >
> > e.g.
> >
> > POST /grouper-ws/servicesRest/v2_1_001/groups/aStem%3AaGroup/members
> > HTTP/1.1
> >
> > wsLiteObjectType=WsRestAddMemberLiteRequest&subjectId=external_user_id_here&groupName=aStem%3AaGroup&addExternalSubjectIfNotFound=T
> >
> >
> > http://anonsvn.internet2.edu/viewvc/viewvc.py/i2mi/trunk/grouper-ws/grouper-ws/doc/samples/addMember/WsSampleAddMemberRestLite2_withInput_http_json.txt?revision=8390&view=co
> >
> >
> > Thanks,
> > Chris
> >
> > -----Original Message-----
> > From:
> > (javascript:main.compose()
> >
> > [mailto:]
> > On Behalf Of Keith Hazelton
> > Sent: Friday, October 26, 2012 12:41 PM
> > To:
> > (javascript:main.compose()
> > Subject: [grouper-users] Attempting to add an "external subject" with
> > Grouper REST API
> >
> > I want to put an external subject into a Grouper group using the RESTful
> > web services. The subject is identified by a Bamboo Person ID, which is
> > just a value like
> > urn:uuid:e700afeb-daee-4d49-99ed-1753127e8985
> >
> > The Grouper WS documentation on Add Member
> > (https://spaces.internet2.edu/display/Grouper/Add+Member) has the
> > following under "Features"
> >
> > "You can specify addExternalSubjectIfNotFound to T or F, if this is a
> > search by id or identifier, with no source, or the external source, and
> > the subject is not found, then add an external subject (if the user is
> > allowed to do this)"
> >
> > I'm using Firefox Poster for a proof of concept, and wondering what to
> > put in the request body to set addExternalSubjectIfNotFound to "T".
> >
> > Advice welcome, --Keith
> >
> > _________________
> > I made a WAG, tried the following and got errors:
> > ----------
> > url:
> > http://arche.metazome.info:8480/grouper-ws/servicesRest/v2_1_000/groups
> > content type: text/xml
> > POST
> > content:
> > <WsRestAddMemberLiteRequest>
> > <groupName>458930f0-0716-11e2-892e-0800200c9a66:560d5c90-c23e-4e7c-903b-eab046b38cbc:xyz-1</groupName>
> > <subjectId>urn:uuid:b386e4fd-38e6-4915-8c11-c9dc00963f3e</subjectId>
> > <addExternalSubjectifNotFound>T</addExternalSubjectIfNotFound>
> > <actAsSubjectId>GrouperSystem</actAsSubjectId>
> > </WsRestAddMemberLiteRequest>
> > ----------
> >
> > If I omit the line
> > <addExternalSubjectifNotFound>T</addExternalSubjectIfNotFound>T</addExternalSubjectIfNotFound>
> > I get the expected "subject not found" error, since this subject is not
> > available via any configured subject adapter
> >
> > With that line in the request, I get this 500 error:
> > -----------
> > <WsRestResultProblem><resultMetadata><resultCode>EXCEPTION</resultCode><resultMessage>Problem
> > with request: uri: /grouper-ws/servicesRest/v2_1_000/groups, method:
> > POST, decoded url strings: 0: &apos;v2_1_000&apos;, 1: &apos;groups&apos;,
> > com.thoughtworks.xstream.converters.ConversionException:
> > addExternalSubjectifNotFound : addExternalSubjectifNotFound :
> > addExternalSubjectifNotFound : addExternalSubjectifNotFound
> > ---- Debugging information ----
> > message : addExternalSubjectifNotFound : addExternalSubjectifNotFound
> > cause-exception :
> > com.thoughtworks.xstream.mapper.CannotResolveClassException
> > cause-message : addExternalSubjectifNotFound :
> > addExternalSubjectifNotFound
> > class :
> > edu.internet2.middleware.grouper.ws.rest.member.WsRestAddMemberLiteRequest
> > required-type :
> > edu.internet2.middleware.grouper.ws.rest.member.WsRestAddMemberLiteRequest
> > line number : 4
> > -------------------------------
> > at
> > com.thoughtworks.xstream.core.TreeUnmarshaller.convert(TreeUnmarshaller.java:88)
> > at
> > com.thoughtworks.xstream.core.TreeUnmarshaller.convertAnother(TreeUnmarshaller.java:75)
> > at
> > com.thoughtworks.xstream.core.TreeUnmarshaller.convertAnother(TreeUnmarshaller.java:59)
> > at
> > com.thoughtworks.xstream.core.TreeUnmarshaller.start(TreeUnmarshaller.java:142)
> > at
> > com.thoughtworks.xstream.core.AbstractTreeMarshallingStrategy.unmarshal(AbstractTreeMarshallingStrategy.java:33)
> > at com.thoughtworks.xstream.XStream.unmarshal(XStream.java:931)
> > at com.thoughtworks.xstream.XStream.unmarshal(XStream.java:917)
> > at com.thoughtworks.xstream.XStream.fromXML(XStream.java:861)
> > at com.thoughtworks.xstream.XStream.fromXML(XStream.java:853)
> > at
> > edu.internet2.middleware.grouper.ws.rest.contentType.WsRestRequestContentType$3.parseString(WsRestRequestContentType.java:159)
> > at
> > edu.internet2.middleware.grouper.ws.rest.GrouperRestServlet.service(GrouperRestServlet.java:183)
> > at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
> > at
> > org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
> > at
> > org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
> > at
> > edu.internet2.middleware.grouper.ws.GrouperServiceJ2ee.doFilter(GrouperServiceJ2ee.java:653)
> > at
> > org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
> > at
> > org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
> > at
> > org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)
> > at
> > org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
> > at
> > org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:563)
> > at
> > org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)
> > at
> > org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
> > at
> > org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
> > at
> > org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:293)
> > at
> > org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:859)
> > at
> > org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:602)
> > at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:489)
> > at java.lang.Thread.run(Thread.java:679)
> > Caused by: com.thoughtworks.xstream.mapper.CannotResolveClassException:
> > addExternalSubjectifNotFound : addExternalSubjectifNotFound
> > at
> > com.thoughtworks.xstream.mapper.DefaultMapper.realClass(DefaultMapper.java:62)
> > at
> > com.thoughtworks.xstream.mapper.MapperWrapper.realClass(MapperWrapper.java:38)
> > at
> > com.thoughtworks.xstream.mapper.DynamicProxyMapper.realClass(DynamicProxyMapper.java:71)
> > at
> > com.thoughtworks.xstream.mapper.MapperWrapper.realClass(MapperWrapper.java:38)
> > at
> > com.thoughtworks.xstream.mapper.ClassAliasingMapper.realClass(ClassAliasingMapper.java:86)
> > at
> > com.thoughtworks.xstream.mapper.MapperWrapper.realClass(MapperWrapper.java:38)
> > at
> > com.thoughtworks.xstream.mapper.MapperWrapper.realClass(MapperWrapper.java:38)
> > at
> > com.thoughtworks.xstream.mapper.MapperWrapper.realClass(MapperWrapper.java:38)
> > at
> > com.thoughtworks.xstream.mapper.MapperWrapper.realClass(MapperWrapper.java:38)
> > at
> > com.thoughtworks.xstream.mapper.MapperWrapper.realClass(MapperWrapper.java:38)
> > at
> > com.thoughtworks.xstream.mapper.ArrayMapper.realClass(ArrayMapper.java:87)
> > at
> > com.thoughtworks.xstream.mapper.MapperWrapper.realClass(MapperWrapper.java:38)
> > at
> > com.thoughtworks.xstream.mapper.MapperWrapper.realClass(MapperWrapper.java:38)
> > at
> > com.thoughtworks.xstream.mapper.MapperWrapper.realClass(MapperWrapper.java:38)
> > at
> > com.thoughtworks.xstream.mapper.MapperWrapper.realClass(MapperWrapper.java:38)
> > at
> > com.thoughtworks.xstream.mapper.MapperWrapper.realClass(MapperWrapper.java:38)
> > at
> > com.thoughtworks.xstream.mapper.MapperWrapper.realClass(MapperWrapper.java:38)
> > at
> > com.thoughtworks.xstream.mapper.CachingMapper.realClass(CachingMapper.java:52)
> > at
> > com.thoughtworks.xstream.converters.reflection.AbstractReflectionConverter.determineType(AbstractReflectionConverter.java:318)
> > at
> > com.thoughtworks.xstream.converters.reflection.AbstractReflectionConverter.doUnmarshal(AbstractReflectionConverter.java:196)
> > at
> > com.thoughtworks.xstream.converters.reflection.AbstractReflectionConverter.unmarshal(AbstractReflectionConverter.java:150)
> > at
> > com.thoughtworks.xstream.core.TreeUnmarshaller.convert(TreeUnmarshaller.java:81)
> > ... 27 more
> > </resultMessage><success>F</success></resultMetadata><responseMetadata><resultWarnings></resultWarnings><millis>5</millis><serverVersion>2.1.2</serverVersion></responseMetadata></WsRestResultProblem>
> > ----------
> >
> >
> >
> >
> >
begin:vcard
n:HAZELTON;KEITH;;;
fn:KEITH D HAZELTON
tel;work:608 262-0771
org:University of Wisconsin-Madison;DoIT
adr:;;1210 W. Dayton St.;Madison;WI;53706;US
email;work;internet:
title:Sr. IT Architect
version:2.1
end:vcard



Archive powered by MHonArc 2.6.16.

Top of Page