Skip to content

Commit bebb5f8

Browse files
authored
Merge pull request #426 from tariq1890/util_improve_code
minor code fixes and unit tests added to KubeConfig
2 parents 8418a60 + 9ae78eb commit bebb5f8

File tree

5 files changed

+68
-11
lines changed

5 files changed

+68
-11
lines changed

util/src/main/java/io/kubernetes/client/util/KubeConfig.java

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,7 @@
1717
import io.kubernetes.client.util.authenticators.GCPAuthenticator;
1818
import java.io.IOException;
1919
import java.io.Reader;
20+
import java.nio.charset.StandardCharsets;
2021
import java.nio.file.FileSystems;
2122
import java.nio.file.Files;
2223
import java.nio.file.Paths;
@@ -220,7 +221,7 @@ public String getAccessToken() {
220221
String tokenFile = (String) currentUser.get("tokenFile");
221222
try {
222223
byte[] data = Files.readAllBytes(FileSystems.getDefault().getPath(tokenFile));
223-
return new String(data, "UTF-8");
224+
return new String(data, StandardCharsets.UTF_8);
224225
} catch (IOException ex) {
225226
log.error("Failed to read token file", ex);
226227
}
@@ -264,7 +265,7 @@ private static Map<String, Object> findObject(ArrayList<Object> list, String nam
264265
}
265266
for (Object obj : list) {
266267
Map<String, Object> map = (Map<String, Object>) obj;
267-
if (name.equals((String) map.get("name"))) {
268+
if (name.equals(map.get("name"))) {
268269
return map;
269270
}
270271
}

util/src/main/java/io/kubernetes/client/util/authenticators/AzureActiveDirectoryAuthenticator.java

Lines changed: 1 addition & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -51,10 +51,7 @@ public String getToken(Map<String, Object> config) {
5151
public boolean isExpired(Map<String, Object> config) {
5252
String expiresOn = (String) config.get(EXPIRES_ON);
5353
Date expiry = new Date(Long.parseLong(expiresOn) * 1000);
54-
if (expiry != null && expiry.compareTo(new Date()) <= 0) {
55-
return true;
56-
}
57-
return false;
54+
return expiry.compareTo(new Date()) <= 0;
5855
}
5956

6057
@Override

util/src/main/java/io/kubernetes/client/util/authenticators/GCPAuthenticator.java

Lines changed: 1 addition & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -38,10 +38,7 @@ public String getToken(Map<String, Object> config) {
3838
@Override
3939
public boolean isExpired(Map<String, Object> config) {
4040
Date expiry = (Date) config.get("expiry");
41-
if (expiry != null && expiry.compareTo(new Date()) <= 0) {
42-
return true;
43-
}
44-
return false;
41+
return (expiry != null && expiry.compareTo(new Date()) <= 0);
4542
}
4643

4744
@Override

util/src/test/java/io/kubernetes/client/util/FilePersisterTest.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -32,7 +32,7 @@ public class FilePersisterTest {
3232
@Test
3333
public void testPersistence() throws IOException {
3434
File file = folder.newFile("testconfig");
35-
FilePersister fp = new FilePersister(file);
35+
FilePersister fp = new FilePersister(file.getPath());
3636

3737
KubeConfig config = KubeConfig.loadKubeConfig(new FileReader(KUBECONFIG_FILE_PATH));
3838

util/src/test/java/io/kubernetes/client/util/KubeConfigTest.java

Lines changed: 62 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,7 @@
1414

1515
import static org.junit.Assert.*;
1616

17+
import io.kubernetes.client.util.authenticators.AzureActiveDirectoryAuthenticator;
1718
import io.kubernetes.client.util.authenticators.GCPAuthenticator;
1819
import java.io.File;
1920
import java.io.FileReader;
@@ -105,6 +106,67 @@ public void testGCPAuthProvider() {
105106
}
106107
}
107108

109+
@Test
110+
public void testGCPAuthProviderExpiredToken() {
111+
String gcpConfigExpiredToken =
112+
"apiVersion: v1\n"
113+
+ "contexts:\n"
114+
+ "- context:\n"
115+
+ " user: gke-cluster\n"
116+
+ " name: foo-context\n"
117+
+ "current-context: foo-context\n"
118+
+ "users:\n"
119+
+ "- name: gke-cluster\n"
120+
+ " user:\n"
121+
+ " auth-provider:\n"
122+
+ " config:\n"
123+
+ " access-token: fake-token\n"
124+
+ " cmd-args: config config-helper --format=json\n"
125+
+ " cmd-path: /usr/lib/google-cloud-sdk/bin/gcloud\n"
126+
+ " expiry: 1970-01-01T00:00:00Z\n"
127+
+ " expiry-key: '{.credential.token_expiry}'\n"
128+
+ " token-key: '{.credential.access_token}'\n"
129+
+ " name: gcp";
130+
KubeConfig.registerAuthenticator(new GCPAuthenticator());
131+
try {
132+
KubeConfig kc = KubeConfig.loadKubeConfig(new StringReader(gcpConfigExpiredToken));
133+
kc.getAccessToken();
134+
} catch (Exception ex) {
135+
if (!(ex instanceof IllegalStateException)) {
136+
fail("Unexpected exception: " + ex);
137+
}
138+
}
139+
}
140+
141+
@Test
142+
public void testAzureAuthProvider() {
143+
KubeConfig.registerAuthenticator(new AzureActiveDirectoryAuthenticator());
144+
String azureConfig =
145+
"apiVersion: v1\n"
146+
+ "contexts:\n"
147+
+ "- context:\n"
148+
+ " user: aks-cluster\n"
149+
+ " name: foo-context\n"
150+
+ "current-context: foo-context\n"
151+
+ "users:\n"
152+
+ "- name: aks-cluster\n"
153+
+ " user:\n"
154+
+ " auth-provider:\n"
155+
+ " config:\n"
156+
+ " access-token: fake-azure-token\n"
157+
+ " expires-on: \"1841569394\"\n"
158+
+ " expiry-key: '{.credential.token_expiry}'\n"
159+
+ " token-key: '{.credential.access_token}'\n"
160+
+ " name: azure\n";
161+
try {
162+
KubeConfig kc = KubeConfig.loadKubeConfig(new StringReader(azureConfig));
163+
assertEquals("fake-azure-token", kc.getAccessToken());
164+
} catch (Exception ex) {
165+
ex.printStackTrace();
166+
fail("Unexpected exception: " + ex);
167+
}
168+
}
169+
108170
@Test
109171
public void testNamespace() {
110172
KubeConfig config = KubeConfig.loadKubeConfig(new StringReader(KUBECONFIG_TOKEN));

0 commit comments

Comments
 (0)