Commit Graph

10971 Commits

Author SHA1 Message Date
Stephane Nicoll
00e207dcaf Temporary fix the build
See gh-4345
2015-10-30 10:13:54 +01:00
Andy Wilkinson
248fcbec5d Merge branch '1.2.x' 2015-10-30 09:06:58 +00:00
Andy Wilkinson
05b501ce41 Update Tomcat multi-connectors sample to configure SSL declaratively
The documentation recommends configuring the HTTP connector in code
and using application.properties to configure the HTTPS connector
as it's easier. This commit updates the sample to follow that
recommendation.

Closes gh-4342
2015-10-30 09:05:24 +00:00
Stephane Nicoll
fd2db51da7 Consistently document default and example values
Previously, the "Common application properties" appendix had no
consistent use of a configuration key value. It could just as well be
the default value or an example.

We now always document the default value after the "=" sign and
eventually add an example with the phrasing "For instance".

The keys have also been reordered so that they follow a natural (i.e.
lexical) order.

Closes gh-3230
Closes gh-3160
Closes gh-3155
Closes gh-3153
2015-10-29 18:33:32 +01:00
Andy Wilkinson
549f873941 Update RestarterTests to expect listener to be notified at least once 2015-10-29 15:59:12 +00:00
Andy Wilkinson
eaa4d900eb Update auto-configured ParameterNamesModule to use DEFAULT creator mode
The PROPERTIES creator mode has the unfortunate side-effect of stopping
mixins from working. This commit updates the auto-configured module to
use the DEFAULT creator mode instead.

Closes gh-4336
2015-10-29 15:41:04 +00:00
Stephane Nicoll
7742dafccf Improve meta-data description 2015-10-29 16:31:34 +01:00
Andy Wilkinson
79d99e1847 Update ShellPropertiesTests to expect whitespace to be trimmed
The latest Spring Framework 4.2.3 snapshots appear to be trimming
whitespace as part of the binding process. This commit updates the
test's expectations accordingly.
2015-10-29 15:05:09 +00:00
Andy Wilkinson
aaae4aa3a1 Prevent restarts from switching off Log4J2-based logging
During a restart, the Restarter runs all registered shutdown hooks. This
breaks Log4J2 as it leaves it in a shutdown state that leaves logging
switched off such that no output it produced when the application starts
up again.

This commit introduces a new RestartListener abstraction.
RestartListeners are notified prior to the application being restarted.
A Log4J2-specific implementation is provided that prepares Log4J2 for
restart by removing any shutdown callbacks from its shutdown callback
registry. This prevents the restart from shutting down Log4J2, ensuring
that it still functions when the application restarts.

Closes gh-4279
2015-10-29 14:40:19 +00:00
Andy Wilkinson
85d5766d54 Correct plugin name of ExtendedWhitespaceThrowablePatternConverter
Previously, it had the same plugin name as
WhitespaceThrowablePatternConverter which meant that only one of the
two plugins was available and the other’s converter keys didn’t work.

Closes gh-4337
2015-10-29 14:31:41 +00:00
Stephane Nicoll
c98d3208b2 Merge pull request #4316 from klieber/bugfix/oauth2-auth-server-autoconfig
* pr/4316:
  Polish contribution
  Add missing properties to OAuth2AutorizationServer
2015-10-29 11:10:52 +01:00
Stephane Nicoll
10a079fb07 Polish contribution
Closes gh-4316
2015-10-29 11:09:43 +01:00
Kyle Lieber
c6783e8663 Add missing properties to OAuth2AutorizationServer
Make sure that `autoApprove`, `accessTokenValiditySeconds`, and
`refreshTokenValiditySeconds` properties from the `ClientDetails`
are used

Closes gh-4306
2015-10-29 10:39:01 +01:00
Stephane Nicoll
6578239f67 Fix binding of Collection of enum
As there is no way to copy all the converters of a `ConversionService` to
another, `RelaxedConversionService` uses a fallback `ConversionService`
when the user-provided one failed.

