3

ALfrescoRESTAPIを使用して屋外にログインできました。私は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>

とはいえ、認証、セッション、タイムアウトなどの低レベルの通信の問題を処理する高レベルの抽象化が必要な場合に備えて、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シェアを見て、それがどのように使用されているかを詳細に確認してください。

于 2013-03-06T09:10:39.953 に答える
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; 
    }

以下は同様のリンクです。その中で私も質問に答えました。

" Bad Request 400 を与える Alfresco ログイン API "

于 2014-11-25T05:37:00.590 に答える
2

ここのJavaの例で説明されているコモンズHttpClientの例のようにやっている場合: http://wiki.alfresco.com/wiki/Repository_RESTful_API_Reference#Login

その後、チケットは応答の本文 (method.getResponseBodyAsString();) で見つけることができます。これは、@andreas-steffan が回答で示したのとまったく同じように見えます。json 応答を解析するだけです。

于 2013-03-06T09:25:41.337 に答える