Hallo zusammen,
vorab, ich habe die Frage vor einiger Zeit bereits im IBM-Forum gestellt (http://www-10.lotus.com/ldd/lcforum.nsf/d6091795dfaa5b1185256a7a0048a2d0/c79b8c9c1a1586d885257ba40037372d?OpenDocument), aber leider keine Antwort erhalten. Die gleiche Frage wurde auch schon von jemanden bei stackoverflow gestellt (http://stackoverflow.com/questions/16610868/adding-a-member-to-an-activity-through-the-rest-api), hat dort aber auch keine Antwort bekommen.
Folgendes Problem:
Ich möchte über die API ein weiteres Mitglied zu einer bestehenden Aktivität hinzufügen. Ich habe es mit Community-Aktivitäten, mit öffentlichen Aktivitäten und mit privaten Aktivitäten versucht, bekomme aber immer einen 403er (Forbidden) zurück.
Ich teste mit dem HTTPRequester-Addon von Firefox und authentifiziere mich mit einem User der das Recht hat, dieses Mitglied hinzuzufügen. Grundsätzlich funktioniert das, ich kann so zum Beispiel problemlos Mitglieder zur Community selbst hinzufügen.
GET-Requests auf die Test-Aktivitäten funktionieren wunderbar und zeigen im "Permissions"-Knoten auch immer "add_members" mit an. Die Community-Aktivität ist außerdem als "explicit_membership_community_activity" gekennzeichnet und der User den ich hinzufügen möchte ist auch ein Mitglied der Community.
Laut API-Beschreibung zum Hinzufügen von Membern (http://www-10.lotus.com/ldd/appdevwiki.nsf/xpDocViewer.xsp?lookupName=IBM+Connections+4.5+API+Documentation#action=openDocument&res_title=Adding_an_activity_member_programmatically_ic45&content=pdcontent) mache ich eigentlich alles richtig.
Ich poste folgenden Inhalt:
<entry xmlns="http://www.w3.org/2005/Atom" xmlns:snx="http://www.ibm.com/xmlns/prod/sn/activities">
<contributor>
<name>Gustav Gutachter</name>
<snx:userid xmlns:snx="http://www.ibm.com/xmlns/prod/sn">0293E794-7EAB-EB52-C125-6ABE0025067A</snx:userid>
<email>GGutachter@example.com</email>
<snx:userState xmlns:snx="http://www.ibm.com/xmlns/prod/sn">active</snx:userState>
</contributor>
<snx:role component="http://www.ibm.com/xmlns/prod/sn/activities">member</snx:role>
</entry>
ID und Name etc. sind korrekt und kommen frisch aus dem System.
Meine Ziel-URL lautet:
https://example.com:9445/activities/service/atom2/acl?activityUuid=2cd801af-4e2f-4452-bbe0-f4bcb29e467e
Die URL ist über den Browser erreichbar und zeigt brav die bestehenden Mitglieder an.
Konkret liefert alles was ich an diese URL poste, putte oder delete einen 403er zurück. Nur ein "GET" funktioniert.
Über die UI kann ich das Mitglied hinzufügen, selbstverständlich als der gleiche User angemeldet, mit dem ich die Tests über den HttpRequester fahre.
So, nun meine Fragen:
- Mache ich etwas falsch?
- Wie/wo könnte ich für die Fehlersuche vorgehen/ansetzen?
- Bonus-Frage: Wo könnte ich notfalls noch nachfragen? Stackoverflow und das IBM-Forum haben mir bisher kein Glück gebracht.
Beste Grüße,
Mitch
Fuuuu. Das tut ja wirklich nicht. Egal wie mans angeht, es kommt ein 403er zurueck...
Und eigentlich sollte das genau so funktionieren ...
http://www-10.lotus.com/ldd/lcforum.nsf/CategoryAllThreadedweb/e8c6eb106a8b17448525795a0068f7e2?OpenDocument
IMHO schaut das nach einem Authentifizierungsproblem aus. Dabei schick ich brav credentials mit ... ???
Ich hab in der SystemOut.log am Server den korrespondierenden Eintrag gefunden, der mich aber auch nicht schlauer macht ...
[8/11/13 19:53:09:417 CDT] 0000009a LotusConnecti E An unexpected exception was caught by IBM Connections. The error page generated for this exception will display the identifier below.
[8/11/13 19:53:09:417 CDT] 0000009a LotusConnecti E Identifier: LC73B5ECCCD16D4110AFFF8070183806A6
[8/11/13 19:53:09:417 CDT] 0000009a LotusConnecti E User-Agent: Abdera/v1.0-SNAPSHOT
[8/11/13 19:53:09:417 CDT] 0000009a LotusConnecti E Request URI: POST https://example.com/activities/service/atom2/acl
[8/11/13 19:53:09:417 CDT] 0000009a LotusConnecti E Remote user: XXXXXXX
[8/11/13 19:53:09:417 CDT] 0000009a LotusConnecti E Locale: en_US
[8/11/13 19:53:09:417 CDT] 0000009a LotusConnecti E Session ID: _DZyj-H3m54rn8JR1Neu98M
[8/11/13 19:53:09:417 CDT] 0000009a LotusConnecti E Request denied
com.ibm.openactivities.exception.OpenActivitiesException: Request denied
at com.ibm.openactivities.atom2.actions.AclAction.post(AclAction.java:208)
at com.ibm.openactivities.atom2.actions.BaseAtomAction.execute(BaseAtomAction.java:142)
at com.ibm.openactivities.web.coreui.actions.superclass.OaSafeActionR2.execute(OaSafeActionR2.java:32)
...
at com.ibm.ws.http.channel.inbound.impl.HttpInboundLink.handleNewRequest(HttpInboundLink.java:515)
at com.ibm.ws.http.channel.inbound.impl.HttpInboundLink.processRequest(HttpInboundLink.java:306)
at com.ibm.ws.http.channel.inbound.impl.HttpICLReadCallback.complete(HttpICLReadCallback.java:83)
at com.ibm.ws.ssl.channel.impl.SSLReadServiceContext$SSLReadCompletedCallback.complete(SSLReadServiceContext.java:1784)
at com.ibm.ws.tcp.channel.impl.AioReadCompletionListener.futureCompleted(AioReadCompletionListener.java:165)
at com.ibm.io.async.AbstractAsyncFuture.invokeCallback(AbstractAsyncFuture.java:217)
at com.ibm.io.async.AsyncChannelFuture.fireCompletionActions(AsyncChannelFuture.java:161)
at com.ibm.io.async.AsyncFuture.completed(AsyncFuture.java:138)
at com.ibm.io.async.ResultHandler.complete(ResultHandler.java:204)
at com.ibm.io.async.ResultHandler.runEventProcessingLoop(ResultHandler.java:775)
at com.ibm.io.async.ResultHandler$2.run(ResultHandler.java:905)
at com.ibm.ws.util.ThreadPool$Worker.run(ThreadPool.java:1646)
Wenn ich das mit curl probiere, bekomm ich folgenden Response vom Server:
...
* upload completely sent off: 521out of 521 bytes
< HTTP/1.1 403 Forbidden
< Date: Mon, 12 Aug 2013 01:09:13 GMT
< Server: IBM_HTTP_Server
< X-LConn-Auth: false
< X-UA-Compatible: IE=EmulateIE7
< Expires: Thu, 01 Jan 1970 00:00:00 GMT
< Cache-Control: no-cache,no-store,max-age=-1,must-revalidate
< Pragma: no-cache
< Set-Cookie: LtpaToken=...
< Set-Cookie: LtpaToken2=....
< Vary: User-Agent,Accept-Encoding
< Transfer-Encoding: chunked
< Content-Type: application/xml;charset=UTF-8
< Content-Language: en-US
<
<?xml version="1.0" encoding="utf-8"?>
<error xmlns="http://www.ibm.com/xmlns/prod/sn">
<code></code>
<message>Identifier: LCFD7A9B7C73C8427781309A230F0167A7
Request denied</message>
<displaymessage></displaymessage>
<errortype></errortype>
<trace>java.lang.Exception: Identifier: LCFD7A9B7C73C8427781309A230F0167A7
Request denied</trace>
</error>
Seeehr seltsam.