■ ■ ■ ■ ■ ■
common/src/main/java/com/google/tsunami/common/net/FuzzingUtils.java
| skipped 52 lines |
53 | 53 | | private static ImmutableList<HttpRequest> fuzzGetParameters( |
54 | 54 | | HttpRequest request, String payload, Optional<String> defaultParameter) { |
55 | 55 | | URI parsedUrl = URI.create(request.url()); |
56 | | - | ImmutableList<HttpQueryParams> queryParams = parseQuery(parsedUrl.getQuery()); |
| 56 | + | ImmutableList<HttpQueryParameter> queryParams = parseQuery(parsedUrl.getQuery()); |
57 | 57 | | if (queryParams.isEmpty() && defaultParameter.isPresent()) { |
58 | 58 | | return ImmutableList.of( |
59 | 59 | | request.toBuilder() |
60 | 60 | | .setUrl( |
61 | 61 | | assembleUrlWithQueries( |
62 | 62 | | parsedUrl, |
63 | | - | ImmutableList.of(HttpQueryParams.create(defaultParameter.get(), payload)))) |
| 63 | + | ImmutableList.of(HttpQueryParameter.create(defaultParameter.get(), payload)))) |
64 | 64 | | .build()); |
65 | 65 | | } |
66 | 66 | | return fuzzParams(queryParams, payload).stream() |
| skipped 2 lines |
69 | 69 | | .collect(toImmutableList()); |
70 | 70 | | } |
71 | 71 | | |
72 | | - | private static ImmutableSet<ImmutableList<HttpQueryParams>> fuzzParams( |
73 | | - | ImmutableList<HttpQueryParams> params, String payload) { |
74 | | - | ImmutableSet.Builder<ImmutableList<HttpQueryParams>> fuzzedParamsbuilder = |
| 72 | + | private static ImmutableSet<ImmutableList<HttpQueryParameter>> fuzzParams( |
| 73 | + | ImmutableList<HttpQueryParameter> params, String payload) { |
| 74 | + | ImmutableSet.Builder<ImmutableList<HttpQueryParameter>> fuzzedParamsbuilder = |
75 | 75 | | ImmutableSet.builder(); |
76 | 76 | | |
77 | 77 | | for (int i = 0; i < params.size(); i++) { |
78 | | - | List<HttpQueryParams> paramsWithPayload = new ArrayList<>(params); |
79 | | - | paramsWithPayload.set(i, HttpQueryParams.create(params.get(i).name(), payload)); |
| 78 | + | List<HttpQueryParameter> paramsWithPayload = new ArrayList<>(params); |
| 79 | + | paramsWithPayload.set(i, HttpQueryParameter.create(params.get(i).name(), payload)); |
80 | 80 | | fuzzedParamsbuilder.add(ImmutableList.copyOf(paramsWithPayload)); |
81 | 81 | | } |
82 | 82 | | |
83 | 83 | | return fuzzedParamsbuilder.build(); |
84 | 84 | | } |
85 | 85 | | |
86 | | - | private static ImmutableList<HttpQueryParams> parseQuery(String query) { |
| 86 | + | public static ImmutableList<HttpQueryParameter> parseQuery(String query) { |
87 | 87 | | if (isNullOrEmpty(query)) { |
88 | 88 | | return ImmutableList.of(); |
89 | 89 | | } |
90 | | - | ImmutableList.Builder<HttpQueryParams> queryParamsBuilder = ImmutableList.builder(); |
| 90 | + | ImmutableList.Builder<HttpQueryParameter> queryParamsBuilder = ImmutableList.builder(); |
91 | 91 | | for (String param : Splitter.on('&').split(query)) { |
92 | 92 | | int equalPosition = param.indexOf("="); |
93 | 93 | | if (equalPosition > -1) { |
94 | 94 | | String name = param.substring(0, equalPosition); |
95 | 95 | | String value = param.substring(equalPosition + 1); |
96 | | - | queryParamsBuilder.add(HttpQueryParams.create(name, value)); |
| 96 | + | queryParamsBuilder.add(HttpQueryParameter.create(name, value)); |
97 | 97 | | } else { |
98 | | - | queryParamsBuilder.add(HttpQueryParams.create(param, "")); |
| 98 | + | queryParamsBuilder.add(HttpQueryParameter.create(param, "")); |
99 | 99 | | } |
100 | 100 | | } |
101 | 101 | | return queryParamsBuilder.build(); |
102 | 102 | | } |
103 | 103 | | |
104 | 104 | | private static String assembleUrlWithQueries( |
105 | | - | URI parsedUrl, ImmutableList<HttpQueryParams> params) { |
| 105 | + | URI parsedUrl, ImmutableList<HttpQueryParameter> params) { |
106 | 106 | | String query = assembleQueryParams(params); |
107 | 107 | | StringBuilder urlBuilder = new StringBuilder(); |
108 | 108 | | urlBuilder.append(parsedUrl.getScheme()).append("://").append(parsedUrl.getRawAuthority()); |
| skipped 9 lines |
118 | 118 | | return urlBuilder.toString(); |
119 | 119 | | } |
120 | 120 | | |
121 | | - | private static String assembleQueryParams(ImmutableList<HttpQueryParams> params) { |
| 121 | + | private static String assembleQueryParams(ImmutableList<HttpQueryParameter> params) { |
122 | 122 | | return params.stream() |
123 | 123 | | .map(param -> String.format("%s=%s", param.name(), param.value())) |
124 | 124 | | .collect(joining("&")); |
125 | 125 | | } |
126 | 126 | | |
| 127 | + | /** URL Query parameter name and value pair. */ |
127 | 128 | | @AutoValue |
128 | | - | abstract static class HttpQueryParams { |
129 | | - | abstract String name(); |
| 129 | + | public abstract static class HttpQueryParameter { |
| 130 | + | public abstract String name(); |
130 | 131 | | |
131 | | - | abstract String value(); |
| 132 | + | public abstract String value(); |
132 | 133 | | |
133 | | - | public static HttpQueryParams create(String name, String value) { |
134 | | - | return new AutoValue_FuzzingUtils_HttpQueryParams(name, value); |
| 134 | + | public static HttpQueryParameter create(String name, String value) { |
| 135 | + | return new AutoValue_FuzzingUtils_HttpQueryParameter(name, value); |
135 | 136 | | } |
136 | 137 | | } |
137 | 138 | | |
| skipped 3 lines |