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 bf454a9d7e..024873c632 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 @@ -2,7 +2,6 @@ package org.baeldung.config; import java.io.IOException; import java.net.URI; -import java.util.Collections; import java.util.Iterator; import java.util.List; import java.util.Map; @@ -20,7 +19,6 @@ import org.springframework.security.oauth2.client.resource.OAuth2AccessDeniedExc import org.springframework.security.oauth2.client.resource.OAuth2ProtectedResourceDetails; import org.springframework.security.oauth2.client.resource.UserApprovalRequiredException; import org.springframework.security.oauth2.client.resource.UserRedirectRequiredException; -import org.springframework.security.oauth2.client.token.AccessTokenProvider; import org.springframework.security.oauth2.client.token.AccessTokenRequest; import org.springframework.security.oauth2.client.token.DefaultRequestEnhancer; import org.springframework.security.oauth2.client.token.RequestEnhancer; @@ -34,7 +32,7 @@ import org.springframework.util.LinkedMultiValueMap; import org.springframework.util.MultiValueMap; import org.springframework.web.client.ResponseExtractor; -public class MyAuthorizationCodeAccessTokenProvider extends AuthorizationCodeAccessTokenProvider implements AccessTokenProvider { +public class MyAuthorizationCodeAccessTokenProvider extends AuthorizationCodeAccessTokenProvider { private StateKeyGenerator stateKeyGenerator = new DefaultStateKeyGenerator(); @@ -42,31 +40,6 @@ public class MyAuthorizationCodeAccessTokenProvider extends AuthorizationCodeAcc private RequestEnhancer authorizationRequestEnhancer = new DefaultRequestEnhancer(); - @Override - public void setAuthorizationRequestEnhancer(RequestEnhancer authorizationRequestEnhancer) { - this.authorizationRequestEnhancer = authorizationRequestEnhancer; - } - - @Override - public void setScopePrefix(String scopePrefix) { - this.scopePrefix = scopePrefix; - } - - @Override - public void setStateKeyGenerator(StateKeyGenerator stateKeyGenerator) { - this.stateKeyGenerator = stateKeyGenerator; - } - - @Override - public boolean supportsResource(OAuth2ProtectedResourceDetails resource) { - return resource instanceof AuthorizationCodeResourceDetails && "authorization_code".equals(resource.getGrantType()); - } - - @Override - public boolean supportsRefresh(OAuth2ProtectedResourceDetails resource) { - return supportsResource(resource); - } - @Override public String obtainAuthorizationCode(OAuth2ProtectedResourceDetails details, AccessTokenRequest request) throws UserRedirectRequiredException, UserApprovalRequiredException, AccessDeniedException, OAuth2AccessDeniedException { @@ -127,15 +100,6 @@ public class MyAuthorizationCodeAccessTokenProvider extends AuthorizationCodeAcc } - @Override - protected ResponseExtractor> getAuthorizationResponseExtractor() { - return new ResponseExtractor>() { - public ResponseEntity extractData(ClientHttpResponse response) throws IOException { - return new ResponseEntity(response.getHeaders(), response.getStatusCode()); - } - }; - } - @Override public OAuth2AccessToken obtainAccessToken(OAuth2ProtectedResourceDetails details, AccessTokenRequest request) throws UserRedirectRequiredException, UserApprovalRequiredException, AccessDeniedException, OAuth2AccessDeniedException { @@ -287,9 +251,4 @@ public class MyAuthorizationCodeAccessTokenProvider extends AuthorizationCodeAcc } - protected UserApprovalRequiredException getUserApprovalSignal(AuthorizationCodeResourceDetails resource, AccessTokenRequest request) { - String message = String.format("Do you approve the client '%s' to access your resources with scope=%s", resource.getClientId(), resource.getScope()); - return new UserApprovalRequiredException(resource.getUserAuthorizationUri(), Collections.singletonMap(OAuth2Utils.USER_OAUTH_APPROVAL, message), resource.getClientId(), resource.getScope()); - } - } 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 b4e07d4f2b..f973e125b6 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 @@ -1,6 +1,8 @@ package org.baeldung.web; import org.springframework.security.oauth2.client.OAuth2RestTemplate; +import org.springframework.security.oauth2.client.resource.UserApprovalRequiredException; +import org.springframework.security.oauth2.client.resource.UserRedirectRequiredException; import org.springframework.stereotype.Controller; import org.springframework.ui.Model; import org.springframework.web.bind.annotation.RequestMapping; @@ -14,11 +16,19 @@ public class RedditController { private OAuth2RestTemplate redditRestTemplate; @RequestMapping("/info") - public String getInfo(Model model) throws Exception { - String result = redditRestTemplate.getForObject("https://oauth.reddit.com/api/v1/me", String.class); - JsonNode node = new ObjectMapper().readTree(result); - String name = node.get("name").asText(); - model.addAttribute("info", name); + public String getInfo(Model model) { + try { + String result = redditRestTemplate.getForObject("https://oauth.reddit.com/api/v1/me", String.class); + JsonNode node = new ObjectMapper().readTree(result); + String name = node.get("name").asText(); + model.addAttribute("info", name); + } catch (UserApprovalRequiredException e) { + throw e; + } catch (UserRedirectRequiredException e) { + throw e; + } catch (Exception e) { + model.addAttribute("error", e.getLocalizedMessage()); + } return "reddit"; } diff --git a/spring-security-oauth/src/main/webapp/WEB-INF/jsp/reddit.jsp b/spring-security-oauth/src/main/webapp/WEB-INF/jsp/reddit.jsp index ac16612972..416a3a6cd2 100755 --- a/spring-security-oauth/src/main/webapp/WEB-INF/jsp/reddit.jsp +++ b/spring-security-oauth/src/main/webapp/WEB-INF/jsp/reddit.jsp @@ -1,4 +1,3 @@ - <%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%> @@ -6,7 +5,12 @@ Spring Security OAuth -

Your Reddit Info

-Your reddit username is ${info} + + +

Your Reddit Info

+ Your reddit username is ${info} +
+ Sorry, error occurred. +
\ No newline at end of file diff --git a/spring-security-oauth/src/main/webapp/WEB-INF/jsp/test.jsp b/spring-security-oauth/src/main/webapp/WEB-INF/jsp/test.jsp deleted file mode 100644 index c3d955ee28..0000000000 --- a/spring-security-oauth/src/main/webapp/WEB-INF/jsp/test.jsp +++ /dev/null @@ -1,12 +0,0 @@ - -<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%> - - - -Spring Security OAuth - - -

Test

-Test ${info} - - \ No newline at end of file