Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Submit feedback
Sign in / Register
Toggle navigation
S
spring-boot
Project
Project
Details
Activity
Releases
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
DEMO
spring-boot
Commits
2f721400
Commit
2f721400
authored
Nov 17, 2013
by
Dave Syer
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Update Spring to catch SPR-11069
parent
0f85f319
Changes
6
Hide whitespace changes
Inline
Side-by-side
Showing
6 changed files
with
61 additions
and
17 deletions
+61
-17
SecurityAutoConfiguration.java
...boot/actuate/autoconfigure/SecurityAutoConfiguration.java
+1
-3
SecurityAutoConfigurationTests.java
...actuate/autoconfigure/SecurityAutoConfigurationTests.java
+3
-10
OnBeanCondition.java
...amework/boot/autoconfigure/condition/OnBeanCondition.java
+1
-3
ConditionalOnMissingBeanTests.java
...utoconfigure/condition/ConditionalOnMissingBeanTests.java
+44
-0
factorybean.xml
...ingframework/boot/autoconfigure/condition/factorybean.xml
+11
-0
pom.xml
spring-boot-dependencies/pom.xml
+1
-1
No files found.
spring-boot-actuator/src/main/java/org/springframework/boot/actuate/autoconfigure/SecurityAutoConfiguration.java
View file @
2f721400
...
@@ -96,9 +96,7 @@ import org.springframework.security.web.util.matcher.AnyRequestMatcher;
...
@@ -96,9 +96,7 @@ import org.springframework.security.web.util.matcher.AnyRequestMatcher;
*/
*/
@Configuration
@Configuration
@ConditionalOnClass
({
EnableWebSecurity
.
class
})
@ConditionalOnClass
({
EnableWebSecurity
.
class
})
// TODO: re-enable this when SPR-11069 is fixed
@ConditionalOnMissingBean
(
annotation
=
EnableWebSecurity
.
class
)
// @ConditionalOnMissingBean(annotation = EnableWebSecurity.class)
@ConditionalOnMissingBean
(
SecurityAutoConfiguration
.
class
)
@EnableConfigurationProperties
@EnableConfigurationProperties
public
class
SecurityAutoConfiguration
{
public
class
SecurityAutoConfiguration
{
...
...
spring-boot-actuator/src/test/java/org/springframework/boot/actuate/autoconfigure/SecurityAutoConfigurationTests.java
View file @
2f721400
...
@@ -21,7 +21,6 @@ import org.springframework.boot.TestUtils;
...
@@ -21,7 +21,6 @@ import org.springframework.boot.TestUtils;
import
org.springframework.boot.autoconfigure.PropertyPlaceholderAutoConfiguration
;
import
org.springframework.boot.autoconfigure.PropertyPlaceholderAutoConfiguration
;
import
org.springframework.context.annotation.Bean
;
import
org.springframework.context.annotation.Bean
;
import
org.springframework.context.annotation.Configuration
;
import
org.springframework.context.annotation.Configuration
;
import
org.springframework.context.annotation.Import
;
import
org.springframework.mock.web.MockServletContext
;
import
org.springframework.mock.web.MockServletContext
;
import
org.springframework.security.authentication.AuthenticationManager
;
import
org.springframework.security.authentication.AuthenticationManager
;
import
org.springframework.security.authentication.TestingAuthenticationToken
;
import
org.springframework.security.authentication.TestingAuthenticationToken
;
...
@@ -46,7 +45,7 @@ public class SecurityAutoConfigurationTests {
...
@@ -46,7 +45,7 @@ public class SecurityAutoConfigurationTests {
public
void
testWebConfiguration
()
throws
Exception
{
public
void
testWebConfiguration
()
throws
Exception
{
this
.
context
=
new
AnnotationConfigWebApplicationContext
();
this
.
context
=
new
AnnotationConfigWebApplicationContext
();
this
.
context
.
setServletContext
(
new
MockServletContext
());
this
.
context
.
setServletContext
(
new
MockServletContext
());
this
.
context
.
register
(
SecurityConfiguration
.
class
,
this
.
context
.
register
(
Security
Auto
Configuration
.
class
,
EndpointAutoConfiguration
.
class
,
EndpointAutoConfiguration
.
class
,
ManagementServerPropertiesAutoConfiguration
.
class
,
ManagementServerPropertiesAutoConfiguration
.
class
,
PropertyPlaceholderAutoConfiguration
.
class
);
PropertyPlaceholderAutoConfiguration
.
class
);
...
@@ -61,7 +60,7 @@ public class SecurityAutoConfigurationTests {
...
@@ -61,7 +60,7 @@ public class SecurityAutoConfigurationTests {
public
void
testDisableIgnoredStaticApplicationPaths
()
throws
Exception
{
public
void
testDisableIgnoredStaticApplicationPaths
()
throws
Exception
{
this
.
context
=
new
AnnotationConfigWebApplicationContext
();
this
.
context
=
new
AnnotationConfigWebApplicationContext
();
this
.
context
.
setServletContext
(
new
MockServletContext
());
this
.
context
.
setServletContext
(
new
MockServletContext
());
this
.
context
.
register
(
SecurityConfiguration
.
class
,
this
.
context
.
register
(
Security
Auto
Configuration
.
class
,
EndpointAutoConfiguration
.
class
,
EndpointAutoConfiguration
.
class
,
ManagementServerPropertiesAutoConfiguration
.
class
,
ManagementServerPropertiesAutoConfiguration
.
class
,
PropertyPlaceholderAutoConfiguration
.
class
);
PropertyPlaceholderAutoConfiguration
.
class
);
...
@@ -76,7 +75,7 @@ public class SecurityAutoConfigurationTests {
...
@@ -76,7 +75,7 @@ public class SecurityAutoConfigurationTests {
public
void
testDisableBasicAuthOnApplicationPaths
()
throws
Exception
{
public
void
testDisableBasicAuthOnApplicationPaths
()
throws
Exception
{
this
.
context
=
new
AnnotationConfigWebApplicationContext
();
this
.
context
=
new
AnnotationConfigWebApplicationContext
();
this
.
context
.
setServletContext
(
new
MockServletContext
());
this
.
context
.
setServletContext
(
new
MockServletContext
());
this
.
context
.
register
(
SecurityConfiguration
.
class
,
this
.
context
.
register
(
Security
Auto
Configuration
.
class
,
EndpointAutoConfiguration
.
class
,
EndpointAutoConfiguration
.
class
,
ManagementServerPropertiesAutoConfiguration
.
class
,
ManagementServerPropertiesAutoConfiguration
.
class
,
PropertyPlaceholderAutoConfiguration
.
class
);
PropertyPlaceholderAutoConfiguration
.
class
);
...
@@ -100,12 +99,6 @@ public class SecurityAutoConfigurationTests {
...
@@ -100,12 +99,6 @@ public class SecurityAutoConfigurationTests {
this
.
context
.
getBean
(
AuthenticationManager
.
class
));
this
.
context
.
getBean
(
AuthenticationManager
.
class
));
}
}
// Use this while SPR-11069 prevents us from checking OnMissingBean by annotation
@Configuration
@Import
(
SecurityAutoConfiguration
.
class
)
protected
static
class
SecurityConfiguration
{
}
@Configuration
@Configuration
protected
static
class
TestConfiguration
{
protected
static
class
TestConfiguration
{
...
...
spring-boot-autoconfigure/src/main/java/org/springframework/boot/autoconfigure/condition/OnBeanCondition.java
View file @
2f721400
...
@@ -21,7 +21,6 @@ import java.lang.reflect.Method;
...
@@ -21,7 +21,6 @@ import java.lang.reflect.Method;
import
java.util.ArrayList
;
import
java.util.ArrayList
;
import
java.util.Arrays
;
import
java.util.Arrays
;
import
java.util.List
;
import
java.util.List
;
import
java.util.Map
;
import
org.springframework.beans.factory.BeanFactory
;
import
org.springframework.beans.factory.BeanFactory
;
import
org.springframework.beans.factory.BeanFactoryUtils
;
import
org.springframework.beans.factory.BeanFactoryUtils
;
...
@@ -154,8 +153,7 @@ class OnBeanCondition extends SpringBootCondition implements ConfigurationCondit
...
@@ -154,8 +153,7 @@ class OnBeanCondition extends SpringBootCondition implements ConfigurationCondit
@SuppressWarnings
(
"unchecked"
)
@SuppressWarnings
(
"unchecked"
)
Class
<?
extends
Annotation
>
typeClass
=
(
Class
<?
extends
Annotation
>)
ClassUtils
Class
<?
extends
Annotation
>
typeClass
=
(
Class
<?
extends
Annotation
>)
ClassUtils
.
forName
(
type
,
classLoader
);
.
forName
(
type
,
classLoader
);
Map
<
String
,
Object
>
annotated
=
beanFactory
.
getBeansWithAnnotation
(
typeClass
);
result
=
beanFactory
.
getBeanNamesForAnnotation
(
typeClass
);
result
=
annotated
.
keySet
().
toArray
(
new
String
[
annotated
.
size
()]);
if
(
considerHierarchy
)
{
if
(
considerHierarchy
)
{
if
(
beanFactory
.
getParentBeanFactory
()
instanceof
ConfigurableListableBeanFactory
)
{
if
(
beanFactory
.
getParentBeanFactory
()
instanceof
ConfigurableListableBeanFactory
)
{
String
[]
parentResult
=
getBeanNamesForAnnotation
(
String
[]
parentResult
=
getBeanNamesForAnnotation
(
...
...
spring-boot-autoconfigure/src/test/java/org/springframework/boot/autoconfigure/condition/ConditionalOnMissingBeanTests.java
View file @
2f721400
...
@@ -17,10 +17,14 @@
...
@@ -17,10 +17,14 @@
package
org
.
springframework
.
boot
.
autoconfigure
.
condition
;
package
org
.
springframework
.
boot
.
autoconfigure
.
condition
;
import
org.junit.Test
;
import
org.junit.Test
;
import
org.springframework.beans.factory.FactoryBean
;
import
org.springframework.boot.autoconfigure.PropertyPlaceholderAutoConfiguration
;
import
org.springframework.context.annotation.AnnotationConfigApplicationContext
;
import
org.springframework.context.annotation.AnnotationConfigApplicationContext
;
import
org.springframework.context.annotation.Bean
;
import
org.springframework.context.annotation.Bean
;
import
org.springframework.context.annotation.Configuration
;
import
org.springframework.context.annotation.Configuration
;
import
org.springframework.context.annotation.ImportResource
;
import
org.springframework.scheduling.annotation.EnableScheduling
;
import
org.springframework.scheduling.annotation.EnableScheduling
;
import
org.springframework.util.Assert
;
import
static
org
.
hamcrest
.
Matchers
.
equalTo
;
import
static
org
.
hamcrest
.
Matchers
.
equalTo
;
import
static
org
.
junit
.
Assert
.
assertEquals
;
import
static
org
.
junit
.
Assert
.
assertEquals
;
...
@@ -93,6 +97,18 @@ public class ConditionalOnMissingBeanTests {
...
@@ -93,6 +97,18 @@ public class ConditionalOnMissingBeanTests {
assertEquals
(
"foo"
,
this
.
context
.
getBean
(
"foo"
));
assertEquals
(
"foo"
,
this
.
context
.
getBean
(
"foo"
));
}
}
// Rigorous test for SPR-11069
@Test
public
void
testAnnotationOnMissingBeanConditionWithEagerFactoryBean
()
{
this
.
context
.
register
(
FooConfiguration
.
class
,
OnAnnotationConfiguration
.
class
,
ConfigurationWithFactoryBean
.
class
,
PropertyPlaceholderAutoConfiguration
.
class
);
this
.
context
.
refresh
();
assertFalse
(
this
.
context
.
containsBean
(
"bar"
));
assertTrue
(
this
.
context
.
containsBean
(
"example"
));
assertEquals
(
"foo"
,
this
.
context
.
getBean
(
"foo"
));
}
@Configuration
@Configuration
@ConditionalOnMissingBean
(
name
=
"foo"
)
@ConditionalOnMissingBean
(
name
=
"foo"
)
protected
static
class
OnBeanNameConfiguration
{
protected
static
class
OnBeanNameConfiguration
{
...
@@ -111,6 +127,11 @@ public class ConditionalOnMissingBeanTests {
...
@@ -111,6 +127,11 @@ public class ConditionalOnMissingBeanTests {
}
}
}
}
@Configuration
@ImportResource
(
"org/springframework/boot/autoconfigure/condition/factorybean.xml"
)
protected
static
class
ConfigurationWithFactoryBean
{
}
@Configuration
@Configuration
@EnableScheduling
@EnableScheduling
protected
static
class
FooConfiguration
{
protected
static
class
FooConfiguration
{
...
@@ -159,4 +180,27 @@ public class ConditionalOnMissingBeanTests {
...
@@ -159,4 +180,27 @@ public class ConditionalOnMissingBeanTests {
public
static
class
ExampleBean
{
public
static
class
ExampleBean
{
}
}
public
static
class
ExampleFactoryBean
implements
FactoryBean
<
ExampleBean
>
{
public
ExampleFactoryBean
(
String
value
)
{
Assert
.
state
(!
value
.
contains
(
"$"
));
}
@Override
public
ExampleBean
getObject
()
throws
Exception
{
return
new
ExampleBean
();
}
@Override
public
Class
<?>
getObjectType
()
{
return
ExampleBean
.
class
;
}
@Override
public
boolean
isSingleton
()
{
return
false
;
}
}
}
}
spring-boot-autoconfigure/src/test/resources/org/springframework/boot/autoconfigure/condition/factorybean.xml
0 → 100644
View file @
2f721400
<?xml version="1.0" encoding="UTF-8"?>
<beans
xmlns=
"http://www.springframework.org/schema/beans"
xmlns:xsi=
"http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation=
"http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd"
>
<bean
id=
"example"
class=
"org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBeanTests.ExampleFactoryBean"
>
<constructor-arg
value=
"${value:bar}"
/>
</bean>
</beans>
spring-boot-dependencies/pom.xml
View file @
2f721400
...
@@ -34,7 +34,7 @@
...
@@ -34,7 +34,7 @@
<slf4j.version>
1.7.5
</slf4j.version>
<slf4j.version>
1.7.5
</slf4j.version>
<snakeyaml.version>
1.12
</snakeyaml.version>
<snakeyaml.version>
1.12
</snakeyaml.version>
<spock.version>
0.7-groovy-2.0
</spock.version>
<spock.version>
0.7-groovy-2.0
</spock.version>
<spring.version>
4.0.0.
RC1
</spring.version>
<spring.version>
4.0.0.
BUILD-SNAPSHOT
</spring.version>
<spring-integration.version>
2.2.4.RELEASE
</spring-integration.version>
<spring-integration.version>
2.2.4.RELEASE
</spring-integration.version>
<spring-integration-groovydsl.version>
1.0.0.M1
</spring-integration-groovydsl.version>
<spring-integration-groovydsl.version>
1.0.0.M1
</spring-integration-groovydsl.version>
<spring-batch.version>
2.2.2.RELEASE
</spring-batch.version>
<spring-batch.version>
2.2.2.RELEASE
</spring-batch.version>
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment