3

我可以使用 ALfresco REST API 登录到 alfresco。我是通过java类来做的。也能够将响应消息设为“OK”。但是任何人都可以告诉我如何检索登录时生成的票证。

4

3 回答 3

7

要获得一张票,您通常会调用http://localhost:8080/alfresco/s/api/login- (或类似的) - GET 或 POST:

试试这个:

curl -XPOST  -H "Content-Type: application/json" -d '{"username":"admin","password":"admin"}' http://localhost:8080/alfresco/s/api/login

它返回一个 JSON 数据结构:

{
        "data":
        {
                "ticket":"TICKET_3c255a809fadbf8abddd0546cbe354c2ab6d3995"
        }
}

或者一个基本的 GET:

curl 'http://localhost:8080/alfresco/s/api/login?u=admin&pw=admin'

它返回一个包含票证的 XML 文档:

<?xml version="1.0" encoding="UTF-8"?>
<ticket>TICKET_6f997d0e561b07430c19043d7c42783d08b02489</ticket>

也就是说,如果您想要更高级别的抽象来处理身份验证、会话、超时等低级别通信问题,您可能需要查看 spring webscripts 连接器框架。https://artifacts.alfresco.com/nexus/content/repositories/public/spring-surf-parent/spring-webscripts/spring-webscripts/apidocs/org/springframework/extensions/webscripts/connector/AlfrescoConnector.html可能是很好的切入点。看看 Alfresco 分享,看看它是如何使用的。

于 2013-03-06T09:10:39.953 回答
2

如果您像这里的 java 示例中描述的公共 HttpClient 示例一样执行此操作:http://wiki.alfresco.com/wiki/Repository_RESTful_API_Reference#Login

然后可以在响应的正文中找到票证 (method.getResponseBodyAsString();),它看起来与@andreas-steffan 在他的回答中显示的完全一样。您只需要解析 json 响应。

于 2013-03-06T09:25:41.337 回答
2

下面是相同的java函数。

private static String getAlfticket() throws IOException, JSONException { 
        String ticket = ""; 
        URL url = new URL("http://hostname/alfresco/service/api/login u="+USERNAME+"&pw="+PASSWORD+"&format=json"); 
        URLConnection con = url.openConnection(); 
        InputStream in = con.getInputStream(); 
        String encoding = con.getContentEncoding(); 
        encoding = encoding == null ? "UTF-8" : encoding; 
        String json = IOUtils.toString(in, encoding); 
        JSONObject getData = new JSONObject(json); 
        System.out.println(getData.getJSONObject("data").get("ticket") 
                .toString()); 
        ticket =getData.getJSONObject("data").get("ticket").toString(); 
        return ticket; 
    }

下面是类似的链接。我也回答了问题。

Alfresco login api 给出错误请求 400

于 2014-11-25T05:37:00.590 回答