1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22 package org.apache.amber.oauth2.client.demo.controller;
23
24 import javax.servlet.http.HttpServletRequest;
25 import org.apache.amber.oauth2.client.OAuthClient;
26 import org.apache.amber.oauth2.client.URLConnectionClient;
27 import org.apache.amber.oauth2.client.demo.Utils;
28 import org.apache.amber.oauth2.client.demo.model.OAuthParams;
29 import org.apache.amber.oauth2.client.request.OAuthBearerClientRequest;
30 import org.apache.amber.oauth2.client.request.OAuthClientRequest;
31 import org.apache.amber.oauth2.client.response.OAuthResourceResponse;
32 import org.apache.amber.oauth2.common.exception.OAuthProblemException;
33 import org.apache.amber.oauth2.common.exception.OAuthSystemException;
34 import org.springframework.stereotype.Controller;
35 import org.springframework.web.bind.annotation.ModelAttribute;
36 import org.springframework.web.bind.annotation.RequestMapping;
37 import org.springframework.web.servlet.ModelAndView;
38
39
40
41
42
43
44 @Controller
45 @RequestMapping("/get_resource")
46 public class ResourceController {
47
48 @RequestMapping
49 public ModelAndView authorize(@ModelAttribute("oauthParams") OAuthParams oauthParams,
50 HttpServletRequest req) {
51
52 try {
53 OAuthClientRequest request=null;
54
55 if (Utils.REQUEST_TYPE_QUERY.equals(oauthParams.getRequestType())){
56 request= new OAuthBearerClientRequest(oauthParams.getResourceUrl()).setAccessToken(oauthParams.getAccessToken()).buildQueryMessage();
57 }else if (Utils.REQUEST_TYPE_HEADER.equals(oauthParams.getRequestType())){
58 request= new OAuthBearerClientRequest(oauthParams.getResourceUrl()).setAccessToken(oauthParams.getAccessToken()).buildHeaderMessage();
59 }else if (Utils.REQUEST_TYPE_BODY.equals(oauthParams.getRequestType())){
60 request= new OAuthBearerClientRequest(oauthParams.getResourceUrl()).setAccessToken(oauthParams.getAccessToken()).buildBodyMessage();
61 }
62
63 OAuthClient client = new OAuthClient(new URLConnectionClient());
64 OAuthResourceResponse resourceResponse= client.resource(request, oauthParams.getRequestMethod(), OAuthResourceResponse.class);
65
66 if (resourceResponse.getResponseCode()==200){
67 oauthParams.setResource(resourceResponse.getBody());
68 }else{
69 oauthParams.setErrorMessage(
70 "Could not access resource: " + resourceResponse.getResponseCode() + " " + resourceResponse.getBody());
71 }
72 } catch (OAuthSystemException e) {
73 oauthParams.setErrorMessage(e.getMessage());
74 } catch (OAuthProblemException e) {
75 oauthParams.setErrorMessage(e.getMessage());
76 }
77
78 return new ModelAndView("resource");
79
80
81 }
82 }