ALfrescoRESTAPIを使用して屋外にログインできました。私はJavaクラスを介してそれを行っています。また、「OK」として応答メッセージを取得することもできます。ただし、ログイン中に生成されたチケットを取得する方法を教えてください。
3 に答える
チケットを入手するには、通常、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>
とはいえ、認証、セッション、タイムアウトなどの低レベルの通信の問題を処理する高レベルの抽象化が必要な場合に備えて、SpringWebscriptsコネクタフレームワークを確認することをお勧めします。https://artifacts.alfresco.com/nexus/content/repositories/public/spring-surf-parent/spring-webscripts/spring-webscripts/apidocs/org/springframework/extensions/webscripts/connector/AlfrescoConnector.html _良いエントリポイント。Alfrescoシェアを見て、それがどのように使用されているかを詳細に確認してください。
以下は同じための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;
}
以下は同様のリンクです。その中で私も質問に答えました。
ここのJavaの例で説明されているコモンズHttpClientの例のようにやっている場合: http://wiki.alfresco.com/wiki/Repository_RESTful_API_Reference#Login、
その後、チケットは応答の本文 (method.getResponseBodyAsString();) で見つけることができます。これは、@andreas-steffan が回答で示したのとまったく同じように見えます。json 応答を解析するだけです。