minor fixes
This commit is contained in:
parent
21d6a0d856
commit
6f87196dc9
@ -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
|
|
||||||
}
|
|
||||||
};
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
@ -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?");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -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);
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user