- 使用 Spring Initializr 创建 Spring Boot 应用程序
- 在Spring Boot中配置Cassandra
- 在 Spring Boot 上配置 Tomcat 连接池
- 将Camel消息路由到嵌入WildFly的Artemis上
本文整理了Java中com.netflix.zuul.filters.ZuulFilter.filterType()
方法的一些代码示例,展示了ZuulFilter.filterType()
的具体用法。这些代码示例主要来源于Github
/Stackoverflow
/Maven
等平台,是从一些精选项目中提取出来的代码,具有较强的参考意义,能在一定程度帮忙到你。ZuulFilter.filterType()
方法的具体详情如下:
包路径:com.netflix.zuul.filters.ZuulFilter
类名称:ZuulFilter
方法名:filterType
[英]to classify a filter by type. Standard types in Zuul are "in" for pre-routing filtering, "end" for routing to an origin, "out" for post-routing filters.
[中]按类型对过滤器进行分类。Zuul中的标准类型是“in”用于路由前筛选,“end”用于路由到原点,“out”用于路由后筛选。
代码示例来源:origin: Netflix/zuul
public ZuulFilterChainRunner(ZuulFilter<T, T>[] zuulFilters, FilterUsageNotifier usageNotifier, FilterRunner<T, ?> nextStage) {
super(zuulFilters[0].filterType(), usageNotifier, nextStage);
this.filters = zuulFilters;
}
代码示例来源:origin: Netflix/zuul
void putFilter(String sName, ZuulFilter filter, long lastModified)
{
List<ZuulFilter> list = hashFiltersByType.get(filter.filterType());
if (list != null) {
hashFiltersByType.remove(filter.filterType()); //rebuild this list
}
String nameAndType = filter.filterType() + ":" + filter.filterName();
filtersByNameAndType.put(nameAndType, filter);
filterRegistry.put(sName, filter);
filterClassLastModified.put(sName, lastModified);
}
代码示例来源:origin: Netflix/zuul
public <T extends ZuulMessage> ZuulFilter<T, T> [] getFilters(final ZuulFilter start, final ZuulFilter stop) {
final List<ZuulFilter> zuulFilters = filterLoader.getFiltersByType(start.filterType());
final ZuulFilter[] filters = new ZuulFilter[zuulFilters.size() + 2];
filters[0] = start;
for (int i=1, j=0; i < filters.length && j < zuulFilters.size(); i++,j++) {
filters[i] = zuulFilters.get(j);
}
filters[filters.length -1] = stop;
return filters;
}
代码示例来源:origin: Netflix/zuul
public ZuulFilterChainRunner(ZuulFilter<T, T>[] zuulFilters, FilterUsageNotifier usageNotifier, FilterRunner<T, ?> nextStage) {
super(zuulFilters[0].filterType(), usageNotifier, nextStage);
this.filters = zuulFilters;
}
代码示例来源:origin: Netflix/zuul
@Override
public void notify(ZuulFilter filter, ExecutionStatus status) {
DynamicCounter.increment(METRIC_PREFIX + filter.getClass().getSimpleName(), "status", status.name(), "filtertype", filter.filterType().toString());
}
}
代码示例来源:origin: Netflix/zuul
/**
* Returns a list of filters by the filterType specified
*
* @param filterType
* @return a List<ZuulFilter>
*/
public List<ZuulFilter> getFiltersByType(FilterType filterType) {
List<ZuulFilter> list = hashFiltersByType.get(filterType);
if (list != null) return list;
list = new ArrayList<ZuulFilter>();
Collection<ZuulFilter> filters = filterRegistry.getAllFilters();
for (Iterator<ZuulFilter> iterator = filters.iterator(); iterator.hasNext(); ) {
ZuulFilter filter = iterator.next();
if (filter.filterType().equals(filterType)) {
list.add(filter);
}
}
// Sort by filterOrder.
Collections.sort(list, new Comparator<ZuulFilter>() {
@Override
public int compare(ZuulFilter o1, ZuulFilter o2) {
return o1.filterOrder() - o2.filterOrder();
}
});
hashFiltersByType.putIfAbsent(filterType, list);
return list;
}
代码示例来源:origin: Netflix/zuul
void putFilter(String sName, ZuulFilter filter, long lastModified)
{
List<ZuulFilter> list = hashFiltersByType.get(filter.filterType());
if (list != null) {
hashFiltersByType.remove(filter.filterType()); //rebuild this list
}
String nameAndType = filter.filterType() + ":" + filter.filterName();
filtersByNameAndType.put(nameAndType, filter);
filterRegistry.put(sName, filter);
filterClassLastModified.put(sName, lastModified);
}
代码示例来源:origin: Netflix/zuul
public <T extends ZuulMessage> ZuulFilter<T, T> [] getFilters(final ZuulFilter start, final ZuulFilter stop) {
final List<ZuulFilter> zuulFilters = filterLoader.getFiltersByType(start.filterType());
final ZuulFilter[] filters = new ZuulFilter[zuulFilters.size() + 2];
filters[0] = start;
for (int i=1, j=0; i < filters.length && j < zuulFilters.size(); i++,j++) {
filters[i] = zuulFilters.get(j);
}
filters[filters.length -1] = stop;
return filters;
}
代码示例来源:origin: Netflix/zuul
@Test
public void testGetFiltersByType() throws Exception {
assertTrue(loader.putFilter(file));
verify(registry).put(any(String.class), any(ZuulFilter.class));
final List<ZuulFilter> filters = new ArrayList<ZuulFilter>();
filters.add(filter);
when(registry.getAllFilters()).thenReturn(filters);
List<ZuulFilter> list = loader.getFiltersByType(FilterType.INBOUND);
assertTrue(list != null);
assertTrue(list.size() == 1);
ZuulFilter filter = list.get(0);
assertTrue(filter != null);
assertTrue(filter.filterType().equals(FilterType.INBOUND));
}
代码示例来源:origin: Netflix/zuul
@Override
public void notify(ZuulFilter filter, ExecutionStatus status) {
DynamicCounter.increment(METRIC_PREFIX + filter.getClass().getSimpleName(), "status", status.name(), "filtertype", filter.filterType().toString());
}
}
代码示例来源:origin: Netflix/zuul
protected void recordFilterError(final I inMesg, final ZuulFilter<I, O> filter, final Throwable t) {
// Add a log statement for this exception.
final String errorMsg = "Filter Exception: filter=" + filter.filterName() +
", request-info=" + inMesg.getInfoForLogging() + ", msg=" + String.valueOf(t.getMessage());
if (t instanceof ZuulException && !((ZuulException) t).shouldLogAsError()) {
LOG.warn(errorMsg);
}
else {
LOG.error(errorMsg, t);
}
// Store this filter error for possible future use. But we still continue with next filter in the chain.
final SessionContext zuulCtx = inMesg.getContext();
zuulCtx.getFilterErrors().add(new FilterError(filter.filterName(), filter.filterType().toString(), t));
if (zuulCtx.debugRouting()) {
Debug.addRoutingDebug(zuulCtx, "Running Filter failed " + filter.filterName() + " type:" +
filter.filterType() + " order:" + filter.filterOrder() + " " + t.getMessage());
}
}
代码示例来源:origin: Netflix/zuul
/**
* Returns a list of filters by the filterType specified
*
* @param filterType
* @return a List<ZuulFilter>
*/
public List<ZuulFilter> getFiltersByType(FilterType filterType) {
List<ZuulFilter> list = hashFiltersByType.get(filterType);
if (list != null) return list;
list = new ArrayList<ZuulFilter>();
Collection<ZuulFilter> filters = filterRegistry.getAllFilters();
for (Iterator<ZuulFilter> iterator = filters.iterator(); iterator.hasNext(); ) {
ZuulFilter filter = iterator.next();
if (filter.filterType().equals(filterType)) {
list.add(filter);
}
}
// Sort by filterOrder.
Collections.sort(list, new Comparator<ZuulFilter>() {
@Override
public int compare(ZuulFilter o1, ZuulFilter o2) {
return o1.filterOrder() - o2.filterOrder();
}
});
hashFiltersByType.putIfAbsent(filterType, list);
return list;
}
代码示例来源:origin: Netflix/zuul
protected O handleFilterException(final I inMesg, final ZuulFilter<I, O> filter, final Throwable ex) {
inMesg.getContext().setError(ex);
if (filter.filterType() == ENDPOINT) {
inMesg.getContext().setShouldSendErrorResponse(true);
}
recordFilterError(inMesg, filter, ex);
return filter.getDefaultOutput(inMesg);
}
代码示例来源:origin: Netflix/zuul
protected final boolean shouldSkipFilter(final I inMesg, final ZuulFilter<I, O> filter) {
if (filter.filterType() == ENDPOINT) {
//Endpoints may not be skipped
return false;
}
final SessionContext zuulCtx = inMesg.getContext();
if (!filter.shouldFilter(inMesg)) {
return true;
}
if ((zuulCtx.shouldStopFilterProcessing()) && (!filter.overrideStopFilterProcessing())) {
return true;
}
if (zuulCtx.isCancelled()) {
return true;
}
return false;
}
代码示例来源:origin: Netflix/zuul
@Test
public void testGetFiltersByType() throws Exception {
assertTrue(loader.putFilter(file));
verify(registry).put(any(String.class), any(ZuulFilter.class));
final List<ZuulFilter> filters = new ArrayList<ZuulFilter>();
filters.add(filter);
when(registry.getAllFilters()).thenReturn(filters);
List<ZuulFilter> list = loader.getFiltersByType(FilterType.INBOUND);
assertTrue(list != null);
assertTrue(list.size() == 1);
ZuulFilter filter = list.get(0);
assertTrue(filter != null);
assertTrue(filter.filterType().equals(FilterType.INBOUND));
}
代码示例来源:origin: Netflix/zuul
protected void recordFilterError(final I inMesg, final ZuulFilter<I, O> filter, final Throwable t) {
// Add a log statement for this exception.
final String errorMsg = "Filter Exception: filter=" + filter.filterName() +
", request-info=" + inMesg.getInfoForLogging() + ", msg=" + String.valueOf(t.getMessage());
if (t instanceof ZuulException && !((ZuulException) t).shouldLogAsError()) {
LOG.warn(errorMsg);
}
else {
LOG.error(errorMsg, t);
}
// Store this filter error for possible future use. But we still continue with next filter in the chain.
final SessionContext zuulCtx = inMesg.getContext();
zuulCtx.getFilterErrors().add(new FilterError(filter.filterName(), filter.filterType().toString(), t));
if (zuulCtx.debugRouting()) {
Debug.addRoutingDebug(zuulCtx, "Running Filter failed " + filter.filterName() + " type:" +
filter.filterType() + " order:" + filter.filterOrder() + " " + t.getMessage());
}
}
代码示例来源:origin: Netflix/zuul
protected O handleFilterException(final I inMesg, final ZuulFilter<I, O> filter, final Throwable ex) {
inMesg.getContext().setError(ex);
if (filter.filterType() == ENDPOINT) {
inMesg.getContext().setShouldSendErrorResponse(true);
}
recordFilterError(inMesg, filter, ex);
return filter.getDefaultOutput(inMesg);
}
代码示例来源:origin: Netflix/zuul
protected final boolean shouldSkipFilter(final I inMesg, final ZuulFilter<I, O> filter) {
if (filter.filterType() == ENDPOINT) {
//Endpoints may not be skipped
return false;
}
final SessionContext zuulCtx = inMesg.getContext();
if (!filter.shouldFilter(inMesg)) {
return true;
}
if ((zuulCtx.shouldStopFilterProcessing()) && (!filter.overrideStopFilterProcessing())) {
return true;
}
if (zuulCtx.isCancelled()) {
return true;
}
return false;
}
代码示例来源:origin: Netflix/zuul
protected void recordFilterCompletion(final ExecutionStatus status, final ZuulFilter<I, O> filter, long startTime,
final ZuulMessage zuulMesg, final ZuulMessage startSnapshot) {
final SessionContext zuulCtx = zuulMesg.getContext();
final long execTime = System.currentTimeMillis() - startTime;
if (execTime >= FILTER_EXCESSIVE_EXEC_TIME.get()) {
LOG.warn("Filter {} took {} ms to complete! status = {}", filter.filterName(), execTime, status.name());
}
// Record the execution summary in context.
switch (status) {
case FAILED:
zuulCtx.addFilterExecutionSummary(filter.filterName(), FAILED.name(), execTime);
break;
case SUCCESS:
zuulCtx.addFilterExecutionSummary(filter.filterName(), SUCCESS.name(), execTime);
if (startSnapshot != null) {
//debugRouting == true
Debug.addRoutingDebug(zuulCtx, "Filter {" + filter.filterName() + " TYPE:" + filter.filterType().toString()
+ " ORDER:" + filter.filterOrder() + "} Execution time = " + execTime + "ms");
Debug.compareContextState(filter.filterName(), zuulCtx, startSnapshot.getContext());
}
break;
default:
break;
}
LOG.debug("Filter {} completed with status {}, UUID {}", filter.filterName(), status.name(),
zuulMesg.getContext().getUUID());
// Notify configured listener.
usageNotifier.notify(filter, status);
}
代码示例来源:origin: Netflix/zuul
protected void recordFilterCompletion(final ExecutionStatus status, final ZuulFilter<I, O> filter, long startTime,
final ZuulMessage zuulMesg, final ZuulMessage startSnapshot) {
final SessionContext zuulCtx = zuulMesg.getContext();
final long execTime = System.currentTimeMillis() - startTime;
if (execTime >= FILTER_EXCESSIVE_EXEC_TIME.get()) {
LOG.warn("Filter {} took {} ms to complete! status = {}", filter.filterName(), execTime, status.name());
}
// Record the execution summary in context.
switch (status) {
case FAILED:
zuulCtx.addFilterExecutionSummary(filter.filterName(), FAILED.name(), execTime);
break;
case SUCCESS:
zuulCtx.addFilterExecutionSummary(filter.filterName(), SUCCESS.name(), execTime);
if (startSnapshot != null) {
//debugRouting == true
Debug.addRoutingDebug(zuulCtx, "Filter {" + filter.filterName() + " TYPE:" + filter.filterType().toString()
+ " ORDER:" + filter.filterOrder() + "} Execution time = " + execTime + "ms");
Debug.compareContextState(filter.filterName(), zuulCtx, startSnapshot.getContext());
}
break;
default:
break;
}
LOG.debug("Filter {} completed with status {}, UUID {}", filter.filterName(), status.name(),
zuulMesg.getContext().getUUID());
// Notify configured listener.
usageNotifier.notify(filter, status);
}
我应该在 Angular 应用程序中使用哪个,为什么? array.filter(o => o.name === myName); 或 $filter('filter')(array, {name:
以下两个调用是否解析为 Django 中的等效 SQL 查询? 链接多个调用 Model.objects \ .filter(arg1=foo) \ .filter(arg2=bar) \ ... 将
我正在尝试在 hbase-1.0.0 上运行 completebulkload。但是遇到错误, "java.lang.NoClassDefFoundError: org/apache/hadoop/h
我从这篇文章中学习了“树”和“索引”:Learning Git Internals by Example 但是当谈到“git filter-branch”命令时,我不知道“--tree-filter”
我正在尝试构建我的自定义过滤器以进行身份验证,但是当我尝试运行我的 WebAPI 解决方案时遇到了这个问题: The given filter instance must implement on
我想保留一个过滤器函数的列表,并通过返回true的过滤器来标记这些项。这是接近但不完全。。主要问题是std::stringify!总是返回“ADF”,可能是我声明为ADF的变量名。。第二个问题是,在定
我想保留一个筛选器函数列表,并通过返回True的筛选器来标记这些项目。这已经很接近了,但还不完全是。。主要问题是std::stringify!总是返回“ADF”,可能是我声明为ADF的变量名。。第二个
我尝试在 graphql 查询中使用 where: filter 但不幸的是我遇到了一些错误。我做错了什么? shoeposts { data { attributes(where: {s
几周以来,我一直在使用 Zend Framework 2,尽管在线文档非常不完整,但我还是设法建立了我的网站的初稿。 不幸的是,我在尝试实现 Zend\Filter\File\Rename 过滤器的自
我正在尝试在 APC 中使用 apc.filter 等功能。但是我所做的一切都不起作用 我应该完成 2 项任务。 1)需要包含1个目录用于缓存。我的代码在apc.ini apc.cache by de
我想使用一个可能返回 Err 的过滤器函数结果,并将其冒泡到包含函数: mycoll.into_iter() .filter(|el| { if el == "bad" { E
每个 Controller 都应该有方法filters(),在那里你可以指定一些类,我想知道,这些类是如何被框架包含的?这些类是如何配置的,以及何时配置,也许有人可以给我一个使用filters()并包
我想在一维信号上使用巴特沃斯滤波器。在 Matlab 中,脚本如下所示: f=100; f_cutoff = 20; fnorm =f_cutoff/(f/2); [b,a] = butter
我想比较两个列表,以便找到第一个列表中不在第二个列表中的值并返回它们。提前谢谢大家代码返回:不再支持过滤器有没有其他方法可以做到这一点 MATCH (cu:Customer{name: "myCust
在 Android 应用程序中,我有一个通用设置 -- 一个带有 ArrayAdapter 的 ListView。在某一时刻,我调用了适配器的 getFilter().filter() 方法,它很好地
所以我有如下数据: [ { "id": 0, "title": "happy dayys", "owner": {"id": "1", "username
阅读Mastering Web Development with AngularJS ,我正在尝试创建并使用一个使用 $filter 模块/关键字的新过滤器。 HTML
所以我的理解是 halt 命令应该停止当前过滤器中的请求,但它似乎继续。下面是一个非常简单的 Sinatra 应用程序,演示了这一点。 服务器.rb require 'sinatra' before
我正在尝试将散列传递给 URL 以设置 UIkit 过滤器。 All
我正在使用 django-filter应用程序。但是有一个问题我不知道如何解决。它几乎与 django 文档中描述的完全相同: https://docs.djangoproject.com/en/1.
我是一名优秀的程序员,十分优秀!