我可以使用ALfresco REST API登录alfresco。我是通过java类做的。 我也能够收到回复消息,确认'。但是,任何人都可以告诉我如何检索登录时生成的票证。
答案 0 :(得分: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的分享,看看它是如何被详细使用的。
答案 1 :(得分:2)
如果您正在执行此操作,例如此处使用java示例中描述的公共HttpClient:http://wiki.alfresco.com/wiki/Repository_RESTful_API_Reference#Login,
然后可以在响应的主体中找到票证(method.getResponseBodyAsString();),它看起来与@andreas-steffan在他的答案中显示的完全相同。你只需解析json响应。
答案 2 :(得分: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;
}
下面是类似的链接。我也回答了问题。