Bladeren bron

fix issue with oauth invalid requests

Jason Rivard 7 jaren geleden
bovenliggende
commit
8aa07e76f9

+ 22 - 0
server/src/main/java/password/pwm/http/PwmURL.java

@@ -331,6 +331,28 @@ public class PwmURL
         return output.toString();
     }
 
+    public static String encodeParametersToFormBody( final Map<String, String> parameters )
+    {
+        final StringBuilder output = new StringBuilder( );
+
+        for ( final Map.Entry<String, String> entry : parameters.entrySet() )
+        {
+            final String paramName = entry.getKey();
+            final String value = entry.getValue();
+            final String encodedValue = value == null
+                    ? ""
+                    : StringUtil.urlEncode( value );
+
+            output.append( output.length() > 0 ? "&" : "" );
+            output.append( paramName );
+            output.append( "=" );
+            output.append( encodedValue );
+        }
+
+        return output.toString();
+    }
+
+
     public static int portForUriSchema( final URI uri )
     {
         final int port = uri.getPort();

+ 1 - 1
server/src/main/java/password/pwm/http/servlet/oauth/OAuthMachine.java

@@ -245,7 +245,7 @@ public class OAuthMachine
     )
             throws PwmUnrecoverableException
     {
-        final String requestBody = PwmURL.appendAndEncodeUrlParameters( "", requestParams );
+        final String requestBody = PwmURL.encodeParametersToFormBody( requestParams );
         final List<X509Certificate> certs = settings.getCertificates();
 
         final PwmHttpClientRequest pwmHttpClientRequest;