Commit Graph

857 Commits

Author SHA1 Message Date
Stephane Nicoll
f42998f5ca Revert "Refine validator and MVC validator configuration"
This commit reverts c9561f0 and 69a8c0d and effectivly fixes gh-8979 but
reintroduces the issue reported in gh-8495.
2017-04-28 11:12:09 +02:00
Phillip Webb
df82060cad Formatting 2017-04-27 10:12:31 -07:00
Phillip Webb
c9561f031c Refine validator and MVC validator configuration
Update `ValidationAutoConfiguration` and `WebMvcAutoConfiguration` to
ensure as much as possible that only a single Validator bean of each
type is registered.

Validation auto-configuration now does the following:
- If no validator is found: Registers a `LocalValidatorFactoryBean`
  (providing both Spring and JSR validation)
- If the user defines a Spring & JSR validator: Backs off
- If the user defines only a JSR validator: Adapts it to a Spring
  validator (without exposing another JSR implementation)

WebMvcAutoConfiguration auto-configuration has been updated to make
MVC validation follow common Spring Boot patterns:
- If not validator beans are found (due to the user excluding
  ValidationAutoConfiguration) a new `mvcValidator` bean will be
  registered.
- If a single validator bean is found it will be used for MVC
  validation.
- If multiple validator beans are defined it will either use the one
  named `mvcValidator` or it will register a new `mvcValidator` bean

Any automatically registered `mvcValidator` bean will not implement
the JSR validator interface.

Finally, it is no longer possible to provide an MVC validator via a
`WebMvcConfigurer`.

Fixes gh-8495
2017-04-19 22:18:12 -07:00
Andy Wilkinson
b9be0e3e0f Skip actuator path extension content negotiation
Allow `PathExtensionContentNegotiationStrategy` to be bypassed by
actuator endpoints. Prior to this commit calling `/loggers/com.aaa.cab`
would return a HTTP 406 response due to `.cab` being a known extension.

Fixes gh-8765
2017-04-18 14:56:11 -07:00
Phillip Webb
8eb79b3c0f Polish 2017-04-18 11:13:12 -07:00
Stephane Nicoll
6c14420221 Merge branch '1.4.x' into 1.5.x 2017-04-18 10:42:48 +02:00
Stephane Nicoll
9a5346f29c Polish "Fix statsd metrics collection for names with ":""
Closes gh-8906
2017-04-18 10:40:14 +02:00
Odín del Río
9e705c83c8 Fix statsd metrics collection for names with ":"
Statsd server is ignoring malformed metrics. This change introduces
a basic sanitizing to metric names for avoid losing those metrics.

See gh-8906
2017-04-18 10:40:14 +02:00
Phillip Webb
f46d799f31 Polish 2017-04-17 22:08:51 -07:00
Madhura Bhave
3fe0b844a6 Make HealthMvcEndpoint conditional on missing bean 2017-04-17 14:49:45 -07:00
Phillip Webb
c97268981a Polish 2017-04-11 20:59:03 -07:00
Phillip Webb
d301d0f4c3 Merge branch '1.4.x' into 1.5.x 2017-04-11 20:42:48 -07:00
Phillip Webb
758ddcd420 Polish 2017-04-11 20:17:23 -07:00
Stephane Nicoll
2ef318c00d Polish "Add the ability to disable the trace filter"
Closes gh-8650
2017-04-11 14:46:57 +02:00
Colin Harrington
d3e2e22f8c Add the ability to disable the trace filter
See gh-8650
2017-04-11 14:46:57 +02:00
Eddú Meléndez
cf08162148 Fix http status code with unknown log level
This commit changes the http status code to 400 when an unknown log level
is specified.

Closes gh-8798
See gh-8813
2017-04-11 13:23:41 +02:00
Stephane Nicoll
a9b5e7c12a Merge branch '1.4.x' into 1.5.x 2017-04-10 13:38:27 +02:00
Stephane Nicoll
9d88e477f3 Fix Solr health indicator
This commit changes the solr health indicator to request the status of
all available cores, rather than invoking a generic ping on the admin
handler.

Recent versions of Solr now have a ping handler per core and the general
admin handler is gone, leading to incorrect health status. For backward
compatible reason the `solrStatus` attribute is kept to `OK` if all cores
are running properly (that's actually `0` behind the scenes).

Closes gh-8463
2017-04-10 13:38:08 +02:00
Andy Wilkinson
c74f0a70ca Merge branch '1.4.x' into 1.5.x 2017-04-07 12:14:47 +01:00
Phillip Webb
ad38776de3 Polish 2017-04-04 09:48:10 -07:00
Phillip Webb
ddcb5ee328 Polish 2017-04-04 09:36:27 -07:00
Madhura Bhave
8ac22fc2fd Add elapsed time to the Trace Actuator output
Closes gh-8654
2017-03-17 12:04:55 -07:00
Stephane Nicoll
cd8684499d Polish
See gh-8621
2017-03-15 08:57:24 +01:00
Madhura Bhave
7da70a52fd Mask sensitive placeholders in env endpoint
Closes gh-8282
2017-03-08 10:53:39 -08:00
Madhura Bhave
703b7d9268 Merge branch '1.4.x' into 1.5.x 2017-03-07 11:08:06 -08:00
Madhura Bhave
67068fc83d Ignore unresolvable nested placeholders
The NamePatternEnvironmentFilter used to throw an exception if
placeholders in property values could not be resolved.

Fixes gh-8510
2017-03-07 10:20:42 -08:00
Phillip Webb
fedd7b9506 Polish 2017-03-06 12:01:05 -08:00
Madhura Bhave
d4b52a3538 Expose Health details if user has authority
If the Princial is a Spring Security Authentication object and the
request doesn't have the right roles, check the authorities.

Fixes gh-8471
2017-03-02 12:37:47 -08:00
Stephane Nicoll
5cc569fc91 Improve execution speed of CacheAutoConfigurationTests
As of Hazelcast 3.7, the bootstrap is pretty slow by default due to the
networking discovery. This commit disables both TCP/IP and multicast
discoveries.
2017-03-02 14:28:33 +01:00
Phillip Webb
3ee7dae09b Merge branch '1.4.x' into 1.5.x 2017-03-01 23:44:40 -08:00
Phillip Webb
f1012c104a Polish 2017-03-01 23:29:20 -08:00
Phillip Webb
c06a9771c2 Support list based role properties
Update `HealthMvcEndpoint` to respect `ManagementServerProperties`
roles. Prior to this commit the `HealthMvcEndpoint` directly loaded
roles rather than using bound properties. This meant that list values
from yaml were not respected.

Fixes gh-8314
2017-03-01 21:35:50 -08:00
Madhura Bhave
031c9bf191 Validate authorities in MvcSecurityInterceptor
If Spring Security is on the classpath and `isUserInRole` returns false,
check if user has the authority to access the actuator endpoints.

Fixes gh-8255
2017-03-01 17:55:30 -08:00
Madhura Bhave
e5e1f24d1f Revert "Skip MvcSecurityInterceptor if Spring Security present"
Instead of entirely skipping the interceptor, we will be additionally
checking for authorities.
2017-03-01 16:31:36 -08:00
Madhura Bhave
ad5cb8a3cd Skip MvcSecurityInterceptor if Spring Security present
If Spring Security is on the classpath, the role check can be done
as part of the ManagementWebSecurityConfigurerAdapter.

Fixes gh-8255
2017-03-01 14:44:06 -08:00
Phillip Webb
ca1540cefe Update header copyright for changed files 2017-02-27 20:41:18 -08:00
Phillip Webb
5867cd6175 Polish 2017-02-27 20:41:18 -08:00
Phillip Webb
47b00c086c Polish 2017-02-27 13:56:17 -08:00
Andy Wilkinson
e2a12e77b7 Merge branch '1.4.x' into 1.5.x 2017-02-14 11:23:25 +00:00
Andy Wilkinson
bbe9394228 Tests that lists of lists are sanitized correctly
See gh-8263
2017-02-14 11:22:04 +00:00
Madhura Bhave
77e5c585f4 Validate kid in Cloud Foundry token header
Instead of validating the signature against all the public keys,
we can validate it only against the public key with the kid that
matches the one in the token header.

Closes gh-8126
2017-02-09 16:47:44 -08:00
Andy Wilkinson
d02a9c1058 Merge branch '1.4.x' into 1.5.x 2017-02-08 17:29:15 +00:00
Andy Wilkinson
f27bb39af9 Sanitize configuration properties that are nested beneath a List
Closes gh-8197
2017-02-08 17:21:41 +00:00
Andy Wilkinson
180ab2da8b Merge branch '1.4.x' into 1.5.x 2017-01-26 20:30:20 +00:00
Andy Wilkinson
f3b9b14b8e Order ManagementContextConfiguration classes without loading them
Previously, ManagementContextConfiguration classes were loaded to
allow them to be ordered based on either @Order or implementing
Ordered. This had the unwanted side-effect of possibly logging
unwanted INFO messages if the reflection-based annotation
introspection failed. One cause of this was @ConditionalOnClass when
the referenced class was not on the classpath.

This commit uses the ASM-based annotation metadata reading to
determine the order of a management context configuration class based
on the @Order annotation. The classes are then sorted using a standard
OrderComparator. Note that Ordering via implemented Ordered is not
supported as it cannot be determine without loading the class.
2017-01-26 20:25:23 +00:00
Stephane Nicoll
b575be339e Fix endpoint id
See gh-7579
2017-01-26 14:00:48 +01:00
Johnny Lim
e0de28a1f7 Polish
Closes gh-8076
2017-01-24 13:22:22 +01:00
Phillip Webb
2c89d9918f Relocate AutoConfigurations from root package
Move PropertyPlaceholder and MessageSource auto-configuration from the
root package to the `context` subpackage.

Fixes gh-8071
2017-01-23 17:32:45 -08:00
Phillip Webb
5703fb1515 Polish 2017-01-23 16:03:59 -08:00
Andy Wilkinson
b900a3efc8 Update Actuator endpoints to use custom media type
Previously, the actuator's endpoints produced application/json and,
where appropriate, also consumed application/json. Without a custom,
versioned media type, it's impossible for us to make changes to the
endpoints without breaking clients.

This commit introduces a new media type,
application/spring-boot.actuator.v1+json, that is now produced by
default with application/json also being produced if requested.
Endpoints that consume JSON will now also accept content the uses
the new media type in addition to application/json.

Closes gh-7967
2017-01-20 15:31:22 +00:00