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
6017f2f5
Commit
6017f2f5
authored
Sep 01, 2019
by
Andy Wilkinson
Browse files
Options
Browse Files
Download
Plain Diff
Merge branch '2.1.x'
Closes gh-18083
parents
ad9e8219
ee89e0ef
Changes
5
Hide whitespace changes
Inline
Side-by-side
Showing
5 changed files
with
14 additions
and
28 deletions
+14
-28
SslServerCustomizer.java
...ramework/boot/web/embedded/jetty/SslServerCustomizer.java
+1
-0
AbstractReactiveWebServerFactoryTests.java
...eactive/server/AbstractReactiveWebServerFactoryTests.java
+5
-20
AbstractServletWebServerFactoryTests.java
.../servlet/server/AbstractServletWebServerFactoryTests.java
+8
-8
test.jks
spring-boot-project/spring-boot/src/test/resources/test.jks
+0
-0
test.p12
spring-boot-project/spring-boot/src/test/resources/test.p12
+0
-0
No files found.
spring-boot-project/spring-boot/src/main/java/org/springframework/boot/web/embedded/jetty/SslServerCustomizer.java
View file @
6017f2f5
...
@@ -69,6 +69,7 @@ class SslServerCustomizer implements JettyServerCustomizer {
...
@@ -69,6 +69,7 @@ class SslServerCustomizer implements JettyServerCustomizer {
@Override
@Override
public
void
customize
(
Server
server
)
{
public
void
customize
(
Server
server
)
{
SslContextFactory
.
Server
sslContextFactory
=
new
SslContextFactory
.
Server
();
SslContextFactory
.
Server
sslContextFactory
=
new
SslContextFactory
.
Server
();
sslContextFactory
.
setEndpointIdentificationAlgorithm
(
null
);
configureSsl
(
sslContextFactory
,
this
.
ssl
,
this
.
sslStoreProvider
);
configureSsl
(
sslContextFactory
,
this
.
ssl
,
this
.
sslStoreProvider
);
ServerConnector
connector
=
createConnector
(
server
,
sslContextFactory
,
this
.
address
);
ServerConnector
connector
=
createConnector
(
server
,
sslContextFactory
,
this
.
address
);
server
.
setConnectors
(
new
Connector
[]
{
connector
});
server
.
setConnectors
(
new
Connector
[]
{
connector
});
...
...
spring-boot-project/spring-boot/src/test/java/org/springframework/boot/web/reactive/server/AbstractReactiveWebServerFactoryTests.java
View file @
6017f2f5
...
@@ -21,15 +21,11 @@ import java.io.FileInputStream;
...
@@ -21,15 +21,11 @@ import java.io.FileInputStream;
import
java.net.InetSocketAddress
;
import
java.net.InetSocketAddress
;
import
java.nio.charset.StandardCharsets
;
import
java.nio.charset.StandardCharsets
;
import
java.security.KeyStore
;
import
java.security.KeyStore
;
import
java.security.PrivateKey
;
import
java.security.cert.X509Certificate
;
import
java.time.Duration
;
import
java.time.Duration
;
import
java.util.Arrays
;
import
java.util.Arrays
;
import
javax.net.ssl.KeyManager
;
import
javax.net.ssl.KeyManagerFactory
;
import
javax.net.ssl.KeyManagerFactory
;
import
javax.net.ssl.SSLException
;
import
javax.net.ssl.SSLException
;
import
javax.net.ssl.X509KeyManager
;
import
io.netty.channel.ChannelHandlerContext
;
import
io.netty.channel.ChannelHandlerContext
;
import
io.netty.channel.ChannelInboundHandlerAdapter
;
import
io.netty.channel.ChannelInboundHandlerAdapter
;
...
@@ -165,22 +161,11 @@ public abstract class AbstractReactiveWebServerFactoryTests {
...
@@ -165,22 +161,11 @@ public abstract class AbstractReactiveWebServerFactoryTests {
KeyManagerFactory
clientKeyManagerFactory
=
KeyManagerFactory
KeyManagerFactory
clientKeyManagerFactory
=
KeyManagerFactory
.
getInstance
(
KeyManagerFactory
.
getDefaultAlgorithm
());
.
getInstance
(
KeyManagerFactory
.
getDefaultAlgorithm
());
clientKeyManagerFactory
.
init
(
clientKeyStore
,
"password"
.
toCharArray
());
clientKeyManagerFactory
.
init
(
clientKeyStore
,
"password"
.
toCharArray
());
for
(
KeyManager
keyManager
:
clientKeyManagerFactory
.
getKeyManagers
())
{
SslContextBuilder
builder
=
SslContextBuilder
.
forClient
().
sslProvider
(
SslProvider
.
JDK
)
if
(
keyManager
instanceof
X509KeyManager
)
{
.
trustManager
(
InsecureTrustManagerFactory
.
INSTANCE
).
keyManager
(
clientKeyManagerFactory
);
X509KeyManager
x509KeyManager
=
(
X509KeyManager
)
keyManager
;
HttpClient
client
=
HttpClient
.
create
().
wiretap
(
true
)
PrivateKey
privateKey
=
x509KeyManager
.
getPrivateKey
(
"spring-boot"
);
.
secure
((
sslContextSpec
)
->
sslContextSpec
.
sslContext
(
builder
));
if
(
privateKey
!=
null
)
{
return
new
ReactorClientHttpConnector
(
client
);
X509Certificate
[]
certificateChain
=
x509KeyManager
.
getCertificateChain
(
"spring-boot"
);
SslContextBuilder
builder
=
SslContextBuilder
.
forClient
().
sslProvider
(
SslProvider
.
JDK
)
.
trustManager
(
InsecureTrustManagerFactory
.
INSTANCE
)
.
keyManager
(
privateKey
,
certificateChain
);
HttpClient
client
=
HttpClient
.
create
().
wiretap
(
true
)
.
secure
((
sslContextSpec
)
->
sslContextSpec
.
sslContext
(
builder
));
return
new
ReactorClientHttpConnector
(
client
);
}
}
}
throw
new
IllegalStateException
(
"Key with alias 'spring-boot' not found"
);
}
}
protected
void
testClientAuthSuccess
(
Ssl
sslConfiguration
,
ReactorClientHttpConnector
clientConnector
)
{
protected
void
testClientAuthSuccess
(
Ssl
sslConfiguration
,
ReactorClientHttpConnector
clientConnector
)
{
...
...
spring-boot-project/spring-boot/src/test/java/org/springframework/boot/web/servlet/server/AbstractServletWebServerFactoryTests.java
View file @
6017f2f5
...
@@ -397,7 +397,7 @@ public abstract class AbstractServletWebServerFactoryTests {
...
@@ -397,7 +397,7 @@ public abstract class AbstractServletWebServerFactoryTests {
new
ExampleServlet
(
true
,
false
),
"/hello"
);
new
ExampleServlet
(
true
,
false
),
"/hello"
);
this
.
webServer
=
factory
.
getWebServer
(
registration
);
this
.
webServer
=
factory
.
getWebServer
(
registration
);
this
.
webServer
.
start
();
this
.
webServer
.
start
();
TrustStrategy
trustStrategy
=
new
SerialNumberValidatingTrustSelfSignedStrategy
(
"
5c7ae101
"
);
TrustStrategy
trustStrategy
=
new
SerialNumberValidatingTrustSelfSignedStrategy
(
"
3a3aaec8
"
);
SSLContext
sslContext
=
new
SSLContextBuilder
().
loadTrustMaterial
(
null
,
trustStrategy
).
build
();
SSLContext
sslContext
=
new
SSLContextBuilder
().
loadTrustMaterial
(
null
,
trustStrategy
).
build
();
HttpClient
httpClient
=
HttpClients
.
custom
().
setSSLSocketFactory
(
new
SSLConnectionSocketFactory
(
sslContext
))
HttpClient
httpClient
=
HttpClients
.
custom
().
setSSLSocketFactory
(
new
SSLConnectionSocketFactory
(
sslContext
))
.
build
();
.
build
();
...
@@ -459,7 +459,7 @@ public abstract class AbstractServletWebServerFactoryTests {
...
@@ -459,7 +459,7 @@ public abstract class AbstractServletWebServerFactoryTests {
keyStore
.
load
(
new
FileInputStream
(
new
File
(
"src/test/resources/test.p12"
)),
"secret"
.
toCharArray
());
keyStore
.
load
(
new
FileInputStream
(
new
File
(
"src/test/resources/test.p12"
)),
"secret"
.
toCharArray
());
SSLConnectionSocketFactory
socketFactory
=
new
SSLConnectionSocketFactory
(
SSLConnectionSocketFactory
socketFactory
=
new
SSLConnectionSocketFactory
(
new
SSLContextBuilder
().
loadTrustMaterial
(
null
,
new
TrustSelfSignedStrategy
())
new
SSLContextBuilder
().
loadTrustMaterial
(
null
,
new
TrustSelfSignedStrategy
())
.
loadKeyMaterial
(
keyStore
,
"secret"
.
toCharArray
()
,
(
aliases
,
socket
)
->
"spring-boot"
).
build
());
.
loadKeyMaterial
(
keyStore
,
"secret"
.
toCharArray
()).
build
());
HttpClient
httpClient
=
HttpClients
.
custom
().
setSSLSocketFactory
(
socketFactory
).
build
();
HttpClient
httpClient
=
HttpClients
.
custom
().
setSSLSocketFactory
(
socketFactory
).
build
();
HttpComponentsClientHttpRequestFactory
requestFactory
=
new
HttpComponentsClientHttpRequestFactory
(
httpClient
);
HttpComponentsClientHttpRequestFactory
requestFactory
=
new
HttpComponentsClientHttpRequestFactory
(
httpClient
);
assertThat
(
getResponse
(
getLocalUrl
(
"https"
,
"/test.txt"
),
requestFactory
)).
isEqualTo
(
"test"
);
assertThat
(
getResponse
(
getLocalUrl
(
"https"
,
"/test.txt"
),
requestFactory
)).
isEqualTo
(
"test"
);
...
@@ -474,9 +474,9 @@ public abstract class AbstractServletWebServerFactoryTests {
...
@@ -474,9 +474,9 @@ public abstract class AbstractServletWebServerFactoryTests {
this
.
webServer
.
start
();
this
.
webServer
.
start
();
KeyStore
keyStore
=
KeyStore
.
getInstance
(
KeyStore
.
getDefaultType
());
KeyStore
keyStore
=
KeyStore
.
getInstance
(
KeyStore
.
getDefaultType
());
keyStore
.
load
(
new
FileInputStream
(
new
File
(
"src/test/resources/test.jks"
)),
"secret"
.
toCharArray
());
keyStore
.
load
(
new
FileInputStream
(
new
File
(
"src/test/resources/test.jks"
)),
"secret"
.
toCharArray
());
SSLConnectionSocketFactory
socketFactory
=
new
SSLConnectionSocketFactory
(
new
SSLContextBuilder
()
SSLConnectionSocketFactory
socketFactory
=
new
SSLConnectionSocketFactory
(
.
loadTrustMaterial
(
null
,
new
TrustSelfSignedStrategy
())
new
SSLContextBuilder
()
.
loadTrustMaterial
(
null
,
new
TrustSelfSignedStrategy
())
.
loadKeyMaterial
(
keyStore
,
"password"
.
toCharArray
(),
(
aliases
,
socket
)
->
"spring-boot"
).
build
());
.
loadKeyMaterial
(
keyStore
,
"password"
.
toCharArray
()
).
build
());
HttpClient
httpClient
=
HttpClients
.
custom
().
setSSLSocketFactory
(
socketFactory
).
build
();
HttpClient
httpClient
=
HttpClients
.
custom
().
setSSLSocketFactory
(
socketFactory
).
build
();
HttpComponentsClientHttpRequestFactory
requestFactory
=
new
HttpComponentsClientHttpRequestFactory
(
httpClient
);
HttpComponentsClientHttpRequestFactory
requestFactory
=
new
HttpComponentsClientHttpRequestFactory
(
httpClient
);
assertThat
(
getResponse
(
getLocalUrl
(
"https"
,
"/test.txt"
),
requestFactory
)).
isEqualTo
(
"test"
);
assertThat
(
getResponse
(
getLocalUrl
(
"https"
,
"/test.txt"
),
requestFactory
)).
isEqualTo
(
"test"
);
...
@@ -545,9 +545,9 @@ public abstract class AbstractServletWebServerFactoryTests {
...
@@ -545,9 +545,9 @@ public abstract class AbstractServletWebServerFactoryTests {
this
.
webServer
.
start
();
this
.
webServer
.
start
();
KeyStore
keyStore
=
KeyStore
.
getInstance
(
KeyStore
.
getDefaultType
());
KeyStore
keyStore
=
KeyStore
.
getInstance
(
KeyStore
.
getDefaultType
());
keyStore
.
load
(
new
FileInputStream
(
new
File
(
"src/test/resources/test.jks"
)),
"secret"
.
toCharArray
());
keyStore
.
load
(
new
FileInputStream
(
new
File
(
"src/test/resources/test.jks"
)),
"secret"
.
toCharArray
());
SSLConnectionSocketFactory
socketFactory
=
new
SSLConnectionSocketFactory
(
new
SSLContextBuilder
()
SSLConnectionSocketFactory
socketFactory
=
new
SSLConnectionSocketFactory
(
.
loadTrustMaterial
(
null
,
new
TrustSelfSignedStrategy
())
new
SSLContextBuilder
()
.
loadTrustMaterial
(
null
,
new
TrustSelfSignedStrategy
())
.
loadKeyMaterial
(
keyStore
,
"password"
.
toCharArray
(),
(
aliases
,
socket
)
->
"spring-boot"
).
build
());
.
loadKeyMaterial
(
keyStore
,
"password"
.
toCharArray
()
).
build
());
HttpClient
httpClient
=
HttpClients
.
custom
().
setSSLSocketFactory
(
socketFactory
).
build
();
HttpClient
httpClient
=
HttpClients
.
custom
().
setSSLSocketFactory
(
socketFactory
).
build
();
HttpComponentsClientHttpRequestFactory
requestFactory
=
new
HttpComponentsClientHttpRequestFactory
(
httpClient
);
HttpComponentsClientHttpRequestFactory
requestFactory
=
new
HttpComponentsClientHttpRequestFactory
(
httpClient
);
assertThat
(
getResponse
(
getLocalUrl
(
"https"
,
"/test.txt"
),
requestFactory
)).
isEqualTo
(
"test"
);
assertThat
(
getResponse
(
getLocalUrl
(
"https"
,
"/test.txt"
),
requestFactory
)).
isEqualTo
(
"test"
);
...
...
spring-boot-project/spring-boot/src/test/resources/test.jks
View file @
6017f2f5
No preview for this file type
spring-boot-project/spring-boot/src/test/resources/test.p12
View file @
6017f2f5
No preview for this file type
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