@SuppressWarnings({ "unchecked", "rawtypes" }) public Object resolveArgument(MethodParameter parameter, ModelAndViewContainer mavContainer, NativeWebRequest request, WebDataBinderFactory binderFactory) throws Exception { SignedRequest annotation = parameter.getParameterAnnotation(SignedRequest.class); if (annotation == null) { return WebArgumentResolver.UNRESOLVED; } String signedRequest = request.getParameter("signed_request"); if (signedRequest == null && annotation.required()) { throw new IllegalStateException("Required signed_request parameter is missing."); } if (signedRequest == null) { return null; } Class<?> parameterType = parameter.getParameterType(); if (MultiValueMap.class.isAssignableFrom(parameterType)) { Map map = signedRequestDecoder.decodeSignedRequest(signedRequest, Map.class); LinkedMultiValueMap<String, Object> mvm = new LinkedMultiValueMap<String, Object>(map.size()); mvm.setAll((Map<String, Object>) map); return mvm; } return signedRequestDecoder.decodeSignedRequest(signedRequest, parameterType); } }
@SuppressWarnings({ "unchecked", "rawtypes" }) public Object resolveArgument(MethodParameter parameter, ModelAndViewContainer mavContainer, NativeWebRequest request, WebDataBinderFactory binderFactory) throws Exception { SignedRequest annotation = parameter.getParameterAnnotation(SignedRequest.class); if (annotation == null) { return WebArgumentResolver.UNRESOLVED; } String signedRequest = request.getParameter("signed_request"); if (signedRequest == null && annotation.required()) { throw new IllegalStateException("Required signed_request parameter is missing."); } if (signedRequest == null) { return null; } Class<?> parameterType = parameter.getParameterType(); if (MultiValueMap.class.isAssignableFrom(parameterType)) { Map map = signedRequestDecoder.decodeSignedRequest(signedRequest, Map.class); LinkedMultiValueMap<String, Object> mvm = new LinkedMultiValueMap<String, Object>(map.size()); mvm.setAll((Map<String, Object>) map); return mvm; } return signedRequestDecoder.decodeSignedRequest(signedRequest, parameterType); } }