Skip to content

Commit 65e0da8

Browse files
committed
Added login() method with an ignoreCertificateErrors parameter (#94).
1 parent 88ad425 commit 65e0da8

File tree

1 file changed

+47
-4
lines changed

1 file changed

+47
-4
lines changed

src/main/java/org/gitlab4j/api/GitLabApi.java

Lines changed: 47 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -62,9 +62,7 @@ public String getApiNamespace() {
6262
* @throws GitLabApiException GitLabApiException if any exception occurs during execution
6363
*/
6464
public static GitLabApi login(ApiVersion apiVersion, String url, String username, String password) throws GitLabApiException {
65-
SessionApi sessionApi = new SessionApi(new GitLabApi(apiVersion, url, (String)null));
66-
Session session = sessionApi.login(username, null, password);
67-
return (new GitLabApi(apiVersion, url, session));
65+
return (login(apiVersion, url, username, password, false));
6866
}
6967

7068
/**
@@ -78,7 +76,52 @@ public static GitLabApi login(ApiVersion apiVersion, String url, String username
7876
* @throws GitLabApiException GitLabApiException if any exception occurs during execution
7977
*/
8078
public static GitLabApi login(String url, String username, String password) throws GitLabApiException {
81-
return (login(ApiVersion.V4, url, username, password));
79+
return (login(ApiVersion.V4, url, username, password, false));
80+
}
81+
82+
/**
83+
* Logs into GitLab using provided {@code username} and {@code password}, and creates a new {@code GitLabApi} instance
84+
* using returned private token and the specified GitLab API version.
85+
*
86+
* @param apiVersion the ApiVersion specifying which version of the API to use
87+
* @param url GitLab URL
88+
* @param username user name for which private token should be obtained
89+
* @param password password for a given {@code username}
90+
* @param ignoreCertificateErrors if true will set up the Jersey system ignore SSL certificate errors
91+
* @return new {@code GitLabApi} instance configured for a user-specific token
92+
* @throws GitLabApiException GitLabApiException if any exception occurs during execution
93+
*/
94+
public static GitLabApi login(ApiVersion apiVersion, String url, String username, String password, boolean ignoreCertificateErrors) throws GitLabApiException {
95+
96+
GitLabApi gitLabApi = new GitLabApi(apiVersion, url, (String)null);
97+
if (ignoreCertificateErrors) {
98+
gitLabApi.setIgnoreCertificateErrors(true);
99+
}
100+
101+
SessionApi sessionApi = gitLabApi.getSessionApi();
102+
Session session = sessionApi.login(username, null, password);
103+
gitLabApi = new GitLabApi(apiVersion, url, session);
104+
105+
if (ignoreCertificateErrors) {
106+
gitLabApi.setIgnoreCertificateErrors(true);
107+
}
108+
109+
return (gitLabApi);
110+
}
111+
112+
/**
113+
* Logs into GitLab using provided {@code username} and {@code password}, and creates a new {@code GitLabApi} instance
114+
* using returned private token using GitLab API version 4.
115+
*
116+
* @param url GitLab URL
117+
* @param username user name for which private token should be obtained
118+
* @param password password for a given {@code username}
119+
* @param ignoreCertificateErrors if true will set up the Jersey system ignore SSL certificate errors
120+
* @return new {@code GitLabApi} instance configured for a user-specific token
121+
* @throws GitLabApiException GitLabApiException if any exception occurs during execution
122+
*/
123+
public static GitLabApi login(String url, String username, String password, boolean ignoreCertificateErrors) throws GitLabApiException {
124+
return (login(ApiVersion.V4, url, username, password, ignoreCertificateErrors));
82125
}
83126

84127
/**

0 commit comments

Comments
 (0)