Skip to content

File tree

3 files changed

+31
-53
lines changed

3 files changed

+31
-53
lines changed

server/src/main/java/org/cloudfoundry/identity/uaa/authentication/AuthzAuthenticationFilter.java

Lines changed: 2 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,9 @@
11
package org.cloudfoundry.identity.uaa.authentication;
22

3-
import com.fasterxml.jackson.core.type.TypeReference;
43
import org.cloudfoundry.identity.uaa.login.AccountSavingAuthenticationSuccessHandler;
54
import org.cloudfoundry.identity.uaa.oauth.provider.error.OAuth2AuthenticationEntryPoint;
6-
import org.cloudfoundry.identity.uaa.util.JsonUtils;
75
import org.cloudfoundry.identity.uaa.util.SessionUtils;
6+
import org.cloudfoundry.identity.uaa.util.UaaHttpRequestUtils;
87
import org.cloudfoundry.identity.uaa.util.UaaStringUtils;
98
import org.slf4j.Logger;
109
import org.slf4j.LoggerFactory;
@@ -29,7 +28,6 @@
2928
import java.io.IOException;
3029
import java.util.Collections;
3130
import java.util.Enumeration;
32-
import java.util.HashMap;
3331
import java.util.HashSet;
3432
import java.util.List;
3533
import java.util.Map;
@@ -118,7 +116,7 @@ public void doFilter(ServletRequest request, ServletResponse response, FilterCha
118116
HttpServletRequest req = (HttpServletRequest) request;
119117
HttpServletResponse res = (HttpServletResponse) response;
120118

121-
Map<String, String> loginInfo = getCredentials(req);
119+
Map<String, String> loginInfo = UaaHttpRequestUtils.getCredentials(req, parameterNames);
122120

123121
boolean buggyVmcAcceptHeader = false;
124122

@@ -184,29 +182,6 @@ public String getHeader(String name) {
184182
chain.doFilter(request, response);
185183
}
186184

187-
private Map<String, String> getCredentials(HttpServletRequest request) {
188-
Map<String, String> credentials = new HashMap<>();
189-
190-
for (String paramName : parameterNames) {
191-
String value = request.getParameter(paramName);
192-
if (value != null) {
193-
if (value.startsWith("{")) {
194-
try {
195-
Map<String, String> jsonCredentials = JsonUtils.readValue(value,
196-
new TypeReference<>() {
197-
});
198-
credentials.putAll(jsonCredentials);
199-
} catch (JsonUtils.JsonUtilException e) {
200-
logger.warn("Unknown format of value for request param: " + paramName + ". Ignoring.");
201-
}
202-
} else {
203-
credentials.put(paramName, value);
204-
}
205-
}
206-
}
207-
208-
return credentials;
209-
}
210185

211186
@Override
212187
public void init(FilterConfig filterConfig) {

server/src/main/java/org/cloudfoundry/identity/uaa/authentication/PasscodeAuthenticationFilter.java

Lines changed: 2 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -14,8 +14,8 @@
1414

1515
package org.cloudfoundry.identity.uaa.authentication;
1616

17-
import com.fasterxml.jackson.core.type.TypeReference;
1817
import org.cloudfoundry.identity.uaa.oauth.provider.OAuth2RequestFactory;
18+
import org.cloudfoundry.identity.uaa.util.UaaHttpRequestUtils;
1919
import org.slf4j.Logger;
2020
import org.slf4j.LoggerFactory;
2121
import org.cloudfoundry.identity.uaa.codestore.ExpiringCode;
@@ -241,7 +241,7 @@ public Authentication authenticate(Authentication authentication) throws Authent
241241
protected Authentication extractCredentials(HttpServletRequest request) {
242242
String grantType = request.getParameter("grant_type");
243243
if (grantType != null && grantType.equals(GRANT_TYPE_PASSWORD)) {
244-
Map<String, String> credentials = getCredentials(request);
244+
Map<String, String> credentials = UaaHttpRequestUtils.getCredentials(request, parameterNames);
245245
String passcode = credentials.get("passcode");
246246
if (passcode!=null) {
247247
return new ExpiringCodeAuthentication(request, passcode);
@@ -251,30 +251,6 @@ protected Authentication extractCredentials(HttpServletRequest request) {
251251
}
252252
return null;
253253
}
254-
private Map<String, String> getCredentials(HttpServletRequest request) {
255-
Map<String, String> credentials = new HashMap<String, String>();
256-
257-
for (String paramName : parameterNames) {
258-
String value = request.getParameter(paramName);
259-
if (value != null) {
260-
if (value.startsWith("{")) {
261-
try {
262-
Map<String, String> jsonCredentials = JsonUtils.readValue(value,
263-
new TypeReference<Map<String, String>>() {
264-
});
265-
credentials.putAll(jsonCredentials);
266-
} catch (JsonUtils.JsonUtilException e) {
267-
logger.warn("Unknown format of value for request param: " + paramName + ". Ignoring.");
268-
}
269-
}
270-
else {
271-
credentials.put(paramName, value);
272-
}
273-
}
274-
}
275-
276-
return credentials;
277-
}
278254

279255
@Override
280256
public void init(FilterConfig filterConfig) {

server/src/main/java/org/cloudfoundry/identity/uaa/util/UaaHttpRequestUtils.java

Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,7 @@
1313
*******************************************************************************/
1414
package org.cloudfoundry.identity.uaa.util;
1515

16+
import com.fasterxml.jackson.core.type.TypeReference;
1617
import org.apache.http.HeaderElement;
1718
import org.apache.http.HeaderElementIterator;
1819
import org.apache.http.HttpResponse;
@@ -43,11 +44,14 @@
4344

4445
import javax.net.ssl.HostnameVerifier;
4546
import javax.net.ssl.SSLContext;
47+
import javax.servlet.http.HttpServletRequest;
4648
import java.net.URLEncoder;
4749
import java.nio.charset.StandardCharsets;
4850
import java.security.KeyManagementException;
4951
import java.security.KeyStoreException;
5052
import java.security.NoSuchAlgorithmException;
53+
import java.util.HashMap;
54+
import java.util.List;
5155
import java.util.Map;
5256
import java.util.concurrent.TimeUnit;
5357
import java.util.stream.Collectors;
@@ -180,4 +184,27 @@ private static String[] split(final String s) {
180184
}
181185
return stream(s.split(",")).map(String::trim).toList().toArray(String[]::new);
182186
}
187+
188+
public static Map<String, String> getCredentials(HttpServletRequest request, List<String> parameterNames) {
189+
Map<String, String> credentials = new HashMap<>();
190+
191+
for (String paramName : parameterNames) {
192+
String value = request.getParameter(paramName);
193+
if (value != null) {
194+
if (value.startsWith("{")) {
195+
try {
196+
Map<String, String> jsonCredentials = JsonUtils.readValue(value,
197+
new TypeReference<>() {
198+
});
199+
credentials.putAll(jsonCredentials);
200+
} catch (JsonUtils.JsonUtilException e) {
201+
logger.warn("Unknown format of value for request param: {}. Ignoring.", paramName);
202+
}
203+
} else {
204+
credentials.put(paramName, value);
205+
}
206+
}
207+
}
208+
return credentials;
209+
}
183210
}

0 commit comments

Comments
 (0)