minor fixes

This commit is contained in:
Ganesh Pagade 2018-11-01 14:08:32 +05:30
parent 21d6a0d856
commit 6f87196dc9
3 changed files with 8 additions and 53 deletions

View File

@ -1,53 +1,14 @@
package com.baeldung.spring.cloud.zuulratelimitdemo; package com.baeldung.spring.cloud.zuulratelimitdemo;
import javax.servlet.http.HttpServletRequest;
import org.springframework.boot.SpringApplication; import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication; import org.springframework.cloud.client.SpringCloudApplication;
import org.springframework.cloud.netflix.zuul.filters.Route; import org.springframework.cloud.netflix.zuul.EnableZuulProxy;
import org.springframework.context.annotation.Bean;
import com.marcosbarbero.cloud.autoconfigure.zuul.ratelimit.config.RateLimitKeyGenerator; @EnableZuulProxy
import com.marcosbarbero.cloud.autoconfigure.zuul.ratelimit.config.RateLimitUtils; @SpringCloudApplication
import com.marcosbarbero.cloud.autoconfigure.zuul.ratelimit.config.properties.RateLimitProperties;
import com.marcosbarbero.cloud.autoconfigure.zuul.ratelimit.config.repository.RateLimiterErrorHandler;
import com.marcosbarbero.cloud.autoconfigure.zuul.ratelimit.config.repository.DefaultRateLimiterErrorHandler;
import com.marcosbarbero.cloud.autoconfigure.zuul.ratelimit.support.DefaultRateLimitKeyGenerator;
@SpringBootApplication
public class ZuulRatelimitDemoApplication { public class ZuulRatelimitDemoApplication {
public static void main(String[] args) { public static void main(String[] args) {
SpringApplication.run(ZuulRatelimitDemoApplication.class, args); SpringApplication.run(ZuulRatelimitDemoApplication.class, args);
} }
@Bean
public RateLimitKeyGenerator ratelimitKeyGenerator(RateLimitProperties properties, RateLimitUtils rateLimitUtils) {
return new DefaultRateLimitKeyGenerator(properties, rateLimitUtils) {
@Override
public String key(HttpServletRequest request, Route route, RateLimitProperties.Policy policy) {
return super.key(request, route, policy) + ":" + request.getMethod();
}
};
}
@Bean
public RateLimiterErrorHandler rateLimitErrorHandler() {
return new DefaultRateLimiterErrorHandler() {
@Override
public void handleSaveError(String key, Exception e) {
// custom code
}
@Override
public void handleFetchError(String key, Exception e) {
// custom code
}
@Override
public void handleError(String msg, Exception e) {
// custom code
}
};
}
} }

View File

@ -1,26 +1,21 @@
package com.baeldung.spring.cloud.zuulratelimitdemo.controller; package com.baeldung.spring.cloud.zuulratelimitdemo.controller;
import org.springframework.cloud.client.SpringCloudApplication;
import org.springframework.cloud.netflix.zuul.EnableZuulProxy;
import org.springframework.http.ResponseEntity; import org.springframework.http.ResponseEntity;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestMapping;
@EnableZuulProxy @Controller
@SpringCloudApplication
@RequestMapping("/greeting") @RequestMapping("/greeting")
public class GreetingController { public class GreetingController {
public static final String SIMPLE_RESPONSE = "Hi!";
public static final String ADVANCED_RESPONSE = "Hello, how you doing?";
@GetMapping("/simple") @GetMapping("/simple")
public ResponseEntity<String> getSimple() { public ResponseEntity<String> getSimple() {
return ResponseEntity.ok(SIMPLE_RESPONSE); return ResponseEntity.ok("Hi!");
} }
@GetMapping("/advanced") @GetMapping("/advanced")
public ResponseEntity<String> getAdvanced() { public ResponseEntity<String> getAdvanced() {
return ResponseEntity.ok(ADVANCED_RESPONSE); return ResponseEntity.ok("Hello, how you doing?");
} }
} }

View File

@ -73,7 +73,6 @@ public class GreetingControllerTest {
assertNotEquals(reset, "2000"); assertNotEquals(reset, "2000");
assertEquals(TOO_MANY_REQUESTS, response.getStatusCode()); assertEquals(TOO_MANY_REQUESTS, response.getStatusCode());
assertNotEquals(GreetingController.ADVANCED_RESPONSE, response.getBody());
TimeUnit.SECONDS.sleep(2); TimeUnit.SECONDS.sleep(2);