public static List<OriginalRequestMappingInfo> of(RequestMappingHandlerMapping handlerMapping) { List<OriginalRequestMappingInfo> result = new ArrayList<OriginalRequestMappingInfo>(); for (Entry<RequestMappingInfo, HandlerMethod> entry : handlerMapping.getHandlerMethods().entrySet()) { RequestMappingInfo requestMappingInfo = entry.getKey(); OriginalRequestMappingInfo o = new OriginalRequestMappingInfo(); o.setSite(Site.of(requestMappingInfo.getPatternsCondition().getPatterns().iterator().next())); o.setMethods(requestMappingInfo.getMethodsCondition().getMethods()); o.setPatterns(requestMappingInfo.getPatternsCondition().getPatterns()); Set<String> params = new HashSet<>(); for (NameValueExpression<String> nameValueExpression : requestMappingInfo.getParamsCondition().getExpressions()) { params.add(nameValueExpression.toString()); } o.setParams(params); result.add(o); } return result.stream().sorted().collect(Collectors.toList()); }
private List<String[]> getRequestParams(HttpServletRequest request, Set<RequestMappingInfo> partialMatches) { List<String[]> result = new ArrayList<String[]>(); for (RequestMappingInfo partialMatch : partialMatches) { ParamsRequestCondition condition = partialMatch.getParamsCondition(); Set<NameValueExpression<String>> expressions = condition.getExpressions(); if (!CollectionUtils.isEmpty(expressions) && condition.getMatchingCondition(request) == null) { int i = 0; String[] array = new String[expressions.size()]; for (NameValueExpression<String> expression : expressions) { array[i++] = expression.toString(); } result.add(array); } } return result; }
private void setFrom(RequestMappingInfo info, Permission permission) { permission.setUrl(API_PREFIX + info.getPatternsCondition().getPatterns().stream().collect(Collectors.joining(", "))); permission.setHttpMethod(info.getMethodsCondition().getMethods().stream() .map(Enum::toString).collect(Collectors.joining(", "))); Set<NameValueExpression<String>> params = info.getParamsCondition().getExpressions(); if (!params.isEmpty()) { permission.setParameters("Url parameters: " + params.stream() .map(NameValueExpression::getName) .collect(Collectors.joining(", ")) ); } }
private Set<String> getRequestParams(HttpServletRequest request, Set<RequestMappingInfo> partialMatches) { for (RequestMappingInfo partialMatch : partialMatches) { ParamsRequestCondition condition = partialMatch.getParamsCondition(); if (!CollectionUtils.isEmpty(condition.getExpressions()) && (condition.getMatchingCondition(request) == null)) { Set<String> expressions = new HashSet<String>(); for (NameValueExpression<String> expr : condition.getExpressions()) { expressions.add(expr.toString()); } return expressions; } } return null; }
/** * Return the contained request header expressions. */ public Set<NameValueExpression<String>> getExpressions() { return new LinkedHashSet<NameValueExpression<String>>(this.expressions); }