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.rs.validator;
23
24 import static org.apache.amber.oauth2.rs.ResourceServer.getQueryParameterValues;
25
26 import javax.servlet.http.HttpServletRequest;
27
28 import org.apache.amber.oauth2.common.OAuth;
29 import org.apache.amber.oauth2.common.error.OAuthError;
30 import org.apache.amber.oauth2.common.exception.OAuthProblemException;
31 import org.apache.amber.oauth2.common.utils.OAuthUtils;
32 import org.apache.amber.oauth2.common.validators.AbstractValidator;
33 import org.apache.amber.oauth2.rs.ResourceServer;
34
35
36
37
38
39
40 public class BearerQueryOAuthValidator extends AbstractValidator {
41
42 @Override
43 public void validateContentType(HttpServletRequest request) throws OAuthProblemException {
44 }
45
46 @Override
47 public void validateMethod(HttpServletRequest request) throws OAuthProblemException {
48 }
49
50 @Override
51 public void validateRequiredParameters(HttpServletRequest request) throws OAuthProblemException {
52
53 String[] tokens = getQueryParameterValues(request, OAuth.OAUTH_BEARER_TOKEN);
54 if (OAuthUtils.hasEmptyValues(tokens)) {
55 tokens = getQueryParameterValues(request, OAuth.OAUTH_TOKEN);
56 if (OAuthUtils.hasEmptyValues(tokens)) {
57 throw OAuthProblemException.error(null, "Missing OAuth token.");
58 }
59 }
60
61 if (tokens != null && tokens.length > 1) {
62 throw OAuthProblemException.error(OAuthError.TokenResponse.INVALID_REQUEST, "Multiple tokens attached.");
63 }
64
65 String oauthVersionDiff = ResourceServer.getQueryParameterValue(request, OAuth.OAUTH_VERSION_DIFFER);
66 if (!OAuthUtils.isEmpty(oauthVersionDiff)) {
67 throw OAuthProblemException.error(OAuthError.TokenResponse.INVALID_REQUEST,
68 "Incorrect OAuth version. Found OAuth V1.0.");
69 }
70 }
71 }