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
09b690b3
Commit
09b690b3
authored
Aug 16, 2019
by
Madhura Bhave
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Fix tests
parent
7494a2ba
Changes
2
Hide whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
60 additions
and
26 deletions
+60
-26
RemoteDevToolsAutoConfiguration.java
...vtools/autoconfigure/RemoteDevToolsAutoConfiguration.java
+2
-26
RemoteDevtoolsSecurityConfiguration.java
...ls/autoconfigure/RemoteDevtoolsSecurityConfiguration.java
+58
-0
No files found.
spring-boot-project/spring-boot-devtools/src/main/java/org/springframework/boot/devtools/autoconfigure/RemoteDevToolsAutoConfiguration.java
View file @
09b690b3
...
@@ -28,7 +28,6 @@ import org.springframework.boot.autoconfigure.EnableAutoConfiguration;
...
@@ -28,7 +28,6 @@ import org.springframework.boot.autoconfigure.EnableAutoConfiguration;
import
org.springframework.boot.autoconfigure.condition.ConditionalOnClass
;
import
org.springframework.boot.autoconfigure.condition.ConditionalOnClass
;
import
org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean
;
import
org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean
;
import
org.springframework.boot.autoconfigure.condition.ConditionalOnProperty
;
import
org.springframework.boot.autoconfigure.condition.ConditionalOnProperty
;
import
org.springframework.boot.autoconfigure.security.SecurityProperties
;
import
org.springframework.boot.autoconfigure.security.servlet.SecurityAutoConfiguration
;
import
org.springframework.boot.autoconfigure.security.servlet.SecurityAutoConfiguration
;
import
org.springframework.boot.autoconfigure.web.ServerProperties
;
import
org.springframework.boot.autoconfigure.web.ServerProperties
;
import
org.springframework.boot.autoconfigure.web.ServerProperties.Servlet
;
import
org.springframework.boot.autoconfigure.web.ServerProperties.Servlet
;
...
@@ -48,11 +47,8 @@ import org.springframework.boot.devtools.restart.server.SourceFolderUrlFilter;
...
@@ -48,11 +47,8 @@ import org.springframework.boot.devtools.restart.server.SourceFolderUrlFilter;
import
org.springframework.context.annotation.Bean
;
import
org.springframework.context.annotation.Bean
;
import
org.springframework.context.annotation.Conditional
;
import
org.springframework.context.annotation.Conditional
;
import
org.springframework.context.annotation.Configuration
;
import
org.springframework.context.annotation.Configuration
;
import
org.springframework.co
re.annotation.Order
;
import
org.springframework.co
ntext.annotation.Import
;
import
org.springframework.http.server.ServerHttpRequest
;
import
org.springframework.http.server.ServerHttpRequest
;
import
org.springframework.security.config.annotation.web.builders.HttpSecurity
;
import
org.springframework.security.config.annotation.web.configuration.WebSecurityConfigurerAdapter
;
import
org.springframework.security.web.util.matcher.AntPathRequestMatcher
;
/**
/**
* {@link EnableAutoConfiguration Auto-configuration} for remote development support.
* {@link EnableAutoConfiguration Auto-configuration} for remote development support.
...
@@ -68,6 +64,7 @@ import org.springframework.security.web.util.matcher.AntPathRequestMatcher;
...
@@ -68,6 +64,7 @@ import org.springframework.security.web.util.matcher.AntPathRequestMatcher;
@ConditionalOnProperty
(
prefix
=
"spring.devtools.remote"
,
name
=
"secret"
)
@ConditionalOnProperty
(
prefix
=
"spring.devtools.remote"
,
name
=
"secret"
)
@ConditionalOnClass
({
Filter
.
class
,
ServerHttpRequest
.
class
})
@ConditionalOnClass
({
Filter
.
class
,
ServerHttpRequest
.
class
})
@AutoConfigureAfter
(
SecurityAutoConfiguration
.
class
)
@AutoConfigureAfter
(
SecurityAutoConfiguration
.
class
)
@Import
(
RemoteDevtoolsSecurityConfiguration
.
class
)
@EnableConfigurationProperties
({
ServerProperties
.
class
,
DevToolsProperties
.
class
})
@EnableConfigurationProperties
({
ServerProperties
.
class
,
DevToolsProperties
.
class
})
public
class
RemoteDevToolsAutoConfiguration
{
public
class
RemoteDevToolsAutoConfiguration
{
...
@@ -136,25 +133,4 @@ public class RemoteDevToolsAutoConfiguration {
...
@@ -136,25 +133,4 @@ public class RemoteDevToolsAutoConfiguration {
}
}
@Configuration
@Order
(
SecurityProperties
.
BASIC_AUTH_ORDER
-
1
)
@ConditionalOnClass
(
WebSecurityConfigurerAdapter
.
class
)
static
class
SecurityConfiguration
extends
WebSecurityConfigurerAdapter
{
private
final
String
url
;
SecurityConfiguration
(
DevToolsProperties
devToolsProperties
,
ServerProperties
serverProperties
)
{
Servlet
servlet
=
serverProperties
.
getServlet
();
String
servletContextPath
=
(
servlet
.
getContextPath
()
!=
null
)
?
servlet
.
getContextPath
()
:
""
;
this
.
url
=
servletContextPath
+
devToolsProperties
.
getRemote
().
getContextPath
()
+
"/restart"
;
}
@Override
protected
void
configure
(
HttpSecurity
http
)
throws
Exception
{
http
.
requestMatcher
(
new
AntPathRequestMatcher
(
this
.
url
)).
authorizeRequests
().
anyRequest
().
anonymous
().
and
()
.
csrf
().
disable
();
}
}
}
}
spring-boot-project/spring-boot-devtools/src/main/java/org/springframework/boot/devtools/autoconfigure/RemoteDevtoolsSecurityConfiguration.java
0 → 100644
View file @
09b690b3
/*
* Copyright 2012-2019 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
.
devtools
.
autoconfigure
;
import
org.springframework.boot.autoconfigure.condition.ConditionalOnClass
;
import
org.springframework.boot.autoconfigure.security.SecurityProperties
;
import
org.springframework.boot.autoconfigure.web.ServerProperties
;
import
org.springframework.context.annotation.Configuration
;
import
org.springframework.core.annotation.Order
;
import
org.springframework.security.config.annotation.web.builders.HttpSecurity
;
import
org.springframework.security.config.annotation.web.configuration.WebSecurityConfigurerAdapter
;
import
org.springframework.security.web.util.matcher.AntPathRequestMatcher
;
/**
* Spring Security configuration that allows anonymous access to the remote devtools
* endpoint.
*
* @author Madhura Bhave
*/
@ConditionalOnClass
(
WebSecurityConfigurerAdapter
.
class
)
@Configuration
class
RemoteDevtoolsSecurityConfiguration
{
@Order
(
SecurityProperties
.
BASIC_AUTH_ORDER
-
1
)
@Configuration
static
class
SecurityConfiguration
extends
WebSecurityConfigurerAdapter
{
private
final
String
url
;
SecurityConfiguration
(
DevToolsProperties
devToolsProperties
,
ServerProperties
serverProperties
)
{
ServerProperties
.
Servlet
servlet
=
serverProperties
.
getServlet
();
String
servletContextPath
=
(
servlet
.
getContextPath
()
!=
null
)
?
servlet
.
getContextPath
()
:
""
;
this
.
url
=
servletContextPath
+
devToolsProperties
.
getRemote
().
getContextPath
()
+
"/restart"
;
}
@Override
protected
void
configure
(
HttpSecurity
http
)
throws
Exception
{
http
.
requestMatcher
(
new
AntPathRequestMatcher
(
this
.
url
)).
authorizeRequests
().
anyRequest
().
anonymous
().
and
()
.
csrf
().
disable
();
}
}
}
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