From bace2a4416af7de4dbba54a6804efcf31d60d250 Mon Sep 17 00:00:00 2001 From: eugenp Date: Fri, 27 Feb 2015 21:17:24 +0200 Subject: [PATCH 1/2] changing the wiring to autowire --- .../java/org/baeldung/config/WebConfig.java | 16 ++-------------- .../org/baeldung/web/RedditController.java | 19 ++++++++++--------- .../baeldung/web/RestExceptionHandler.java | 4 +--- 3 files changed, 13 insertions(+), 26 deletions(-) diff --git a/spring-security-oauth/src/main/java/org/baeldung/config/WebConfig.java b/spring-security-oauth/src/main/java/org/baeldung/config/WebConfig.java index fe987b8c97..ad154ed99b 100644 --- a/spring-security-oauth/src/main/java/org/baeldung/config/WebConfig.java +++ b/spring-security-oauth/src/main/java/org/baeldung/config/WebConfig.java @@ -2,10 +2,9 @@ package org.baeldung.config; import java.util.Arrays; -import org.baeldung.web.RedditController; -import org.baeldung.web.RestExceptionHandler; import org.springframework.beans.factory.annotation.Value; import org.springframework.context.annotation.Bean; +import org.springframework.context.annotation.ComponentScan; import org.springframework.context.annotation.Configuration; import org.springframework.context.annotation.PropertySource; import org.springframework.context.support.PropertySourcesPlaceholderConfigurer; @@ -28,6 +27,7 @@ import org.springframework.web.servlet.view.InternalResourceViewResolver; @Configuration @EnableWebMvc +@ComponentScan(basePackages = { "org.baeldung.web" }) public class WebConfig extends WebMvcConfigurerAdapter { @Bean @@ -48,18 +48,6 @@ public class WebConfig extends WebMvcConfigurerAdapter { configurer.enable(); } - @Bean - public RedditController redditController(OAuth2RestTemplate redditRestTemplate) { - RedditController controller = new RedditController(); - controller.setRedditRestTemplate(redditRestTemplate); - return controller; - } - - @Bean - public RestExceptionHandler restExceptionHandler() { - return new RestExceptionHandler(); - } - public void addResourceHandlers(ResourceHandlerRegistry registry) { registry.addResourceHandler("/resources/**").addResourceLocations("/resources/"); } diff --git a/spring-security-oauth/src/main/java/org/baeldung/web/RedditController.java b/spring-security-oauth/src/main/java/org/baeldung/web/RedditController.java index 869553448b..f6fe2d241c 100644 --- a/spring-security-oauth/src/main/java/org/baeldung/web/RedditController.java +++ b/spring-security-oauth/src/main/java/org/baeldung/web/RedditController.java @@ -8,6 +8,7 @@ import java.util.Map; import org.slf4j.Logger; import org.slf4j.LoggerFactory; +import org.springframework.beans.factory.annotation.Autowired; import org.springframework.security.oauth2.client.OAuth2RestTemplate; import org.springframework.stereotype.Controller; import org.springframework.ui.Model; @@ -22,12 +23,16 @@ import com.fasterxml.jackson.databind.ObjectMapper; @Controller public class RedditController { - private OAuth2RestTemplate redditRestTemplate; private final Logger LOGGER = LoggerFactory.getLogger(getClass()); + @Autowired + private OAuth2RestTemplate redditRestTemplate; + + // API + @RequestMapping("/info") - public String getInfo(Model model) { + public final String getInfo(Model model) { JsonNode node = redditRestTemplate.getForObject("https://oauth.reddit.com/api/v1/me", JsonNode.class); String name = node.get("name").asText(); model.addAttribute("info", name); @@ -35,7 +40,7 @@ public class RedditController { } @RequestMapping("/submit") - public String submit(Model model, @RequestParam Map formParams) { + public final String submit(Model model, @RequestParam Map formParams) { MultiValueMap param = new LinkedMultiValueMap(); param.add("api_type", "json"); param.add("kind", "link"); @@ -56,7 +61,7 @@ public class RedditController { } @RequestMapping("/post") - public String showSubmissionForm(Model model) { + public final String showSubmissionForm(Model model) { String needsCaptchaResult = needsCaptcha(); if (needsCaptchaResult.equalsIgnoreCase("true")) { String iden = getNewCaptcha(); @@ -67,7 +72,7 @@ public class RedditController { // === private - public List getSubreddit() throws JsonProcessingException, IOException { + List getSubreddit() throws JsonProcessingException, IOException { String result = redditRestTemplate.getForObject("https://oauth.reddit.com/subreddits/popular?limit=50", String.class); JsonNode node = new ObjectMapper().readTree(result); node = node.get("data").get("children"); @@ -108,8 +113,4 @@ public class RedditController { } } - public void setRedditRestTemplate(OAuth2RestTemplate redditRestTemplate) { - this.redditRestTemplate = redditRestTemplate; - } - } diff --git a/spring-security-oauth/src/main/java/org/baeldung/web/RestExceptionHandler.java b/spring-security-oauth/src/main/java/org/baeldung/web/RestExceptionHandler.java index 0a1c671a0b..704bca0219 100644 --- a/spring-security-oauth/src/main/java/org/baeldung/web/RestExceptionHandler.java +++ b/spring-security-oauth/src/main/java/org/baeldung/web/RestExceptionHandler.java @@ -14,9 +14,6 @@ import org.springframework.web.servlet.mvc.method.annotation.ResponseEntityExcep @ControllerAdvice public class RestExceptionHandler extends ResponseEntityExceptionHandler implements Serializable { - /** - * - */ private static final long serialVersionUID = -3861125729653781371L; public RestExceptionHandler() { @@ -39,4 +36,5 @@ public class RestExceptionHandler extends ResponseEntityExceptionHandler impleme String response = "Error Occurred : " + ex.getMessage(); return handleExceptionInternal(ex, response, new HttpHeaders(), HttpStatus.INTERNAL_SERVER_ERROR, request); } + } \ No newline at end of file From a9834d20cae41544e88cbd60ae9ef70729cc2b1d Mon Sep 17 00:00:00 2001 From: eugenp Date: Fri, 27 Feb 2015 22:28:59 +0200 Subject: [PATCH 2/2] small cleanup work --- ...yAuthorizationCodeAccessTokenProvider.java | 3 -- .../org/baeldung/web/RedditController.java | 44 +++++++++---------- 2 files changed, 21 insertions(+), 26 deletions(-) diff --git a/spring-security-oauth/src/main/java/org/baeldung/config/MyAuthorizationCodeAccessTokenProvider.java b/spring-security-oauth/src/main/java/org/baeldung/config/MyAuthorizationCodeAccessTokenProvider.java index ca37ab3f82..598f97a556 100644 --- a/spring-security-oauth/src/main/java/org/baeldung/config/MyAuthorizationCodeAccessTokenProvider.java +++ b/spring-security-oauth/src/main/java/org/baeldung/config/MyAuthorizationCodeAccessTokenProvider.java @@ -23,9 +23,6 @@ import org.springframework.util.MultiValueMap; public class MyAuthorizationCodeAccessTokenProvider extends AuthorizationCodeAccessTokenProvider implements Serializable { - /** - * - */ private static final long serialVersionUID = 3822611002661972274L; private StateKeyGenerator stateKeyGenerator = new DefaultStateKeyGenerator(); diff --git a/spring-security-oauth/src/main/java/org/baeldung/web/RedditController.java b/spring-security-oauth/src/main/java/org/baeldung/web/RedditController.java index f6fe2d241c..8fbca7fc75 100644 --- a/spring-security-oauth/src/main/java/org/baeldung/web/RedditController.java +++ b/spring-security-oauth/src/main/java/org/baeldung/web/RedditController.java @@ -24,7 +24,7 @@ import com.fasterxml.jackson.databind.ObjectMapper; @Controller public class RedditController { - private final Logger LOGGER = LoggerFactory.getLogger(getClass()); + private final Logger logger = LoggerFactory.getLogger(getClass()); @Autowired private OAuth2RestTemplate redditRestTemplate; @@ -33,38 +33,37 @@ public class RedditController { @RequestMapping("/info") public final String getInfo(Model model) { - JsonNode node = redditRestTemplate.getForObject("https://oauth.reddit.com/api/v1/me", JsonNode.class); - String name = node.get("name").asText(); + final JsonNode node = redditRestTemplate.getForObject("https://oauth.reddit.com/api/v1/me", JsonNode.class); + final String name = node.get("name").asText(); model.addAttribute("info", name); return "reddit"; } @RequestMapping("/submit") public final String submit(Model model, @RequestParam Map formParams) { - MultiValueMap param = new LinkedMultiValueMap(); + final MultiValueMap param = new LinkedMultiValueMap(); param.add("api_type", "json"); param.add("kind", "link"); param.add("resubmit", "true"); param.add("sendreplies", "false"); param.add("then", "comments"); - - for (Map.Entry entry : formParams.entrySet()) { + for (final Map.Entry entry : formParams.entrySet()) { param.add(entry.getKey(), entry.getValue()); } - LOGGER.info("User submitting Link with these parameters: " + formParams.entrySet()); + logger.info("User submitting Link with these parameters: " + formParams.entrySet()); JsonNode node = redditRestTemplate.postForObject("https://oauth.reddit.com/api/submit", param, JsonNode.class); - LOGGER.info("Full Reddit Response: " + node.toString()); + logger.info("Full Reddit Response: " + node.toString()); String responseMsg = parseResponse(node); model.addAttribute("msg", responseMsg); return "submissionResponse"; } @RequestMapping("/post") - public final String showSubmissionForm(Model model) { - String needsCaptchaResult = needsCaptcha(); + public final String showSubmissionForm(final Model model) { + final String needsCaptchaResult = needsCaptcha(); if (needsCaptchaResult.equalsIgnoreCase("true")) { - String iden = getNewCaptcha(); + final String iden = getNewCaptcha(); model.addAttribute("iden", iden); } return "submissionForm"; @@ -72,34 +71,33 @@ public class RedditController { // === private - List getSubreddit() throws JsonProcessingException, IOException { - String result = redditRestTemplate.getForObject("https://oauth.reddit.com/subreddits/popular?limit=50", String.class); - JsonNode node = new ObjectMapper().readTree(result); - node = node.get("data").get("children"); - List subreddits = new ArrayList(); + final List getSubreddit() throws JsonProcessingException, IOException { + final String result = redditRestTemplate.getForObject("https://oauth.reddit.com/subreddits/popular?limit=50", String.class); + final JsonNode node = new ObjectMapper().readTree(result).get("data").get("children"); + final List subreddits = new ArrayList(); for (JsonNode child : node) { subreddits.add(child.get("data").get("display_name").asText()); } return subreddits; } - private String needsCaptcha() { + private final String needsCaptcha() { String result = redditRestTemplate.getForObject("https://oauth.reddit.com/api/needs_captcha.json", String.class); return result; } - private String getNewCaptcha() { - Map param = new HashMap(); + private final String getNewCaptcha() { + final Map param = new HashMap(); param.put("api_type", "json"); - String result = redditRestTemplate.postForObject("https://oauth.reddit.com/api/new_captcha", param, String.class, param); - String[] split = result.split("\""); + final String result = redditRestTemplate.postForObject("https://oauth.reddit.com/api/new_captcha", param, String.class, param); + final String[] split = result.split("\""); return split[split.length - 2]; } - private String parseResponse(JsonNode node) { + private final String parseResponse(final JsonNode node) { String result = ""; - JsonNode errorNode = node.get("json").get("errors").get(0); + final JsonNode errorNode = node.get("json").get("errors").get(0); if (errorNode != null) { for (JsonNode child : errorNode) { result = result + child.toString().replaceAll("\"|null", "") + "
";