Autor Thema: Connections-API: Mitglied zu Aktivität hinzufügen liefert 403/Forbidden zurück  (Gelesen 3813 mal)

Mitch

  • Gast
Hallo zusammen,

vorab, ich habe die Frage vor einiger Zeit bereits im IBM-Forum gestellt, aber leider keine Antwort erhalten. Die gleiche Frage wurde auch schon von jemanden bei stackoverflow gestellt, 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 mache ich eigentlich alles richtig.

Ich poste folgenden Inhalt:

Code
<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:
Code
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

Offline stoeps

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 831
  • Geschlecht: Männlich
  • It's your life, so live it your way.
    • Stoeps.de
Mikkel Heisterberg macht da so einiges. Schau dir mal seine Präsentation von der Social Connections V (Zürich) an: http://www.slideshare.net/soccnx/mikkel-heisterberg-an-introduction-to-working-with-the-activity-stream vielleicht ist da ein Tipp dabei. Da werden auch weiterführende Links genannt.

Ich hab die Session zwar gesehen, aber dieser DevTalk ist mir zu hoch. :)
--
Grüsse
Christoph

Offline m3

  • Freund des Hauses!
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 8.102
  • Geschlecht: Männlich
  • Non ex transverso sed deorsum!
    • leyrers online pamphlet
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 ...
Code
[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:
Code
...
* 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.
HTH
m³ aka. Martin -- leyrers online pamphlet | LEYON - All things Lotus (IBM Collaborations Solutions)

All programs evolve until they can send email.
Except Microsoft Exchange.
    - Memorable Quotes from Alt.Sysadmin.Recovery

"Lotus Notes ist wie ein Badezimmer, geht ohne Kacheln, aber nicht so gut." -- Peter Klett

"If there isn't at least a handful of solutions for any given problem, it isn't IBM"™ - @notessensai

Mitch

  • Gast
@Christoph: Danke für den Link. Allerdings geht es da um andere Activities. Connections hat das etwas ungünstig benannt, es gibt einmal Activities im Sinne von "Neuigkeiten-Stream" und einmal im Sinne von "Aufgaben". Bei mir geht es um letzteres.

@Martin: Vielen Dank für's Ausprobieren und Reproduzieren. Ich gebe auch brav Credentials mit und kann auch an anderen Stellen Mitglieder hinzufügen. Gehe ja auch so vor wie im von dir verlinkten Beitrag. Wobei die ja ein Redirect-Problem haben. Schade, dass da keine weitere Antwort vom Ersteller mehr kam. Wenn der seinen 302er gelöst hat, ist er dann bestimmt auch auf den 403er gestoßen. :)

Scheint mir dann ja wirklich ein Bug zu sein. Gemein.

Gruß,

Mitch

Offline m3

  • Freund des Hauses!
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 8.102
  • Geschlecht: Männlich
  • Non ex transverso sed deorsum!
    • leyrers online pamphlet
Mitch, ich wuerde mal an Deiner Stelle einen PMR aufmachen (schick mir die Nummer).

Ich bin ja derzeit auf Urlaub, sonst wuerde ich das machen.
HTH
m³ aka. Martin -- leyrers online pamphlet | LEYON - All things Lotus (IBM Collaborations Solutions)

All programs evolve until they can send email.
Except Microsoft Exchange.
    - Memorable Quotes from Alt.Sysadmin.Recovery

"Lotus Notes ist wie ein Badezimmer, geht ohne Kacheln, aber nicht so gut." -- Peter Klett

"If there isn't at least a handful of solutions for any given problem, it isn't IBM"™ - @notessensai

Mitch

  • Gast
Hey Martin,

habe ich ehrlich gesagt noch nie gemacht. Wollte mich jetzt da im Support-Portal dann mal freischalten lassen, allerdings kenne ich unsere IBM Kundennummer nicht. Chef ist im Urlaub, ich hau den mal an, mal gucken ob er Mails liest. Weiß ja auch gar nicht ob/in welchem Rahmen wir den IBM Support nutzen dürfen.

Wenn ich eine habe, schicke ich dir die Nummer zu.

Gruß und viel Spaß noch im Urlaub,

Mitch

Offline m3

  • Freund des Hauses!
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 8.102
  • Geschlecht: Männlich
  • Non ex transverso sed deorsum!
    • leyrers online pamphlet
Wenn Ihr Support fuer Notes/Domino bezahlt (was ueblicherweise der Fall ist), darf Euer Unternehmen beliebig viele PMRs aufmachen - sowohl fuer Produktf"fehler" als auch fuer das, was Du jetzt da hast.
HTH
m³ aka. Martin -- leyrers online pamphlet | LEYON - All things Lotus (IBM Collaborations Solutions)

All programs evolve until they can send email.
Except Microsoft Exchange.
    - Memorable Quotes from Alt.Sysadmin.Recovery

"Lotus Notes ist wie ein Badezimmer, geht ohne Kacheln, aber nicht so gut." -- Peter Klett

"If there isn't at least a handful of solutions for any given problem, it isn't IBM"™ - @notessensai

 

Impressum Atnotes.de  -  Powered by Syslords Solutions  -  Datenschutz