Как передать переменную из одного контроллера в другой весной - PullRequest
0 голосов
/ 16 апреля 2019

Мне удалось получить токены доступа с локального сервера, но мне нужно использовать токен доступа, полученный из контроллера получения регистрации, в пост-контроллере регистрации. Как получить переменную «token» в пост-контроллере регистрации для использования в вызовах HTTP?

// Initial mapping for visiting the form
    @RequestMapping(value = "/signup", method= RequestMethod.GET)
    public String signupForm(@RequestParam("code") String code, @ModelAttribute("signup") emailInput form)
            throws JsonProcessingException, IOException {
            ResponseEntity<String> response = null;
            System.out.println("Authorization Code: " + code);

            RestTemplate restTemplate = new RestTemplate();

// Client id and secret replaced
            String credentials = "clientId:clientSecret";
            String encodedCredentials = new String(Base64.encodeBase64(credentials.getBytes()));

            HttpHeaders headers = new HttpHeaders();
            headers.setAccept(Arrays.asList(MediaType.APPLICATION_JSON));
            headers.add("Authorization", "Basic " + encodedCredentials);

            HttpEntity<String> request = new HttpEntity<String>(headers);

            String access_token_url = "https://idfed.constantcontact.com/as/token.oauth2";
            access_token_url += "?code=" + code;
            access_token_url += "&redirect_uri=http://localhost:8080/signup";
            access_token_url += "&grant_type=authorization_code";

            response = restTemplate.exchange(access_token_url, HttpMethod.POST, request, String.class);

            System.out.println("Full Access Token Response: " + response.getBody());

            // Get the Access Token From the recieved JSON response
            ObjectMapper mapper = new ObjectMapper();
            JsonNode node = mapper.readTree(response.getBody());
            String token = node.path("access_token").asText();
            System.out.println("Here is my token: " + token);

        return "/signup";
    }

    // What happens after the user presses the submit button

Второй контроллер, где мне нужна переменная для использования в вызовах. Мне нужно это здесь, чтобы я мог использовать переменные формы, собранные со страницы HTML, чтобы делать вызовы после того, как пользователь публикует данные формы.

    @RequestMapping(value = "/signup", method= RequestMethod.POST)
    public String signupSubmit(@ModelAttribute("signup") emailInput form, RedirectAttributes redirectAttributes)
            throws IOException {
    // Use access token here to make calls to endpoints
        redirectAttributes.addFlashAttribute("email", form.getEmail());
        return "redirect:/result";
    }
...