Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Not able to add ClientFilter for eureka replication client #3554

Closed
LittleBaiBai opened this issue Jun 7, 2019 · 6 comments
Closed

Not able to add ClientFilter for eureka replication client #3554

LittleBaiBai opened this issue Jun 7, 2019 · 6 comments

Comments

@LittleBaiBai
Copy link
Contributor

Since Netflix Eureka 1.9.10 (https://github.com/Netflix/eureka/releases/tag/v1.9.10), it's possible to add additional filters to an existing JerseyReplicationClient.

To do so, RefreshablePeerEurekaNodes needs to override createPeerEurekaNode() and add additional filters once the JerseyReplicationClient is created.

@venkatesh-007
Copy link

@LittleBaiBai can you elaborate this?
Any articles or info will be appreciated

@venkatesh-007
Copy link

@spencergibb any workaround for this for older eureka versions
I've to use it with eureka-core-1.6.2, any way to fork JerseyReplicationClient implementation

@spencergibb
Copy link
Member

No articles or info or any workarounds that I know of.

@LittleBaiBai
Copy link
Contributor Author

LittleBaiBai commented Jun 14, 2019

@venkatesh-007 If you really need to use eureka-core-1.6.2, I believe you will have to do some unfortunate reflections like this:

	@Bean
	public PeerEurekaNodes peerEurekaNodes(PeerAwareInstanceRegistry registry,
			ServerCodecs serverCodecs,
			ApplicationInfoManager applicationInfoManager,
			EurekaServerConfig eurekaServerConfig,
			EurekaClientConfig eurekaClientConfig) {
		return new PeerEurekaNodes(registry, eurekaServerConfig,
			eurekaClientConfig, serverCodecs, applicationInfoManager) {
			@Override
			protected PeerEurekaNode createPeerEurekaNode(String peerEurekaNodeUrl) {
				PeerEurekaNode peerEurekaNode = super.createPeerEurekaNode(peerEurekaNodeUrl);
				JerseyReplicationClient replicationClient = getField(PeerEurekaNode.class,
					peerEurekaNode, "replicationClient");
				ApacheHttpClient4 jerseyApacheClient = getField(JerseyReplicationClient.class,
					replicationClient, "jerseyApacheClient");
				jerseyApacheClient.addFilter(new YourCustomClientFilter()));
				return peerEurekaNode;
			}
		};
	}

@venkatesh-007
Copy link

Thanks @LittleBaiBai
Also are there any disadvantages for running a eureka server(service registry) over http (non ssl) in production?

In case my requirement is to use it on a on-premise setup(on premise cloud or vsis)
Only disadvantage I thought of is any client can register to it(one of possible attacks by having many clients) but that can be prevented by blocking http port for others

