Browse Source

Merge 63c5d7ba65 into 9095a1bffd

pull/18272/merge
Yohei Kishimoto 2 days ago committed by GitHub
parent
commit
2d08e6fdc2
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
  1. 3
      kerberos/kerberos-client/src/main/java/org/springframework/security/kerberos/client/KerberosRestTemplate.java
  2. 17
      kerberos/kerberos-client/src/test/java/org/springframework/security/kerberos/client/KerberosRestTemplateTests.java

3
kerberos/kerberos-client/src/main/java/org/springframework/security/kerberos/client/KerberosRestTemplate.java

@ -244,6 +244,9 @@ public class KerberosRestTemplate extends RestTemplate { @@ -244,6 +244,9 @@ public class KerberosRestTemplate extends RestTemplate {
});
}
catch (RestClientException ex) {
throw ex;
}
catch (Exception ex) {
throw new RestClientException("Error running rest call", ex);
}

17
kerberos/kerberos-client/src/test/java/org/springframework/security/kerberos/client/KerberosRestTemplateTests.java

@ -19,6 +19,8 @@ package org.springframework.security.kerberos.client; @@ -19,6 +19,8 @@ package org.springframework.security.kerberos.client;
import java.io.File;
import java.nio.charset.StandardCharsets;
import java.util.Collections;
import java.util.HashMap;
import java.util.Map;
import okhttp3.mockwebserver.Dispatcher;
import okhttp3.mockwebserver.MockResponse;
@ -33,8 +35,10 @@ import org.springframework.http.HttpHeaders; @@ -33,8 +35,10 @@ import org.springframework.http.HttpHeaders;
import org.springframework.http.MediaType;
import org.springframework.security.kerberos.test.KerberosSecurityTestcase;
import org.springframework.security.kerberos.test.MiniKdc;
import org.springframework.web.client.HttpClientErrorException;
import static org.assertj.core.api.Assertions.assertThat;
import static org.assertj.core.api.Assertions.assertThatThrownBy;
class KerberosRestTemplateTests extends KerberosSecurityTestcase {
@ -72,6 +76,8 @@ class KerberosRestTemplateTests extends KerberosSecurityTestcase { @@ -72,6 +76,8 @@ class KerberosRestTemplateTests extends KerberosSecurityTestcase {
String serverPrincipal = "HTTP/localhost";
File serverKeytab = new File(workDir, "server.keytab");
kdc.createPrincipal(serverKeytab, serverPrincipal);
setUpClient();
}
@AfterEach
@ -81,13 +87,20 @@ class KerberosRestTemplateTests extends KerberosSecurityTestcase { @@ -81,13 +87,20 @@ class KerberosRestTemplateTests extends KerberosSecurityTestcase {
@Test
void sendsNegotiateHeader() {
setUpClient();
String s = this.restTemplate.getForObject(this.baseUrl + "/get", String.class);
assertThat(s).isEqualTo(helloWorld);
}
@Test
void throwsOriginalException() {
assertThatThrownBy(() -> restTemplate.getForObject(this.baseUrl + "/notfound", String.class))
.isInstanceOf(HttpClientErrorException.NotFound.class);
}
private void setUpClient() {
this.restTemplate = new KerberosRestTemplate(this.clientKeytab.getAbsolutePath(), this.clientPrincipal);
Map<String, Object> loginOptions = new HashMap<>();
loginOptions.put("refreshKrb5Config", "true");
this.restTemplate = new KerberosRestTemplate(this.clientKeytab.getAbsolutePath(), this.clientPrincipal, loginOptions);
}
private MockResponse getRequest(RecordedRequest request, byte[] body, String contentType) {

Loading…
Cancel
Save