@Override public UrlRewriteStepStatus process( UrlRewriteContext context ) throws Exception { Template rewritten = expander.expandToTemplate( template, context.getParameters(), context.getEvaluator() ); context.setCurrentUrl( rewritten ); return UrlRewriteStepStatus.SUCCESS; }
@Override public List<String> resolve( UrlRewriteContext context, List<String> parameters ) throws Exception { if( parameters == null || parameters.isEmpty()) { return Collections.emptyList(); } else { switch( context.getDirection() ) { case IN: return Collections.emptyList(); case OUT: return context.getParameters().resolve( UrlRewriteResponse.INBOUND_QUERY_PARAM_PREFIX + parameters.get( 0 )); default: return Collections.emptyList(); } } } }
@Override public UrlRewriteStepStatus process( UrlRewriteContext context ) throws Exception { UrlRewriteStepStatus status = UrlRewriteStepStatus.SUCCESS; if( matcher != null ) { status = UrlRewriteStepStatus.FAILURE; Matcher.Match match = matcher.match( context.getCurrentUrl() ); if( match != null ) { context.addParameters( match.getParams() ); status = UrlRewriteStepStatus.SUCCESS; } } return status; }
@Override public UrlRewriteStepStatus process( UrlRewriteContext context ) throws Exception { if( param != null && !param.isEmpty() ) { Template template = Parser.parseTemplate( "{" + param + "}" ); String resolvedTemplate = Expander .expandToString( template, context.getParameters(), context.getEvaluator() ); String url = decode( resolvedTemplate ); EncryptStepContextParams params = new EncryptStepContextParams(); params.addParam( param, Collections.singletonList(url)); context.addParameters( params ); return UrlRewriteStepStatus.SUCCESS; } return UrlRewriteStepStatus.FAILURE; }
@Override public UrlRewriteStepStatus process( UrlRewriteContext context ) throws Exception { //TODO: Need some way to get a reference to the keystore service and the encryption key in particular. Template url = context.getCurrentUrl(); String str = url.toString(); String path = str; String query = null; int index = str.indexOf( '?' ); if( index >= 0 ) { path = str.substring( 0, index ); if( index < str.length() ) { query = str.substring( index + 1 ); } } if( query != null ) { query = Base64.encodeBase64String( query.getBytes( StandardCharsets.UTF_8 ) ); query = removeTrailingEquals( query ); url = Parser.parseLiteral( path + "?" + ENCODED_PARAMETER_NAME +"=" + query ); context.setCurrentUrl( url ); } return UrlRewriteStepStatus.SUCCESS; }
private UrlRewriteStepStatus getUrlRewriteStepStatus(UrlRewriteContext context, Builder newUrl, Map<String, Query> map, UrlRewriteStepStatus status, String value) { if( value != null ) { StringTokenizer outerParser = new StringTokenizer( value, "&" ); while( outerParser.hasMoreTokens() ) { String pair = outerParser.nextToken(); StringTokenizer innerParser = new StringTokenizer( pair, "=" ); if( innerParser.hasMoreTokens() ) { String paramName = innerParser.nextToken(); if( innerParser.hasMoreTokens() ) { String paramValue = innerParser.nextToken(); // Need to remove from the clear parameters any param name in the encoded params. // If we don't then someone could override something in the encoded param. map.remove( paramName ); newUrl.addQuery( paramName, "", paramValue, true ); } else { newUrl.addQuery( paramName, "", null, true ); } } } context.setCurrentUrl( newUrl.build() ); context.getParameters().resolve( "gateway.name" ); status = UrlRewriteStepStatus.SUCCESS; } return status; }
@Override public List<String> resolve( UrlRewriteContext context, List<String> parameters ) throws Exception { List<String> results = null; if( parameters != null ) { UrlRewriter.Direction direction = context.getDirection(); results = new ArrayList<>( parameters.size() ); for( String parameter : parameters ) { parameter = resolve( direction, parameter ); results.add( parameter ); } } return results; }
@Override public List<String> resolve( UrlRewriteContext context, List<String> parameter ) throws Exception { return context.getParameters().resolve( paramName ); }
@Override public UrlRewriteStepStatus process( UrlRewriteContext context ) throws Exception { //TODO: Need some way to get a reference to the keystore service and the encryption key in particular. Template currUrl = context.getCurrentUrl(); Builder newUrl = new Builder( currUrl ); Map<String,Query> map = newUrl.getQuery(); Query query = map.remove( ENCRYPTED_PARAMETER_NAME ); UrlRewriteStepStatus status = UrlRewriteStepStatus.FAILURE; status = getUrlRewriteStepStatus(context, newUrl, map, query, status); return status; }
@Override public UrlRewriteStepStatus process( UrlRewriteContext context ) throws Exception { if( param != null && !param.isEmpty() && template != null && !template.isEmpty() ) { Template uri = Parser.parseTemplate( template ); String resolvedTemplate = Expander .expandToString( uri, context.getParameters(), context.getEvaluator() ); if( resolvedTemplate != null && !resolvedTemplate.isEmpty() ) { String endcoedUrl = encode( resolvedTemplate ); EncryptStepContextParams params = new EncryptStepContextParams(); params.addParam( param, Collections.singletonList(endcoedUrl)); context.addParameters( params ); return UrlRewriteStepStatus.SUCCESS; } } return UrlRewriteStepStatus.FAILURE; }
@Override public UrlRewriteStepStatus process( UrlRewriteContext context ) throws Exception { //TODO: Need some way to get a reference to the keystore service and the encryption key in particular. Template url = context.getCurrentUrl(); String str = url.toString(); String path = str; String query = null; int index = str.indexOf( '?' ); if( index >= 0 ) { path = str.substring( 0, index ); if( index < str.length() ) { query = str.substring( index + 1 ); } } if( query != null ) { query = encode( query ); url = Parser.parseLiteral( path + "?" + ENCRYPTED_PARAMETER_NAME +"=" + query ); context.setCurrentUrl( url ); } return UrlRewriteStepStatus.SUCCESS; }
private UrlRewriteStepStatus getUrlRewriteStepStatus(UrlRewriteContext context, Builder newUrl, Map<String, Query> map, UrlRewriteStepStatus status, String value) { if( value != null ) { StringTokenizer outerParser = new StringTokenizer( value, "&" ); while( outerParser.hasMoreTokens() ) { String pair = outerParser.nextToken(); StringTokenizer innerParser = new StringTokenizer( pair, "=" ); if( innerParser.hasMoreTokens() ) { String paramName = innerParser.nextToken(); if( innerParser.hasMoreTokens() ) { String paramValue = innerParser.nextToken(); // Need to remove from the clear parameters any param name in the encoded params. // If we don't then someone could override something in the encoded param. map.remove( paramName ); newUrl.addQuery( paramName, "", paramValue, true ); } else { newUrl.addQuery( paramName, "", null, true ); } } } context.setCurrentUrl( newUrl.build() ); context.getParameters().resolve( "gateway.name" ); status = UrlRewriteStepStatus.SUCCESS; } return status; }
@Override public List<String> resolve( UrlRewriteContext context, List<String> parameters ) throws Exception { List<String> results = null; if( parameters != null ) { UrlRewriter.Direction direction = context.getDirection(); results = new ArrayList<>( parameters.size() ); for( String parameter : parameters ) { parameter = resolve( direction, parameter ); results.add( parameter ); } } return results; }
@Override public List<String> resolve( UrlRewriteContext context, List<String> parameter ) throws Exception { return context.getParameters().resolve( paramName ); } }
@Override public UrlRewriteStepStatus process( UrlRewriteContext context ) throws Exception { //TODO: Need some way to get a reference to the keystore service and the encryption key in particular. Template currUrl = context.getCurrentUrl(); Builder newUrl = new Builder( currUrl ); Map<String,Query> map = newUrl.getQuery(); Query query = map.remove( ENCRYPTED_PARAMETER_NAME ); UrlRewriteStepStatus status = UrlRewriteStepStatus.FAILURE; status = getUrlRewriteStepStatus(context, newUrl, map, query, status); return status; }
@Override public UrlRewriteStepStatus process( UrlRewriteContext context ) throws Exception { Template rewritten = expander.expandToTemplate( template, context.getParameters(), context.getEvaluator() ); context.setCurrentUrl( rewritten ); return UrlRewriteStepStatus.SUCCESS; }
@Override public UrlRewriteStepStatus process( UrlRewriteContext context ) throws Exception { //TODO: Need some way to get a reference to the keystore service and the encryption key in particular. Template url = context.getCurrentUrl(); String str = url.toString(); String path = str; String query = null; int index = str.indexOf( '?' ); if( index >= 0 ) { path = str.substring( 0, index ); if( index < str.length() ) { query = str.substring( index + 1 ); } } if( query != null ) { query = Base64.encodeBase64String( query.getBytes( StandardCharsets.UTF_8 ) ); query = removeTrailingEquals( query ); url = Parser.parseLiteral( path + "?" + ENCODED_PARAMETER_NAME +"=" + query ); context.setCurrentUrl( url ); } return UrlRewriteStepStatus.SUCCESS; }
@Override public List<String> resolve( UrlRewriteContext context, List<String> parameters ) throws Exception { List<String> result = null; if( parameters != null ) { result = new ArrayList<>( parameters.size() ); for( String parameter : parameters ) { switch( context.getDirection() ) { case IN: parameter = hostMapper.resolveInboundHostName( parameter ); break; case OUT: parameter = hostMapper.resolveOutboundHostName( parameter ); break; } result.add( parameter ); } } return result; }
@Override public UrlRewriteStepStatus process( UrlRewriteContext context ) throws Exception { UrlRewriteStepStatus status = UrlRewriteStepStatus.SUCCESS; if( matcher != null ) { status = UrlRewriteStepStatus.FAILURE; Matcher.Match match = matcher.match( context.getCurrentUrl() ); if( match != null ) { context.addParameters( match.getParams() ); status = UrlRewriteStepStatus.SUCCESS; } } return status; }
UrlRewriteStepStatus stepStatus = stepHolder.process( context ); if( UrlRewriteStepStatus.SUCCESS == stepStatus ) { outputUri = context.getCurrentUrl(); if( ruleName == null ) { LOG.rewroteUrlViaImplicitRule( inputUri, direction, effectiveRuleName, outputUri );