Does service discovery(eureka server) provides access to any resources of eureka clients apart from metadata(heathcheckUrl, statusCheckUrl etc given by eureka client)?
(I don't think it does)

@spencergibb @ryanjbaxter @LittleBaiBai @dsyer, any views will be appreciated

@ryanjbaxter
Copy link
Contributor

I don't believe so (unless the client is publishing something in its metadata)

LittleBaiBai added a commit to LittleBaiBai/spring-cloud-netflix that referenced this issue Jun 20, 2019
LittleBaiBai added a commit to LittleBaiBai/spring-cloud-netflix that referenced this issue Jun 20, 2019
LittleBaiBai added a commit to LittleBaiBai/spring-cloud-netflix that referenced this issue Jul 29, 2019
LittleBaiBai added a commit to LittleBaiBai/spring-cloud-netflix that referenced this issue Jul 29, 2019
@spencergibb spencergibb added this to To do in Hoxton.M2 via automation Aug 1, 2019
Hoxton.M2 automation moved this from To do to Done Aug 1, 2019
Greenwich.SR3 automation moved this from To do to Done Aug 1, 2019
@ryanjbaxter ryanjbaxter modified the milestones: 2.1.3.RELEASE, 2.2.0.M2 Aug 19, 2019
sabareeshkkanan added a commit to sabareeshkkanan/spring-cloud-netflix that referenced this issue Dec 20, 2019
* Added symbolic link of index.adoc

* Added symbolic link of index.adoc

* set replication client filters in RefreshablePeerEurekaNodes (spring-cloud#3610)

fixes spring-cloudgh-3554

* Update SNAPSHOT to 2.2.0.M2

* Going back to snapshots

* Adding spring cloud circuitbreaker hystrix implementation

* Separated circuitbreaker auto config to its own file

* Initialize remoteRegionAppWhitelist with default value (spring-cloud#3634)

* Moves non-netflix dependencies out of bom into root pom.

fixes spring-cloudgh-3639

* Removes dependency management for okhttp3

* Moves okhttp3 dep mgmt back to bom

* Re-create connection manager on "zuul.host.*" property change (spring-cloud#3407)

* Re-create connection manager on "zuul.host.*" property change 

Fixes spring-cloud#3406

* Wrap connectionManager.shutdown() in try/catch block. Polishing

* Removes okhttp3 again after added back in older branch.

* Updating readme with note about building spring-cloud-netflix-hystrix-contract.  Fixes spring-cloud#3497

* Fromatting

* Upgrades eureka to 1.9.13 and excludes compactmap.

fixes spring-cloudgh-3636

* Update SNAPSHOT to 2.1.3.RELEASE

* Going back to snapshots

* Bumping versions to 2.1.4.BUILD-SNAPSHOT after release

* Add Spring Cloud LoadBalancer starter to Eureka starters. Fixes spring-cloudgh-3646. (spring-cloud#3647)

* Update docs. (spring-cloud#3650)

* ConditionalOnMissingBean on formBodyWrapperFilter, debugFilter… (spring-cloud#3609)

* Bumping versions

* Remove spring.provides.

* removes useless comments

* Fix RestTemplateEurekaHttpClient status update endpoint.  Fixes spring-cloud#3571 (spring-cloud#3657)

* polish

* Updates health check handler to use new StatusAggregator

* Gh 3409 turbine stream test (spring-cloud#3665)

* Add stream-test-support.

* Fix condition.

* Remove outdated workaround.

* Bumping versions

* Optimize code of eureka (spring-cloud#3660)

* Optimize code of eureka

* Merge newest code

* fix checkstyle bug

* Gh 3464 upgrade scc new (spring-cloud#3667)

* Upgrade Spring Cloud Contract version to 2.1.3.RELEASE.

* Gh 3409 turbine stream test (spring-cloud#3665)

* Add stream-test-support.

* Fix condition.

* Remove outdated workaround.

(cherry picked from commit 24f5e0b)

* Updates to use "components" rather than "details"

See spring-projects/spring-boot#17929

* Applying spring-cloud#3407 to the 2.1.x branch

* Added support for reactive service discovery

* Update SNAPSHOT to 2.2.0.M3

* Going back to snapshots

* Update SNAPSHOT to 2.2.0.RC1

* Going back to snapshots

* removing resource class from circle config

* Add property to disable spring cloud circuit breaker for hystrix

* Fix command key configuration.  Use id as command key and class as group key.

* Adding configuration metadata for spring cloud circuitbreaker

* Bumping versions

* Fix some dependencies that show up in the wrong scope

Apparently you can build on the command line but Eclipse is fussy
now and wouldn't compile these projects without explicit
dependencies.

* Also add build helper config for contract tests

* Added maven flatten plugin

* Bumping versions

* Update SNAPSHOT to 2.2.0.RC2

* Going back to snapshots

* Update configuration to use proxyBeanMethods=false.  Fixes spring-cloud#3677

* Create security.md

* Update issue templates

* Bumping versions

* Bumping versions

* Update SNAPSHOT to 2.2.0.RELEASE

* Going back to snapshots

* Bumping versions to 2.2.1.BUILD-SNAPSHOT after release

* Bumping versions

* Fix typo: clas -> class (spring-cloud#3710)

* removes .flattened-pom.xml

* ignores .flattened-pom.xml

* Gh 3718 add zoned loadbalancer instrumentation (spring-cloud#3720)

* Add instrumentation for zoned LoadBalancer.

* Add documentation.

* Fix after review.

* Fix after review.

* Update SNAPSHOT to 2.2.1.RELEASE

* Going back to snapshots

* Bumping versions to 2.2.2.BUILD-SNAPSHOT after release

Co-authored-by: Marcin Grzejszczak <marcin@grzejszczak.pl>
Co-authored-by: Yuxin Bai <LittleBaiBai@users.noreply.github.com>
Co-authored-by: Spencer Gibb <spencer@gibb.tech>
Co-authored-by: Spring Buildmaster <buildmaster@springframework.org>
Co-authored-by: Ryan Baxter <rbaxter@pivotal.io>
Co-authored-by: emilnkrastev <emilnkrastev@gmail.com>
Co-authored-by: Denys Ivano <denys.ivano@gmail.com>
Co-authored-by: Olga Maciaszek-Sharma <olga.maciaszek@gmail.com>
Co-authored-by: Rafał Żukowski <rzukow@gmail.com>
Co-authored-by: OLPMO <OLPMO@users.noreply.github.com>
Co-authored-by: Tim Ysewyn <Tim.Ysewyn@me.com>
Co-authored-by: Dave Syer <david_syer@hotmail.com>
Co-authored-by: Deepika Mohan <deepikadevidm@gmail.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
No open projects
Greenwich.SR3
  
Done
Hoxton.M2
  
Done
Development

Successfully merging a pull request may close this issue.

5 participants