我已经为IBM Connections活动流配置了一个嵌入式体验小工具。似乎OAuth舞蹈永远不会成功,只是让我回到OAuth舞蹈的开始(提示授权)。

我看到这样的错误:

[2/25/14 7:17:45:197 EST] 000000c2 BasicOAuth2Me 3   JSONException parsing response
                                 org.apache.commons.json.JSONException: Error occurred during input read.
Caused by: java.io.IOException: Unexpected character '<' on line 1, column 1
    at org.apache.commons.json.internal.Tokenizer.next(Tokenizer.java:185)
    at org.apache.commons.json.internal.Parser.parse(Parser.java:114)
    at org.apache.commons.json.internal.Parser.parse(Parser.java:85)
    at org.apache.commons.json.JSONObject.<init>(JSONObject.java:128)
    at org.json.JSONObject.<init>(JSONObject.java:41)

...其中 五月 建议从返回XML 有些东西 而不是JSON。

我也看到了 POST /connections/opensocial/gadgets/makeRequest HTTP/1.1 回来了:

HTTP/1.1 200 OK
Date: Tue, 25 Feb 2014 12:54:12 GMT
Server: IBM_HTTP_Server
X-Powered-By: Servlet/3.0
X-LConn-Auth: true
X-UA-Compatible: IE=EmulateIE7
Cache-Control: no-cache
Expires: Tue, 25 Feb 2014 12:54:12 GMT
Pragma: no-cache
Content-Disposition: attachment;filename=p.txt
Content-Length: 1029
Content-Type: application/json;charset=UTF-8
Content-Language: en-US

throw 1; < 'invalid javascript' > {"http://appfusions.demos.ibm.com:2990/jira/rest/api/2/issue/DEMO-12/transitions?expand=transitions.fields":{"rc":200,"body":"","oauthApprovalUrl":"http://appfusions.demos.ibm.com:2990/jira/plugins/servlet/af/oauth/authorize?client_id=8821f0cfd9264c4ed08b00861016886c&realGadgetUri=http%3A%2F%2Fappfusions.demos.ibm.com%3A2990%2Fjira%2Frest%2Fgadgets%2F1.0%2Fg%2Fcom.appfusions.jira.connections.jira-immersive-for-connections%3Aconnections-gadgets%2Fgadgets%2Fjira-ee.xml&redirect_uri=https%3A%2F%2Fconnectionsww.demos.ibm.com%2Fconnections%2Fopensocial%2Fgadgets%2Foauth2callback&response_type=code&state=WIn_8DLhmOeRc8aIYomi0j2XGIAAd7Ke3j2E4y9SbXpD6aZcmU_sKbJpOh4CEuJKr1NLEEsm8xAB-gzYz9laubsztcW-I-YC8gfq67kGbW2wxYhFh6PCaqEZgAhzD7sfRGsj_bBLykeVpSCRZCI7h8pbO9UbtiBfKDKUDwyqm2t35GWi0DV3KcWZlnKso97-z8Xlzj5AysY5ifWux0nJwHCLJ70Fq4wV738SQ5ZDExqSQkaiGY-w7NlJRHRCVP0wJzIEWP2fsSkNMbN8ui4ULLD1kR0w4T_VlBYS1QXbjvXJ6XUwEc7xhusC2ixvDzhBjjLOmbrwqOdMQnFRrxilX--Q9mI","DataHash":"qgeopmcf02p09qc016cepu22fo"}}

这是一个完整的 追踪。日志 --我目前正在记录跟踪这些包:

*=info: 
com.ibm.social.pim.resource.*=all: 
com.ibm.lconn.homepage.services.widget.*=all: 
com.ibm.lconn.news.*=all: 
com.ibm.lconn.events.*=all: 
com.ibm.lotus.search.engine.*=all: 
com.ibm.lotus.search.index.*=all: 
com.ibm.lconn.mailin.*=all: 
com.ibm.lotus.connections.core.notify.*=all: 
com.ibm.lconn.scheduler.*=all:
org.apache.shindig.*=all

我很想知道一个调试的好方法 JSONException 以及更多关于 makeRequest 帖子。

任何关于如何进一步调试的线索都非常感激。

更新资料

我更新了 追踪。日志 在Paul的日志记录建议之后,我现在在存储OAuth信息时看到异常:

[2/27/14 7:16:17:062 EST] 0000014e RetryConnecti 3   Exception caught during attempt
                                 org.springframework.dao.DataIntegrityViolationException: SqlMapClient operation; SQL [];   
--- The error occurred in resources/news/oauth/OAuth2TokenSQL.xml.  
--- The error occurred while applying a parameter map.  
--- Check the insert-OAUTH2_TOKEN-InlineParameterMap.  
--- Check the statement (update failed).  
--- Cause: com.ibm.db2.jcc.am.SqlIntegrityConstraintViolationException: Assignment of a NULL value to a NOT NULL column "TBSPACEID=5, TABLEID=14, COLNO=4" is not allowed.. SQLCODE=-407, SQLSTATE=23502, DRIVER=4.13.80; nested exception is com.ibatis.common.jdbc.exception.NestedSQLException:   
--- The error occurred in resources/news/oauth/OAuth2TokenSQL.xml.  
--- The error occurred while applying a parameter map.  
--- Check the insert-OAUTH2_TOKEN-InlineParameterMap.  
--- Check the statement (update failed).  
--- Cause: com.ibm.db2.jcc.am.SqlIntegrityConstraintViolationException: Assignment of a NULL value to a NOT NULL column "TBSPACEID=5, TABLEID=14, COLNO=4" is not allowed.. SQLCODE=-407, SQLSTATE=23502, DRIVER=4.13.80
    at org.springframework.jdbc.support.SQLErrorCodeSQLExceptionTranslator.doTranslate(SQLErrorCodeSQLExceptionTranslator.java:228)
    at org.springframework.jdbc.support.AbstractFallbackSQLExceptionTranslator.translate(AbstractFallbackSQLExceptionTranslator.java:72)
    at org.springframework.orm.ibatis.SqlMapClientTemplate.execute(SqlMapClientTemplate.java:212)
    at org.springframework.orm.ibatis.SqlMapClientTemplate.insert(SqlMapClientTemplate.java:397)
    at com.ibm.lconn.news.data.dao.impl.ibatis.CrudDao.insert(CrudDao.java:394)
    at com.ibm.lconn.news.data.dao.impl.ibatis.oauth.OAuth2TokenDao.insert(OAuth2TokenDao.java:61)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:60)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:37)
    at java.lang.reflect.Method.invoke(Method.java:611)

OAuth提供程序似乎从我可以看到的正确提供OAuth令牌-也在 trace.log

有帮助吗?

解决方案

我已经安装了 tcpflow 在IBM Connections机器上。跟踪使用IBM Connections计算机上的服务器端OAuth流。..

root$ tcpflow -p -c -i eth0 port 2990 | grep -oE '(GET|POST|HEAD) .* HTTP/1.[01]|Host: .*' > cnx-outgoing-2990.log

当IBM Connections发布到access_token URL时,我在OAuth提供程序上发现了404错误-将专注于此:)

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top