Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
S
spring-cloud-netflix
Project
Overview
Details
Activity
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
openSource
spring-cloud-netflix
Commits
d914406c
Commit
d914406c
authored
Jun 01, 2017
by
Ryan Baxter
Committed by
GitHub
Jun 01, 2017
Browse files
Options
Browse Files
Download
Plain Diff
Merge pull request #2000 from rpahli/master
use only default https ports for https check
parents
31a3ff61
a1d08903
Hide whitespace changes
Inline
Side-by-side
Showing
5 changed files
with
176 additions
and
5 deletions
+176
-5
DefaultServerIntrospector.java
...ework/cloud/netflix/ribbon/DefaultServerIntrospector.java
+15
-4
RibbonAutoConfiguration.java
...amework/cloud/netflix/ribbon/RibbonAutoConfiguration.java
+1
-1
ServerIntrospectorProperties.java
...rk/cloud/netflix/ribbon/ServerIntrospectorProperties.java
+32
-0
DefaultServerIntrospectorDefaultTest.java
.../netflix/ribbon/DefaultServerIntrospectorDefaultTest.java
+63
-0
DefaultServerIntrospectorTest.java
...k/cloud/netflix/ribbon/DefaultServerIntrospectorTest.java
+65
-0
No files found.
spring-cloud-netflix-core/src/main/java/org/springframework/cloud/netflix/ribbon/DefaultServerIntrospector.java
View file @
d914406c
...
...
@@ -16,19 +16,30 @@
package
org
.
springframework
.
cloud
.
netflix
.
ribbon
;
import
com.netflix.loadbalancer.Server
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.beans.factory.annotation.Value
;
import
org.springframework.context.annotation.Configuration
;
import
java.util.Collections
;
import
java.util.List
;
import
java.util.Map
;
import
com.netflix.loadbalancer.Server
;
/**
* @author Spencer Gibb
*/
public
class
DefaultServerIntrospector
implements
ServerIntrospector
{
private
ServerIntrospectorProperties
serverIntrospectorProperties
=
new
ServerIntrospectorProperties
();
@Autowired
(
required
=
false
)
public
void
setServerIntrospectorProperties
(
ServerIntrospectorProperties
serverIntrospectorProperties
){
this
.
serverIntrospectorProperties
=
serverIntrospectorProperties
;
}
@Override
public
boolean
isSecure
(
Server
server
)
{
// Can we do better?
return
(
""
+
server
.
getPort
()).
endsWith
(
"443"
);
return
serverIntrospectorProperties
.
getSecurePorts
().
contains
(
server
.
getPort
());
}
@Override
...
...
spring-cloud-netflix-core/src/main/java/org/springframework/cloud/netflix/ribbon/RibbonAutoConfiguration.java
View file @
d914406c
...
...
@@ -61,7 +61,7 @@ import com.netflix.ribbon.Ribbon;
@RibbonClients
@AutoConfigureAfter
(
name
=
"org.springframework.cloud.netflix.eureka.EurekaClientAutoConfiguration"
)
@AutoConfigureBefore
({
LoadBalancerAutoConfiguration
.
class
,
AsyncLoadBalancerAutoConfiguration
.
class
})
@EnableConfigurationProperties
(
RibbonEagerLoadProperties
.
class
)
@EnableConfigurationProperties
(
{
RibbonEagerLoadProperties
.
class
,
ServerIntrospectorProperties
.
class
}
)
public
class
RibbonAutoConfiguration
{
@Autowired
(
required
=
false
)
...
...
spring-cloud-netflix-core/src/main/java/org/springframework/cloud/netflix/ribbon/ServerIntrospectorProperties.java
0 → 100644
View file @
d914406c
/*
* Copyright 2013-2017 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
*
* http://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
.
cloud
.
netflix
.
ribbon
;
import
lombok.Data
;
import
org.springframework.boot.context.properties.ConfigurationProperties
;
import
java.util.Arrays
;
import
java.util.List
;
/**
* @author Rico Pahlisch
*/
@Data
@ConfigurationProperties
(
"ribbon"
)
public
class
ServerIntrospectorProperties
{
private
List
<
Integer
>
securePorts
=
Arrays
.
asList
(
443
,
8443
);
}
spring-cloud-netflix-core/src/test/java/org/springframework/cloud/netflix/ribbon/DefaultServerIntrospectorDefaultTest.java
0 → 100644
View file @
d914406c
/*
* Copyright 2013-2017 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
*
* http://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
.
cloud
.
netflix
.
ribbon
;
import
com.netflix.loadbalancer.Server
;
import
org.junit.Assert
;
import
org.junit.Test
;
import
org.junit.runner.RunWith
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.boot.context.properties.EnableConfigurationProperties
;
import
org.springframework.boot.test.context.SpringBootTest
;
import
org.springframework.context.annotation.Bean
;
import
org.springframework.context.annotation.Configuration
;
import
org.springframework.test.context.junit4.SpringJUnit4ClassRunner
;
import
static
org
.
mockito
.
Mockito
.
mock
;
import
static
org
.
mockito
.
Mockito
.
when
;
/**
* @author Rico Pahlisch
*/
@RunWith
(
SpringJUnit4ClassRunner
.
class
)
@SpringBootTest
(
classes
=
DefaultServerIntrospectorDefaultTest
.
TestConfiguration
.
class
)
public
class
DefaultServerIntrospectorDefaultTest
{
@Autowired
private
ServerIntrospector
serverIntrospector
;
@Test
public
void
testDefaultSslPorts
(){
Server
serverMock
=
mock
(
Server
.
class
);
when
(
serverMock
.
getPort
()).
thenReturn
(
443
);
Assert
.
assertTrue
(
serverIntrospector
.
isSecure
(
serverMock
));
when
(
serverMock
.
getPort
()).
thenReturn
(
8443
);
Assert
.
assertTrue
(
serverIntrospector
.
isSecure
(
serverMock
));
when
(
serverMock
.
getPort
()).
thenReturn
(
16443
);
Assert
.
assertFalse
(
serverIntrospector
.
isSecure
(
serverMock
));
}
@Configuration
@EnableConfigurationProperties
(
ServerIntrospectorProperties
.
class
)
protected
static
class
TestConfiguration
{
@Bean
public
DefaultServerIntrospector
defaultServerIntrospector
(){
return
new
DefaultServerIntrospector
();
}
}
}
spring-cloud-netflix-core/src/test/java/org/springframework/cloud/netflix/ribbon/DefaultServerIntrospectorTest.java
0 → 100644
View file @
d914406c
/*
* Copyright 2013-2017 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
*
* http://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
.
cloud
.
netflix
.
ribbon
;
import
com.netflix.loadbalancer.Server
;
import
org.junit.Assert
;
import
org.junit.Test
;
import
org.junit.runner.RunWith
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.boot.context.properties.ConfigurationProperties
;
import
org.springframework.boot.context.properties.EnableConfigurationProperties
;
import
org.springframework.boot.test.context.SpringBootTest
;
import
org.springframework.context.annotation.Bean
;
import
org.springframework.context.annotation.Configuration
;
import
org.springframework.test.context.TestPropertySource
;
import
org.springframework.test.context.junit4.SpringJUnit4ClassRunner
;
import
static
org
.
mockito
.
Mockito
.
mock
;
import
static
org
.
mockito
.
Mockito
.
when
;
/**
* @author Rico Pahlisch
*/
@RunWith
(
SpringJUnit4ClassRunner
.
class
)
@SpringBootTest
(
classes
=
DefaultServerIntrospectorTest
.
TestConfiguration
.
class
)
@TestPropertySource
(
properties
=
{
"ribbon.securePorts=12345,556"
})
public
class
DefaultServerIntrospectorTest
{
@Autowired
private
ServerIntrospector
serverIntrospector
;
@Test
public
void
testSecurePortConfiguration
(){
Server
serverMock
=
mock
(
Server
.
class
);
when
(
serverMock
.
getPort
()).
thenReturn
(
12345
);
Assert
.
assertTrue
(
serverIntrospector
.
isSecure
(
serverMock
));
when
(
serverMock
.
getPort
()).
thenReturn
(
556
);
Assert
.
assertTrue
(
serverIntrospector
.
isSecure
(
serverMock
));
when
(
serverMock
.
getPort
()).
thenReturn
(
443
);
Assert
.
assertFalse
(
serverIntrospector
.
isSecure
(
serverMock
));
}
@Configuration
@EnableConfigurationProperties
(
ServerIntrospectorProperties
.
class
)
protected
static
class
TestConfiguration
{
@Bean
public
DefaultServerIntrospector
defaultServerIntrospector
(){
return
new
DefaultServerIntrospector
();
}
}
}
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