1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16 package org.springframework.security.oauth2.common.util;
17
18 import java.util.Arrays;
19 import java.util.Collection;
20 import java.util.HashMap;
21 import java.util.HashSet;
22 import java.util.Map;
23 import java.util.Properties;
24 import java.util.Set;
25 import java.util.TreeSet;
26
27 import org.springframework.util.StringUtils;
28
29
30
31
32
33 public abstract class OAuth2Utils {
34
35
36
37
38 public static final String CLIENT_ID = "client_id";
39
40
41
42
43 public static final String STATE = "state";
44
45
46
47
48 public static final String SCOPE = "scope";
49
50
51
52
53 public static final String REDIRECT_URI = "redirect_uri";
54
55
56
57
58 public static final String RESPONSE_TYPE = "response_type";
59
60
61
62
63 public static final String USER_OAUTH_APPROVAL = "user_oauth_approval";
64
65
66
67
68 public static final String SCOPE_PREFIX = "scope.";
69
70
71
72
73 public static final String GRANT_TYPE = "grant_type";
74
75
76
77
78
79
80
81 public static Set<String> parseParameterList(String values) {
82 Set<String> result = new TreeSet<String>();
83 if (values != null && values.trim().length() > 0) {
84
85 String[] tokens = values.split("[\\s+]");
86 result.addAll(Arrays.asList(tokens));
87 }
88 return result;
89 }
90
91
92
93
94
95
96
97 public static String formatParameterList(Collection<String> value) {
98 return value == null ? null : StringUtils.collectionToDelimitedString(value, " ");
99 }
100
101
102
103
104
105
106
107 public static Map<String, String> extractMap(String query) {
108 Map<String, String> map = new HashMap<String, String>();
109 Properties properties = StringUtils.splitArrayElementsIntoProperties(
110 StringUtils.delimitedListToStringArray(query, "&"), "=");
111 if (properties != null) {
112 for (Object key : properties.keySet()) {
113 map.put(key.toString(), properties.get(key).toString());
114 }
115 }
116 return map;
117 }
118
119
120
121
122
123
124
125
126 public static boolean containsAll(Set<String> target, Set<String> members) {
127 target = new HashSet<String>(target);
128 target.retainAll(members);
129 return target.size() == members.size();
130 }
131 }