That fallback is taking care of converting `String` to `Enum` in a case
insensitive way but it has no registered converter to convert a comma
separated String to a collection of something.

Ironically, our current test suite has plenty of cases where we map a
`String` to  a collection of enums and they all pass. This is because
the tests do not provide a custom `ConverterService` so we end up
immediately in the fallback scenario. Since no converter is able to
convert the String to a collection, the property editor support of the
binder takes care of that for us and try to convert each individual
value.

In a regular use case however, a `ConversionService` is provided and
fails to map the collection if the String value(s) don't have the exact
same case as the annotations they represent. Since the original
`ConversionService` has claimed it was able to convert a collection,
the raw `String` value is passed to the fallback converter and that one
fails to convert the raw String.

The fallback converter now registers the necessary converters to
convert collections. Additional tests have been added to test that in
a more explicit way.

Closes gh-4322
2015-10-29 10:29:54 +01:00
Andy Wilkinson
04c87138b4 Add missing javadoc to AuthorizationServerProperties 2015-10-29 09:19:51 +00:00
Dave Syer
ae0eed5bf5 Be more defensive about exceptions from resource
Otherwise you can get an exception here that is unuseful, e.g. from
a ServletContext that isn't properly initialized.
2015-10-29 08:41:51 +00:00
Dave Syer
abd7bc0466 Add OAuth2 resource server sample
Shows how to use @EnableResourceServer in a pure resource
server and configure the secure paths.
2015-10-29 08:41:51 +00:00
Dave Syer
cd496c7ec8 Bump OAuth2 back to 2.0.8 2015-10-29 08:41:51 +00:00
Stephane Nicoll
3740c817d3 Ensure that @ConfigurationProperties is mandatory
Previously it was possible to bind a bean to the root prefix by just
adding `@EnableConfigurationProperties` with the class of said bean.

 This use case is misleading and prevents any meta-data to be generated
 for that object since the annotation processor reacts on the presence of
 the `@ConfigurationProperties` annotation.

 If a class is included in the list of configuration properties bean to
 create via the `@EnableConfigurationProperties` annotation we now make
 sure that the `@configurationProperties` annotation is present on it.

 Closes gh-3460
2015-10-28 20:12:13 +01:00
Stephane Nicoll
6491eafc4a Polish doc
`ConfigFileEnvironmentPostProcessor` was renamed to
`ConfigFileApplicationListener`.

See gh-4258
2015-10-28 20:07:45 +01:00
Andy Wilkinson
833aac2b26 Drive EnvironmentPostProcessors from ConfigFileApplicationListener
Previously, ConfigFileApplicationListener was listed in spring.factories
as both an EnvironmentPostProcessor and an ApplicationListener. This
was problematic as ConfigFileApplicationListener is stateful and listing
it twice lead to two separate instances with separate state.

This commit restore ConfigFileApplicationListener to only being an
ApplicationListener. The driving of EnvironmentPostProcessors that was
performed by EnvironmentPostProcessingApplicationListener is now
performed by ConfigFileApplicationListener which adds itself as an
EnvironmentPostProcessor. This ensures that there’s only a single
instance of ConfigFileApplicationListener, allowing its state to be
managed correctly.

Closes gh-4258
2015-10-28 18:58:19 +00:00
Andy Wilkinson
0adf037410 Consider custom server.context-path when configuring dev tools endpoints
Previously, the auto-configuration of DevTools’ debug, restart, and
health handlers assumed that the server was running on its default
context path and, if server.context-path was set to a non-default value,
the handlers would not work as expected.

This commit updates the auto-configuration of the three handlers to 
consider the server’s context path when configuring their URIs. Now,
when a custom server context path is used, no further configuration is
required other than the inclusion of that context path when providing
the remote URL as an argument to RemoteSpringApplication.

Closes gh-4301
2015-10-28 17:22:57 +00:00
Stephane Nicoll
b5246af148 Merge pull request #4330 from izeye/patch-46
* pr/4330:
  Remove unnecessary String concatenation
