pull/8516/head
Phillip Webb 8 years ago
parent a3d5101369
commit fedd7b9506

@ -38,7 +38,8 @@ class CloudFoundryHealthMvcEndpoint extends HealthMvcEndpoint {
} }
@Override @Override
protected boolean exposeHealthDetails(HttpServletRequest request, Principal principal) { protected boolean exposeHealthDetails(HttpServletRequest request,
Principal principal) {
return true; return true;
} }

@ -183,7 +183,8 @@ public class HealthMvcEndpoint extends AbstractEndpointMvcAdapter<HealthEndpoint
return (accessTime - this.lastAccess) >= getDelegate().getTimeToLive(); return (accessTime - this.lastAccess) >= getDelegate().getTimeToLive();
} }
protected boolean exposeHealthDetails(HttpServletRequest request, Principal principal) { protected boolean exposeHealthDetails(HttpServletRequest request,
Principal principal) {
if (!this.secure) { if (!this.secure) {
return true; return true;
} }
@ -192,7 +193,7 @@ public class HealthMvcEndpoint extends AbstractEndpointMvcAdapter<HealthEndpoint
if (request.isUserInRole(role)) { if (request.isUserInRole(role)) {
return true; return true;
} }
if (isSpringSecurityAuthentication(principal)) { if (isSpringSecurityAuthentication(principal)) {
Authentication authentication = (Authentication) principal; Authentication authentication = (Authentication) principal;
for (GrantedAuthority authority : authentication.getAuthorities()) { for (GrantedAuthority authority : authentication.getAuthorities()) {
String name = authority.getAuthority(); String name = authority.getAuthority();
@ -217,7 +218,7 @@ public class HealthMvcEndpoint extends AbstractEndpointMvcAdapter<HealthEndpoint
private boolean isSpringSecurityAuthentication(Principal principal) { private boolean isSpringSecurityAuthentication(Principal principal) {
return ClassUtils.isPresent("org.springframework.security.core.Authentication", return ClassUtils.isPresent("org.springframework.security.core.Authentication",
null) && (principal instanceof Authentication); null) && principal instanceof Authentication;
} }
} }

@ -1,5 +1,5 @@
/* /*
* Copyright 2012-2016 the original author or authors. * Copyright 2012-2017 the original author or authors.
* *
* Licensed under the Apache License, Version 2.0 (the "License"); * Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License. * you may not use this file except in compliance with the License.

@ -1,5 +1,5 @@
/* /*
* Copyright 2012-2016 the original author or authors. * Copyright 2012-2017 the original author or authors.
* *
* Licensed under the Apache License, Version 2.0 (the "License"); * Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License. * you may not use this file except in compliance with the License.

@ -167,7 +167,8 @@ public class HealthMvcEndpointTests {
public void rightAuthorityPresentShouldExposeDetails() throws Exception { public void rightAuthorityPresentShouldExposeDetails() throws Exception {
this.environment.getPropertySources().addLast(SECURITY_ROLES); this.environment.getPropertySources().addLast(SECURITY_ROLES);
Authentication principal = mock(Authentication.class); Authentication principal = mock(Authentication.class);
Set<SimpleGrantedAuthority> authorities = Collections.singleton(new SimpleGrantedAuthority("HERO")); Set<SimpleGrantedAuthority> authorities = Collections
.singleton(new SimpleGrantedAuthority("HERO"));
doReturn(authorities).when(principal).getAuthorities(); doReturn(authorities).when(principal).getAuthorities();
given(this.endpoint.invoke()) given(this.endpoint.invoke())
.willReturn(new Health.Builder().up().withDetail("foo", "bar").build()); .willReturn(new Health.Builder().up().withDetail("foo", "bar").build());

@ -68,13 +68,15 @@ public class NoSpringSecurityHealthMvcEndpointIntegrationTests {
} }
@Test @Test
public void healthWhenRightRoleNotPresentShouldExposeHealthDetails() throws Exception { public void healthWhenRightRoleNotPresentShouldExposeHealthDetails()
throws Exception {
this.context = new AnnotationConfigWebApplicationContext(); this.context = new AnnotationConfigWebApplicationContext();
this.context.setServletContext(new MockServletContext()); this.context.setServletContext(new MockServletContext());
this.context.register(TestConfiguration.class); this.context.register(TestConfiguration.class);
this.context.refresh(); this.context.refresh();
MockMvc mockMvc = MockMvcBuilders.webAppContextSetup(this.context).build(); MockMvc mockMvc = MockMvcBuilders.webAppContextSetup(this.context).build();
mockMvc.perform(get("/health").with(getRequestPostProcessor())).andExpect(status().isOk()) mockMvc.perform(get("/health").with(getRequestPostProcessor()))
.andExpect(status().isOk())
.andExpect(content().string(containsString("\"status\":\"UP\""))); .andExpect(content().string(containsString("\"status\":\"UP\"")));
} }
@ -94,12 +96,15 @@ public class NoSpringSecurityHealthMvcEndpointIntegrationTests {
private RequestPostProcessor getRequestPostProcessor() { private RequestPostProcessor getRequestPostProcessor() {
return new RequestPostProcessor() { return new RequestPostProcessor() {
@Override @Override
public MockHttpServletRequest postProcessRequest(MockHttpServletRequest request) { public MockHttpServletRequest postProcessRequest(
MockHttpServletRequest request) {
Principal principal = mock(Principal.class); Principal principal = mock(Principal.class);
request.setUserPrincipal(principal); request.setUserPrincipal(principal);
return request; return request;
} }
}; };
} }
@ -119,6 +124,7 @@ public class NoSpringSecurityHealthMvcEndpointIntegrationTests {
public Health health() { public Health health() {
return Health.up().withDetail("hello", "world").build(); return Health.up().withDetail("hello", "world").build();
} }
}; };
} }

@ -1,5 +1,5 @@
/* /*
* Copyright 2012-2016 the original author or authors. * Copyright 2012-2017 the original author or authors.
* *
* Licensed under the Apache License, Version 2.0 (the "License"); * Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License. * you may not use this file except in compliance with the License.
@ -227,8 +227,7 @@ public class MongoProperties {
options = MongoClientOptions.builder().build(); options = MongoClientOptions.builder().build();
} }
String host = this.host == null ? "localhost" : this.host; String host = this.host == null ? "localhost" : this.host;
return new MongoClient( return new MongoClient(Collections.singletonList(new ServerAddress(host, port)),
Collections.singletonList(new ServerAddress(host, port)),
Collections.<MongoCredential>emptyList(), options); Collections.<MongoCredential>emptyList(), options);
} }
@ -245,14 +244,14 @@ public class MongoProperties {
if (hasCustomCredentials()) { if (hasCustomCredentials()) {
String database = this.authenticationDatabase == null String database = this.authenticationDatabase == null
? getMongoClientDatabase() : this.authenticationDatabase; ? getMongoClientDatabase() : this.authenticationDatabase;
credentials.add(MongoCredential.createCredential(this.username, credentials.add(MongoCredential.createCredential(this.username, database,
database, this.password)); this.password));
} }
String host = this.host == null ? "localhost" : this.host; String host = this.host == null ? "localhost" : this.host;
int port = this.port != null ? this.port : DEFAULT_PORT; int port = this.port != null ? this.port : DEFAULT_PORT;
return new MongoClient( return new MongoClient(
Collections.singletonList(new ServerAddress(host, port)), Collections.singletonList(new ServerAddress(host, port)), credentials,
credentials, options); options);
} }
// The options and credentials are in the URI // The options and credentials are in the URI
return new MongoClient(new MongoClientURI(determineUri(), builder(options))); return new MongoClient(new MongoClientURI(determineUri(), builder(options)));

@ -1,5 +1,5 @@
/* /*
* Copyright 2012-2016 the original author or authors. * Copyright 2012-2017 the original author or authors.
* *
* Licensed under the Apache License, Version 2.0 (the "License"); * Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License. * you may not use this file except in compliance with the License.

@ -1,5 +1,5 @@
/* /*
* Copyright 2012-2016 the original author or authors. * Copyright 2012-2017 the original author or authors.
* *
* Licensed under the Apache License, Version 2.0 (the "License"); * Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License. * you may not use this file except in compliance with the License.

Loading…
Cancel
Save