33
44package com .microsoft .aad .msal4j ;
55
6- import com .nimbusds .oauth2 .sdk .util .URLUtils ;
76import org .slf4j .Logger ;
87import org .slf4j .LoggerFactory ;
98
@@ -36,7 +35,7 @@ public class AuthorizationRequestUrlParameters {
3635
3736 Map <String , String > extraQueryParameters ;
3837
39- Map <String , List < String > > requestParameters = new HashMap <>();
38+ Map <String , String > requestParameters = new HashMap <>();
4039
4140 Logger log = LoggerFactory .getLogger (AuthorizationRequestUrlParameters .class );
4241
@@ -58,7 +57,7 @@ private static Builder builder() {
5857 private AuthorizationRequestUrlParameters (Builder builder ) {
5958 //required parameters
6059 this .redirectUri = builder .redirectUri ;
61- requestParameters .put ("redirect_uri" , Collections . singletonList ( this .redirectUri ) );
60+ requestParameters .put ("redirect_uri" , this .redirectUri );
6261 this .scopes = builder .scopes ;
6362
6463 Set <String > scopesParam = new LinkedHashSet <>(AbstractMsalAuthorizationGrant .COMMON_SCOPES );
@@ -70,86 +69,86 @@ private AuthorizationRequestUrlParameters(Builder builder) {
7069 }
7170
7271 this .scopes = scopesParam ;
73- requestParameters .put ("scope" , Collections . singletonList ( String .join (" " , scopesParam ) ));
74- requestParameters .put ("response_type" , Collections . singletonList ( "code" ) );
72+ requestParameters .put ("scope" , String .join (" " , scopesParam ));
73+ requestParameters .put ("response_type" , "code" );
7574
7675 // Optional parameters
7776 if (builder .claims != null ) {
7877 String claimsParam = String .join (" " , builder .claims );
79- requestParameters .put ("claims" , Collections . singletonList ( claimsParam ) );
78+ requestParameters .put ("claims" , claimsParam );
8079 }
8180
8281 if (builder .claimsChallenge != null && builder .claimsChallenge .trim ().length () > 0 ) {
8382 JsonHelper .validateJsonFormat (builder .claimsChallenge );
84- requestParameters .put ("claims" , Collections . singletonList ( builder .claimsChallenge ) );
83+ requestParameters .put ("claims" , builder .claimsChallenge );
8584 }
8685
8786 if (builder .claimsRequest != null ) {
8887 String claimsRequest = builder .claimsRequest .formatAsJSONString ();
8988 //If there are other claims (such as part of a claims challenge), merge them with this claims request.
9089 if (requestParameters .get ("claims" ) != null ) {
91- claimsRequest = JsonHelper .mergeJSONString (claimsRequest , requestParameters .get ("claims" ). get ( 0 ) );
90+ claimsRequest = JsonHelper .mergeJSONString (claimsRequest , requestParameters .get ("claims" ));
9291 }
93- requestParameters .put ("claims" , Collections . singletonList ( claimsRequest ) );
92+ requestParameters .put ("claims" , claimsRequest );
9493 }
9594
9695 if (builder .codeChallenge != null ) {
9796 this .codeChallenge = builder .codeChallenge ;
98- requestParameters .put ("code_challenge" , Collections . singletonList ( builder .codeChallenge ) );
97+ requestParameters .put ("code_challenge" , builder .codeChallenge );
9998 }
10099
101100 if (builder .codeChallengeMethod != null ) {
102101 this .codeChallengeMethod = builder .codeChallengeMethod ;
103- requestParameters .put ("code_challenge_method" , Collections . singletonList ( builder .codeChallengeMethod ) );
102+ requestParameters .put ("code_challenge_method" , builder .codeChallengeMethod );
104103 }
105104
106105 if (builder .state != null ) {
107106 this .state = builder .state ;
108- requestParameters .put ("state" , Collections . singletonList ( builder .state ) );
107+ requestParameters .put ("state" , builder .state );
109108 }
110109
111110 if (builder .nonce != null ) {
112111 this .nonce = builder .nonce ;
113- requestParameters .put ("nonce" , Collections . singletonList ( builder .nonce ) );
112+ requestParameters .put ("nonce" , builder .nonce );
114113 }
115114
116115 if (builder .responseMode != null ) {
117116 this .responseMode = builder .responseMode ;
118- requestParameters .put ("response_mode" , Collections . singletonList (
119- builder .responseMode .toString ())) ;
117+ requestParameters .put ("response_mode" ,
118+ builder .responseMode .toString ());
120119 } else {
121120 this .responseMode = ResponseMode .FORM_POST ;
122- requestParameters .put ("response_mode" , Collections . singletonList (
123- ResponseMode .FORM_POST .toString ())) ;
121+ requestParameters .put ("response_mode" ,
122+ ResponseMode .FORM_POST .toString ());
124123 }
125124
126125 if (builder .loginHint != null ) {
127126 this .loginHint = loginHint ();
128- requestParameters .put ("login_hint" , Collections . singletonList ( builder .loginHint ) );
127+ requestParameters .put ("login_hint" , builder .loginHint );
129128
130129 // For CCS routing
131- requestParameters .put (HttpHeaders .X_ANCHOR_MAILBOX , Collections . singletonList (
132- String .format (HttpHeaders .X_ANCHOR_MAILBOX_UPN_FORMAT , builder .loginHint ))) ;
130+ requestParameters .put (HttpHeaders .X_ANCHOR_MAILBOX ,
131+ String .format (HttpHeaders .X_ANCHOR_MAILBOX_UPN_FORMAT , builder .loginHint ));
133132 }
134133
135134 if (builder .domainHint != null ) {
136135 this .domainHint = domainHint ();
137- requestParameters .put ("domain_hint" , Collections . singletonList ( builder .domainHint ) );
136+ requestParameters .put ("domain_hint" , builder .domainHint );
138137 }
139138
140139 if (builder .prompt != null ) {
141140 this .prompt = builder .prompt ;
142- requestParameters .put ("prompt" , Collections . singletonList ( builder .prompt .toString () ));
141+ requestParameters .put ("prompt" , builder .prompt .toString ());
143142 }
144143
145144 if (builder .correlationId != null ) {
146145 this .correlationId = builder .correlationId ;
147- requestParameters .put ("correlation_id" , Collections . singletonList ( builder .correlationId ) );
146+ requestParameters .put ("correlation_id" , builder .correlationId );
148147 }
149148
150149 if (builder .instanceAware ) {
151150 this .instanceAware = builder .instanceAware ;
152- requestParameters .put ("instance_aware" , Collections . singletonList ( String .valueOf (instanceAware ) ));
151+ requestParameters .put ("instance_aware" , String .valueOf (instanceAware ));
153152 }
154153
155154 if (null != builder .extraQueryParameters && !builder .extraQueryParameters .isEmpty ()){
@@ -160,13 +159,13 @@ private AuthorizationRequestUrlParameters(Builder builder) {
160159 if (requestParameters .containsKey (key )){
161160 log .warn ("A query parameter {} has been provided with values multiple times." , key );
162161 }
163- requestParameters .put (key , Collections . singletonList ( value ) );
162+ requestParameters .put (key , value );
164163 }
165164 }
166165 }
167166
168167 URL createAuthorizationURL (Authority authority ,
169- Map <String , List < String > > requestParameters ) {
168+ Map <String , String > requestParameters ) {
170169 URL authorizationRequestUrl ;
171170 try {
172171 String authorizationCodeEndpoint ;
@@ -178,7 +177,7 @@ URL createAuthorizationURL(Authority authority,
178177 }
179178
180179 String uriString = authorizationCodeEndpoint + "?" +
181- URLUtils . serializeParameters (requestParameters );
180+ StringHelper . serializeQueryParameters (requestParameters );
182181
183182 authorizationRequestUrl = new URL (uriString );
184183 } catch (MalformedURLException ex ) {
@@ -240,7 +239,7 @@ public Map<String, String> extraQueryParameters() {
240239 }
241240
242241 public Map <String , List <String >> requestParameters () {
243- return this .requestParameters ;
242+ return StringHelper . convertToMultiValueMap ( this .requestParameters ) ;
244243 }
245244
246245 public Logger log () {
0 commit comments