Page tree
Skip to end of metadata
Go to start of metadata

You are viewing an old version of this page. View the current version.

Compare with Current View Page History

« Previous Version 2 Current »

Basic authentication方式主要是将用户的用户和密码写入到http的请求header中。具体的实现原理可以查看:https://en.wikipedia.org/wiki/Basic_access_authentication

采用Basic authentication, 用户名和密码通过请求反复发送,会缓存在Web浏览器上,相对来说并不是太安全。

REST API是由通过认证标准的Web界面,提供相同的限制保护。也就是说,如果你没有登录,你即为匿名访问JIRA。

此外,如果你登录了,但些账户在Atlassian产品中并没有相关权限在那些你还是无法查到所需要的资源(即REST API对你来说是不可用的)。


以下我们将展示相关采用Basic authentication的例子

curl -D- -u fred:fred -X GET -H "Content-Type: application/json" http://localhost:8080/rest/api/2/issue/QA-31
或者
curl -D- -X GET -H "Authorization: Basic YWRtaW46YWRtaW4=" -H "Content-Type: application/json" "http://localhost:8080/rest/api/2/issue/QA-31"

如用JAVA的方式,代码示例如下:

import com.sun.jersey.api.client.*;

public class BaseClientMain {
    public static void main(String[] args) throws Exception {
        try {
            Client client = Client.create();
            WebResource webResource = client.resource("http://localhost:8080/rest/api/2/issue/QA-31");
            ClientResponse response = webResource.accept("application/json")
                    .header("Authorization", "Basic YWRtaW4lM0FhZG1pbg==")
                    .get(ClientResponse.class);
            String msgback = response.getEntity(String.class);
            System.out.println(msgback);
            response.close();
        } catch (UniformInterfaceException e) {
            e.printStackTrace();
        } catch (ClientHandlerException e) {
            e.printStackTrace();
        }
    }
}

说明

  • header中使用的:YWRtaW4lM0FhZG1pbg==,为admin:admin字串在经过base64位编码后的值
  • admin:admin中间有一个冒号
  • Basic和YWRtaW46YWRtaW4=之间有一个空格




  • No labels