Skip to content
GitLab
Projects
Groups
Snippets
/
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Sign in / Register
Toggle navigation
Menu
Open sidebar
佳 邓
Gitlab4j Api
Commits
318b3611
Commit
318b3611
authored
May 01, 2019
by
Greg Messner
Browse files
Fixed AccessTokenUtils.revokePersonalAccessToken() (#336).
parent
91fd03a7
Changes
2
Hide whitespace changes
Inline
Side-by-side
src/main/java/org/gitlab4j/api/utils/AccessTokenUtils.java
View file @
318b3611
...
@@ -36,7 +36,8 @@ public final class AccessTokenUtils {
...
@@ -36,7 +36,8 @@ public final class AccessTokenUtils {
protected
static
final
String
PERSONAL_ACCESS_TOKEN_REGEX
=
"name=\\\"created-personal-access-token\\\".*data-clipboard-text=\\\"([^\\\"]*)\\\".*\\/>"
;
protected
static
final
String
PERSONAL_ACCESS_TOKEN_REGEX
=
"name=\\\"created-personal-access-token\\\".*data-clipboard-text=\\\"([^\\\"]*)\\\".*\\/>"
;
protected
static
final
Pattern
PERSONAL_ACCESS_TOKEN_PATTERN
=
Pattern
.
compile
(
PERSONAL_ACCESS_TOKEN_REGEX
);
protected
static
final
Pattern
PERSONAL_ACCESS_TOKEN_PATTERN
=
Pattern
.
compile
(
PERSONAL_ACCESS_TOKEN_REGEX
);
protected
static
final
String
REVOKE_PERSONAL_ACCESS_TOKEN_REGEX
=
"<td>%s<\\/td>.*<td>%s<\\/td>.*href=\\\"([^\\\"]*)\\\">Revoke"
;
protected
static
final
String
REVOKE_PERSONAL_ACCESS_TOKEN_REGEX
=
"href=\\\"([^\\\"]*)\\\""
;
protected
static
final
Pattern
REVOKE_PERSONAL_ACCESS_TOKEN_PATTERN
=
Pattern
.
compile
(
REVOKE_PERSONAL_ACCESS_TOKEN_REGEX
);
protected
static
final
String
FEED_TOKEN_REGEX
=
"name=\\\"feed_token\\\".*value=\\\"([^\\\"]*)\\\".*\\/>"
;
protected
static
final
String
FEED_TOKEN_REGEX
=
"name=\\\"feed_token\\\".*value=\\\"([^\\\"]*)\\\".*\\/>"
;
protected
static
final
Pattern
FEED_TOKEN_PATTERN
=
Pattern
.
compile
(
FEED_TOKEN_REGEX
);
protected
static
final
Pattern
FEED_TOKEN_PATTERN
=
Pattern
.
compile
(
FEED_TOKEN_REGEX
);
...
@@ -230,6 +231,18 @@ public final class AccessTokenUtils {
...
@@ -230,6 +231,18 @@ public final class AccessTokenUtils {
* Step 3: Submit the /profile/personal_access_tokens page with the info to *
* Step 3: Submit the /profile/personal_access_tokens page with the info to *
* revoke the first matching personal access token. *
* revoke the first matching personal access token. *
*******************************************************************************/
*******************************************************************************/
int
indexOfTokenName
=
content
.
indexOf
(
"<td>"
+
tokenName
+
"</td>"
);
if
(
indexOfTokenName
==
-
1
)
{
throw
new
GitLabApiException
(
"personal access token not found, aborting!"
);
}
content
=
content
.
substring
(
indexOfTokenName
);
int
indexOfLinkEnd
=
content
.
indexOf
(
"</a>"
);
if
(
indexOfTokenName
==
-
1
)
{
throw
new
GitLabApiException
(
"personal access token not found, aborting!"
);
}
content
=
content
.
substring
(
0
,
indexOfLinkEnd
);
String
scopesText
=
""
;
String
scopesText
=
""
;
if
(
scopes
!=
null
&&
scopes
.
size
()
>
0
)
{
if
(
scopes
!=
null
&&
scopes
.
size
()
>
0
)
{
final
StringJoiner
joiner
=
new
StringJoiner
(
", "
);
final
StringJoiner
joiner
=
new
StringJoiner
(
", "
);
...
@@ -237,9 +250,11 @@ public final class AccessTokenUtils {
...
@@ -237,9 +250,11 @@ public final class AccessTokenUtils {
scopesText
=
joiner
.
toString
();
scopesText
=
joiner
.
toString
();
}
}
String
regex
=
String
.
format
(
REVOKE_PERSONAL_ACCESS_TOKEN_REGEX
,
tokenName
,
scopesText
);
if
(
content
.
indexOf
(
scopesText
)
==
-
1
)
{
Pattern
pattern
=
Pattern
.
compile
(
regex
);
throw
new
GitLabApiException
(
"personal access token not found, aborting!"
);
matcher
=
pattern
.
matcher
(
content
);
}
matcher
=
REVOKE_PERSONAL_ACCESS_TOKEN_PATTERN
.
matcher
(
content
);
if
(!
matcher
.
find
())
{
if
(!
matcher
.
find
())
{
throw
new
GitLabApiException
(
"personal access token not found, aborting!"
);
throw
new
GitLabApiException
(
"personal access token not found, aborting!"
);
}
}
...
...
src/test/java/org/gitlab4j/api/TestAccessTokenUtils.java
View file @
318b3611
...
@@ -72,7 +72,7 @@ public class TestAccessTokenUtils {
...
@@ -72,7 +72,7 @@ public class TestAccessTokenUtils {
String
accessToken
=
AccessTokenUtils
.
createPersonalAccessToken
(
String
accessToken
=
AccessTokenUtils
.
createPersonalAccessToken
(
TEST_HOST_URL
,
TEST_LOGIN_USERNAME
,
TEST_LOGIN_PASSWORD
,
TEST_HOST_URL
,
TEST_LOGIN_USERNAME
,
TEST_LOGIN_PASSWORD
,
tokenName
,
Arrays
.
asList
(
"api"
,
"sudo"
));
tokenName
,
Arrays
.
asList
(
"api"
,
"sudo"
));
System
.
out
.
println
(
"Created personal access token:
"
+
accessToken
);
System
.
out
.
format
(
"Created
'%s'
personal access token:
%s%n"
,
tokenName
,
accessToken
);
assertNotNull
(
accessToken
);
assertNotNull
(
accessToken
);
assertFalse
(
accessToken
.
trim
().
isEmpty
());
assertFalse
(
accessToken
.
trim
().
isEmpty
());
...
@@ -82,7 +82,7 @@ public class TestAccessTokenUtils {
...
@@ -82,7 +82,7 @@ public class TestAccessTokenUtils {
AccessTokenUtils
.
revokePersonalAccessToken
(
AccessTokenUtils
.
revokePersonalAccessToken
(
TEST_HOST_URL
,
TEST_LOGIN_USERNAME
,
TEST_LOGIN_PASSWORD
,
TEST_HOST_URL
,
TEST_LOGIN_USERNAME
,
TEST_LOGIN_PASSWORD
,
tokenName
,
Arrays
.
asList
(
"api"
,
"sudo"
));
tokenName
,
Arrays
.
asList
(
"api"
,
"sudo"
));
System
.
out
.
println
(
"Revoked personal access token:
"
+
accessToken
);
System
.
out
.
format
(
"Revoked
'%s'
personal access token:
%s%n"
,
tokenName
,
accessToken
);
}
catch
(
Exception
ignore
)
{}
}
catch
(
Exception
ignore
)
{}
}
}
...
@@ -107,14 +107,14 @@ public class TestAccessTokenUtils {
...
@@ -107,14 +107,14 @@ public class TestAccessTokenUtils {
String
accessToken
=
AccessTokenUtils
.
createPersonalAccessToken
(
String
accessToken
=
AccessTokenUtils
.
createPersonalAccessToken
(
TEST_HOST_URL
,
TEST_LOGIN_USERNAME
,
TEST_LOGIN_PASSWORD
,
TEST_HOST_URL
,
TEST_LOGIN_USERNAME
,
TEST_LOGIN_PASSWORD
,
tokenName
,
Arrays
.
asList
(
"api"
,
"sudo"
));
tokenName
,
Arrays
.
asList
(
"api"
,
"sudo"
));
System
.
out
.
println
(
"Created personal access token:
"
+
accessToken
);
System
.
out
.
format
(
"Created
'%s'
personal access token:
%s%n"
,
tokenName
,
accessToken
);
assertNotNull
(
accessToken
);
assertNotNull
(
accessToken
);
assertFalse
(
accessToken
.
trim
().
isEmpty
());
assertFalse
(
accessToken
.
trim
().
isEmpty
());
AccessTokenUtils
.
revokePersonalAccessToken
(
AccessTokenUtils
.
revokePersonalAccessToken
(
TEST_HOST_URL
,
TEST_LOGIN_USERNAME
,
TEST_LOGIN_PASSWORD
,
TEST_HOST_URL
,
TEST_LOGIN_USERNAME
,
TEST_LOGIN_PASSWORD
,
tokenName
,
Arrays
.
asList
(
"api"
,
"sudo"
));
tokenName
,
Arrays
.
asList
(
"api"
,
"sudo"
));
System
.
out
.
println
(
"Revoked personal access token:
"
+
accessToken
);
System
.
out
.
format
(
"Revoked
'%s'
personal access token:
%s%n"
,
tokenName
,
accessToken
);
}
}
@Test
@Test
...
...
Write
Preview
Supports
Markdown
0%
Try again
or
attach a new file
.
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment