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
ce68f1a0
Commit
ce68f1a0
authored
Jun 10, 2020
by
Andy Wilkinson
Browse files
Options
Browse Files
Download
Plain Diff
Merge branch '2.2.x' into 2.3.x
Closes gh-21837
parents
6534a9ab
48acaa4b
Changes
4
Hide whitespace changes
Inline
Side-by-side
Showing
4 changed files
with
116 additions
and
2 deletions
+116
-2
spring.factories
...utoconfigure/src/main/resources/META-INF/spring.factories
+1
-0
AfterSecurityFilter.java
...utoconfigure/web/servlet/mockmvc/AfterSecurityFilter.java
+55
-0
AutoConfigureMockMvcSecurityFilterOrderingIntegrationTests.java
...nfigureMockMvcSecurityFilterOrderingIntegrationTests.java
+51
-0
ExampleFilter.java
...test/autoconfigure/web/servlet/mockmvc/ExampleFilter.java
+9
-2
No files found.
spring-boot-project/spring-boot-test-autoconfigure/src/main/resources/META-INF/spring.factories
View file @
ce68f1a0
...
...
@@ -124,6 +124,7 @@ org.springframework.boot.test.autoconfigure.web.servlet.MockMvcWebDriverAutoConf
org.springframework.boot.autoconfigure.security.oauth2.client.servlet.OAuth2ClientAutoConfiguration,\
org.springframework.boot.autoconfigure.security.oauth2.resource.servlet.OAuth2ResourceServerAutoConfiguration,\
org.springframework.boot.autoconfigure.security.servlet.SecurityAutoConfiguration,\
org.springframework.boot.autoconfigure.security.servlet.SecurityFilterAutoConfiguration,\
org.springframework.boot.autoconfigure.security.servlet.UserDetailsServiceAutoConfiguration,\
org.springframework.boot.test.autoconfigure.web.servlet.MockMvcSecurityConfiguration
...
...
spring-boot-project/spring-boot-test-autoconfigure/src/test/java/org/springframework/boot/test/autoconfigure/web/servlet/mockmvc/AfterSecurityFilter.java
0 → 100644
View file @
ce68f1a0
/*
* Copyright 2012-2020 the original author or authors.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* https://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package
org
.
springframework
.
boot
.
test
.
autoconfigure
.
web
.
servlet
.
mockmvc
;
import
java.io.IOException
;
import
java.security.Principal
;
import
javax.servlet.Filter
;
import
javax.servlet.FilterChain
;
import
javax.servlet.ServletException
;
import
javax.servlet.ServletRequest
;
import
javax.servlet.ServletResponse
;
import
javax.servlet.http.HttpServletRequest
;
import
org.springframework.boot.autoconfigure.security.SecurityProperties
;
import
org.springframework.core.Ordered
;
/**
* {@link Filter} that is ordered to run after Spring Security's filter.
*
* @author Andy Wilkinson
*/
public
class
AfterSecurityFilter
implements
Filter
,
Ordered
{
@Override
public
int
getOrder
()
{
return
SecurityProperties
.
DEFAULT_FILTER_ORDER
+
1
;
}
@Override
public
void
doFilter
(
ServletRequest
request
,
ServletResponse
response
,
FilterChain
chain
)
throws
IOException
,
ServletException
{
Principal
principal
=
((
HttpServletRequest
)
request
).
getUserPrincipal
();
if
(
principal
==
null
)
{
throw
new
ServletException
(
"No user principal"
);
}
response
.
getWriter
().
write
(
principal
.
getName
());
response
.
getWriter
().
flush
();
}
}
spring-boot-project/spring-boot-test-autoconfigure/src/test/java/org/springframework/boot/test/autoconfigure/web/servlet/mockmvc/AutoConfigureMockMvcSecurityFilterOrderingIntegrationTests.java
0 → 100644
View file @
ce68f1a0
/*
* Copyright 2012-2020 the original author or authors.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* https://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package
org
.
springframework
.
boot
.
test
.
autoconfigure
.
web
.
servlet
.
mockmvc
;
import
org.junit.jupiter.api.Test
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.boot.test.autoconfigure.web.servlet.AutoConfigureMockMvc
;
import
org.springframework.boot.test.autoconfigure.web.servlet.WebMvcTest
;
import
org.springframework.context.annotation.Import
;
import
org.springframework.security.test.context.support.WithMockUser
;
import
org.springframework.test.web.servlet.MockMvc
;
import
static
org
.
springframework
.
test
.
web
.
servlet
.
request
.
MockMvcRequestBuilders
.
get
;
import
static
org
.
springframework
.
test
.
web
.
servlet
.
result
.
MockMvcResultMatchers
.
content
;
import
static
org
.
springframework
.
test
.
web
.
servlet
.
result
.
MockMvcResultMatchers
.
status
;
/**
* Tests for {@link AutoConfigureMockMvc @AutoConfigureMockMvc} and the ordering of Spring
* Security's filter
*
* @author Andy Wilkinson
*/
@WebMvcTest
@WithMockUser
(
username
=
"user"
,
password
=
"secret"
)
@Import
(
AfterSecurityFilter
.
class
)
class
AutoConfigureMockMvcSecurityFilterOrderingIntegrationTests
{
@Autowired
private
MockMvc
mvc
;
@Test
void
afterSecurityFilterShouldFindAUserPrincipal
()
throws
Exception
{
this
.
mvc
.
perform
(
get
(
"/one"
)).
andExpect
(
status
().
isOk
()).
andExpect
(
content
().
string
(
"user"
));
}
}
spring-boot-project/spring-boot-test-autoconfigure/src/test/java/org/springframework/boot/test/autoconfigure/web/servlet/mockmvc/ExampleFilter.java
View file @
ce68f1a0
/*
* Copyright 2012-20
19
the original author or authors.
* Copyright 2012-20
20
the original author or authors.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
...
...
@@ -26,7 +26,9 @@ import javax.servlet.ServletRequest;
import
javax.servlet.ServletResponse
;
import
javax.servlet.http.HttpServletResponse
;
import
org.springframework.boot.autoconfigure.security.SecurityProperties
;
import
org.springframework.boot.test.autoconfigure.web.servlet.WebMvcTest
;
import
org.springframework.core.Ordered
;
import
org.springframework.stereotype.Component
;
/**
...
...
@@ -35,7 +37,7 @@ import org.springframework.stereotype.Component;
* @author Phillip Webb
*/
@Component
public
class
ExampleFilter
implements
Filter
{
public
class
ExampleFilter
implements
Filter
,
Ordered
{
@Override
public
void
init
(
FilterConfig
filterConfig
)
throws
ServletException
{
...
...
@@ -52,4 +54,9 @@ public class ExampleFilter implements Filter {
public
void
destroy
()
{
}
@Override
public
int
getOrder
()
{
return
SecurityProperties
.
DEFAULT_FILTER_ORDER
-
1
;
}
}
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