2015-10-28 18:19:15 +01:00
Johnny Lim
f76322263b Remove unnecessary String concatenation
Closes gh-4330
2015-10-28 18:12:52 +01:00
Stephane Nicoll
831fa1d3b4 Merge pull request #4317 from vpavic/fix-flyway-baseline-version
* pr/4317:
  Polish contribution
  Fix binding of Flyway's baselineVersion property
2015-10-28 18:12:04 +01:00
Stephane Nicoll
90a4d1df2b Polish contribution
Closes gh-4317
2015-10-28 18:12:02 +01:00
Vedran Pavic
40351c40ed Fix binding of Flyway's baselineVersion property
See gh-4317
2015-10-28 18:12:02 +01:00
Andy Wilkinson
791c50d1e7 Add an integration test to verify filter ordering
We have some requirements for filter ordering:

1. The character encoding filter must go first
2. Spring Session’s filter should go early
3. RequestContextFilter should go late so that it any request wrapping
   performed by other filters is reflected in the request that’s set
   in the RequestContextHolder
4. Spring Security’s Filter must go after RequestContextFilter so that
   any code called by Filters in Spring Security’s Filter chain can
   retrieve the request from RequestContextHolder, for example
   OAuth2ClientContextFilter.

See gh-4331
2015-10-28 16:58:34 +00:00
Stephane Nicoll
e02bda5f8e Merge pull request #4323 from shakuzen/patch-9
* pr/4323:
  Fix documentation example
2015-10-28 17:53:05 +01:00
Tommy Ludwig
2516dc033f Fix documentation example
Previously, the nested private static class would cause an error at
startup stating that it was not accessible when trying to bind the
property from the environment. The nested class should be public.

Closes gh-4323
2015-10-28 17:52:16 +01:00
Stephane Nicoll
f09bbb5e1d Merge pull request #4328 from izeye/polish-20151028
* pr/4328:
  Polish docs
2015-10-28 17:51:47 +01:00
Johnny Lim
e2a8fc461c Polish docs
Closes gh-4328
2015-10-28 17:51:32 +01:00
Andy Wilkinson
1ef68ef231 Correct the reference to jarfolder in the init script
Closes gh-4287
2015-10-28 14:32:11 +00:00
Andy Wilkinson
f54b5d7ac1 Change ordering of deployment tests to keep Cargo happy
For some reason, Cargo fails when the Tomcat deployment tests are run
after the TomEE deployment tests. It complains that it can’t find one
of its own classes. This commit changes the order so that the TomEE
tests run before the Tomcat tests.

\_(ツ)_/¯
2015-10-28 14:13:29 +00:00
Andy Wilkinson
8ed472d6f9 Update logging listener to use normal stack trace ordering by default
Previously, LoggingApplicationListener used %rEx as the default
exception conversion word. This would result in the nested causes
being logging in reverse order, i.e. the most deeply nested cause
would be logged first.

This commit updates the default to be %wEx and adds a test to verify
the default behaviour.

Closes gh-4247
2015-10-28 14:07:06 +00:00
Andy Wilkinson
2dee3a9fe9 Upgrade to Spring Security OAuth 2.0.8.RELEASE
Closes gh-4296
2015-10-28 12:53:46 +00:00
Andy Wilkinson
222ca74c62 Fix Checkstyle violations 2015-10-28 12:49:40 +00:00
Andy Wilkinson
c4122b8f8d Work around brittle annotation scanning in Mojarra
FacesListener in Mojarra 2.2.12 (used in Glassfish 4.1.1) is a
ServletContainerInitializer that’s annotated to handle types annotated
with javax.annotation.Resource.
OAuth2RestOperationsConfiguration.SessionScopedConfiguration is one such
class. This leads to com.sun.faces.config.DelegatingAnnotationProvider
calling getAnnotations on SessionScopedConfiguration.class. This fails
with a java.lang.ArrayStoreException due to SessionScopedConfiguration
being annotated with @ConditionalOnBean(OAuth2ClientConfiguration) and
OAuth2ClientConfiguration not being on the classpath.
DelegatingAnnotationProvider currently catches NoClassDefFoundErrors
thrown during its annotation processing. It needs to be made more
robust so that it also copes with an ArrayStoreException, in a similar
way to how org.glassfish.apf.impl.AnnotationProcessorImpl was updated to
fix GLASSFISH-21265 [1]. I’ve opened an issue to this effect [2].

In the meantime, we can work around the brittleness in
DelegatingAnnotationProvider by restructuring
SessionScopedConfiguration. This commit moves the use of @Resource into
a nested inner class, ClientContextConfiguration, while leaving the use
of @ConditionalOnBean on SessionScopedConfiguration. This means that it
is now ClientContextConfiguration that is passed to FacesListener and
processed by DelegatingAnnotationProcessor, thereby avoiding exposing
it to the @ConditionalOnBean annotation that it does not handle
gracefully. A Glassfish-based deployment test has also been added to
verify the fix.

Closes gh-2079
Closes gh-4321

[1] https://java.net/jira/browse/GLASSFISH-21265
[2] https://java.net/jira/browse/JAVASERVERFACES-4076
2015-10-28 12:18:22 +00:00
Dave Syer
5c0ef308aa Test that client-id can be hyphen or camel-cased 2015-10-28 11:50:31 +00:00
Stephane Nicoll
954d137210 Reduce code duplication 2015-10-28 11:57:59 +01:00
Stephane Nicoll
1173f771e3 Upgrade to Spring Integration 4.2.1.RELEASE
Closes gh-4260
2015-10-28 08:46:33 +01:00
Stephane Nicoll
17cf24110e Add reference to samples
Closes gh-1248
2015-10-27 16:54:05 +01:00
Axel Fontaine
d25b7ca46b Add documentation for Boxfuse and Amazon Web Services deployment 2015-10-27 14:42:08 +00:00
Andy Wilkinson
d29d73d38e Keep javac happy by making variable explicitly final 2015-10-27 13:49:18 +00:00
Andy Wilkinson
89f8af4e6e Make the configuration of the document root consistent across containers
Previously, if getValidDocumentRoot() returned null, only the embedded
Tomcat container would use a temporary directory. This left Jetty and
Undertow unable to provide a URL for the root of the servlet context,
i.e. servletContext.getResource("/") would return null.

This commit updates the embedded containers for Jetty and Undertow to
behave in the same way as Tomcat. A test has been added to verify that
all three containers can produce a non-null URL for the root of the
servlet context.

Closes gh-2878
2015-10-27 13:41:52 +00:00
Stephane Nicoll
649f7a8011 Add reference to cas client auto-config 2015-10-27 13:22:34 +01:00
Huang YunKun
1c5e445554 Update the samples to use @WebIntegrationTest and randomPort=true
Closes gh-4294
Closes gh-4271
2015-10-27 11:56:01 +00:00
Vedran Pavic
acf6f2193b Fix HTTP health endpoint access restrictions table layout
Closes gh-4304
2015-10-27 11:19:34 +00:00
d10xa
1720941d47 Fix typo in executable jar format appendix
Closes gh-4314
2015-10-27 11:13:08 +00:00
Andy Wilkinson
d9d4cc2ef5 Ensure request context is setup before security filter runs
Previously, OrderedRequestContextFilter was ordered such that it
ran after Spring Security's Filter. This meant that the request
context was unavailable to any Filters in Spring Security's Filter
chain. Specifically, this caused a failure when using @EnableOAuth2Sso
as OAuth2ClientAuthenticationProcessingFilter, which is added to
Spring Security's Filter chain would be unable to use the
request-scoped bean upon which it depends.

This commit updates the order of OrderedRequestContextFilter so that
the request context is set up before Spring Security's Filter runs.
The tests for SampleGitHubApplication have been updated to use
TestRestTemplate rather than MockMvc. This is necessary as the latter,
via ServletTestExecutionListener, automatically populates the request
context holder, masking the fact that the request context filter was
setting it up too late.

Closes gh-4270
2015-10-27 10:56:55 +00:00