protected void addXForwardedFilter(DeploymentContext context, Service service, ResourceDescriptor resource) { final String XFORWARDED_FILTER_NAME = "XForwardedHeaderFilter"; final String XFORWARDED_FILTER_ROLE = "xforwardedheaders"; if (context.getGatewayConfig() != null && context.getGatewayConfig().isXForwardedEnabled()) { resource.addFilter().name(XFORWARDED_FILTER_NAME).role(XFORWARDED_FILTER_ROLE).impl("org.apache.knox.gateway.filter.XForwardedHeaderFilter"); } }
private static Map<String, String> createParams( FilterDescriptor filter ) { Map<String, String> paramMap = new HashMap<>(); ResourceDescriptor resource = filter.up(); GatewayDescriptor gateway = resource.up(); for( GatewayParamDescriptor param : gateway.params() ) { paramMap.put( param.name(), param.value() ); } for( ResourceParamDescriptor param : resource.params() ) { paramMap.put( param.name(), param.value() ); } //TODO: Should all elements of the resource and gateway descriptor somehow be added to the filter params? //TODO: Should we use some composite params object instead of copying all these name value pairs? paramMap.put( "pattern", resource.pattern() ); List<FilterParamDescriptor> paramList = filter.params(); for( FilterParamDescriptor param : paramList ) { paramMap.put( param.name(), param.value() ); } return paramMap; }
@Override public FilterParamDescriptor name( String name ) { this.name = name; // If there is already a param identified by the new name, remove it, such that it is REPLACED with this new param if (parent != null) { for (FilterParamDescriptor param : parent.params()) { if (name.equals(param.name()) && (param != this)) { parent.params().remove(param); break; } } } return this; }
private void addDefaultHaDispatchFilter(DeploymentContext context, Service service, ResourceDescriptor resource) { FilterDescriptor filter = addDispatchFilterForClass(context, service, resource, DEFAULT_HA_DISPATCH_CLASS, null); filter.param().name(SERVICE_ROLE_PARAM).value(service.getRole()); }
protected void addXForwardedFilter(DeploymentContext context, Service service, ResourceDescriptor resource) { final String XFORWARDED_FILTER_NAME = "XForwardedHeaderFilter"; final String XFORWARDED_FILTER_ROLE = "xforwardedheaders"; if (context.getGatewayConfig() != null && context.getGatewayConfig().isXForwardedEnabled()) { resource.addFilter().name(XFORWARDED_FILTER_NAME).role(XFORWARDED_FILTER_ROLE).impl("org.apache.knox.gateway.filter.XForwardedHeaderFilter"); } }
private static Map<String, String> createParams( FilterDescriptor filter ) { Map<String, String> paramMap = new HashMap<>(); ResourceDescriptor resource = filter.up(); GatewayDescriptor gateway = resource.up(); for( GatewayParamDescriptor param : gateway.params() ) { paramMap.put( param.name(), param.value() ); } for( ResourceParamDescriptor param : resource.params() ) { paramMap.put( param.name(), param.value() ); } //TODO: Should all elements of the resource and gateway descriptor somehow be added to the filter params? //TODO: Should we use some composite params object instead of copying all these name value pairs? paramMap.put( "pattern", resource.pattern() ); List<FilterParamDescriptor> paramList = filter.params(); for( FilterParamDescriptor param : paramList ) { paramMap.put( param.name(), param.value() ); } return paramMap; }
@Override public FilterParamDescriptor name( String name ) { this.name = name; // If there is already a param identified by the new name, remove it, such that it is REPLACED with this new param if (parent != null) { for (FilterParamDescriptor param : parent.params()) { if (name.equals(param.name()) && (param != this)) { parent.params().remove(param); break; } } } return this; }
private void addDefaultHaDispatchFilter(DeploymentContext context, Service service, ResourceDescriptor resource, Map<String, String> dispatchParams) { FilterDescriptor filter = addDispatchFilterForClass(context, service, resource, DEFAULT_HA_DISPATCH_CLASS, null, dispatchParams); filter.param().name(SERVICE_ROLE_PARAM).value(service.getRole()); }
private static Element createFilter( Document dom, FilterDescriptor filter ) { Element element = dom.createElement( FILTER ); String role = filter.role(); if( role != null ) { addTextElement( dom, element, FILTER_ROLE, filter.role() ); } String name = filter.name(); if( name != null ) { addTextElement( dom, element, FILTER_NAME, filter.name() ); } addTextElement( dom, element, FILTER_IMPL, filter.impl() ); for( FilterParamDescriptor param : filter.params() ) { element.appendChild( createFilterParam( dom, param ) ); } return element; }
private static Element createFilter( Document dom, FilterDescriptor filter ) { Element element = dom.createElement( FILTER ); String role = filter.role(); if( role != null ) { addTextElement( dom, element, FILTER_ROLE, filter.role() ); } String name = filter.name(); if( name != null ) { addTextElement( dom, element, FILTER_NAME, filter.name() ); } addTextElement( dom, element, FILTER_IMPL, filter.impl() ); for( FilterParamDescriptor param : filter.params() ) { element.appendChild( createFilterParam( dom, param ) ); } return element; }
@Override public void contributeFilter( DeploymentContext context, Provider provider, Service service, ResourceDescriptor resource, List<FilterParamDescriptor> params ) { FilterDescriptor filterDescriptor = resource.addFilter(); filterDescriptor.role( getRole() ).name( getName() ).impl( UrlRewriteServletFilter.class ).params( params ); filterDescriptor.param().name(PARAM_SERVICE_ROLE).value(service.getRole()); }
@Override public void contributeFilter( DeploymentContext context, Provider provider, Service service, ResourceDescriptor resource, List<FilterParamDescriptor> params ) { params = buildFilterInitParms(provider, resource, params); resource.addFilter().name(getName()).role(getRole()).impl(getFilterClassname()).params(params); }
@Override public void contributeFilter( DeploymentContext context, Provider provider, Service service, ResourceDescriptor resource, List<FilterParamDescriptor> params ) { FilterDescriptor filterDescriptor = resource.addFilter(); filterDescriptor.role( getRole() ).name( getName() ).impl( UrlRewriteServletFilter.class ).params( params ); filterDescriptor.param().name(PARAM_SERVICE_ROLE).value(service.getRole()); }
@Override public void contributeFilter( DeploymentContext context, Provider provider, Service service, ResourceDescriptor resource, List<FilterParamDescriptor> params ) { params = buildFilterInitParms(provider, resource, params); resource.addFilter().name(getName()).role(getRole()).impl(getFilterClassname()).params(params); }
@Override public void contributeFilter(DeploymentContext context, Provider provider, Service service, ResourceDescriptor resource, List<FilterParamDescriptor> params) { // blindly add all the provider params as filter init params if (params == null) { params = new ArrayList<>(); } Map<String, String> providerParams = provider.getParams(); for(Entry<String, String> entry : providerParams.entrySet()) { params.add( resource.createFilterParam().name( entry.getKey() ).value( entry.getValue() ) ); } resource.addFilter().name( getName() ).role( getRole() ).impl( DISPATCHER_FILTER_CLASSNAME ).params( params ); resource.addFilter().name( getName() ).role( getRole() ).impl( IDENTITY_ADAPTER_CLASSNAME ).params( params ); } }