@@ -8,8 +8,11 @@ import android.view.ViewGroup
88import android.widget.Toast
99import androidx.fragment.app.Fragment
1010import com.azuresamples.msalnativeauthandroidkotlinsampleapp.databinding.FragmentEmailPasswordBinding
11+ import com.microsoft.identity.client.PublicClientApplication
12+ import com.microsoft.identity.common.java.nativeauth.providers.NativeAuthRequestInterceptor
1113import com.microsoft.identity.common.java.util.StringUtil
1214import com.microsoft.identity.nativeauth.INativeAuthPublicClientApplication
15+ import com.microsoft.identity.nativeauth.NativeAuthPublicClientApplicationConfiguration
1316import com.microsoft.identity.nativeauth.parameters.NativeAuthGetAccessTokenParameters
1417import com.microsoft.identity.nativeauth.parameters.NativeAuthSignInParameters
1518import com.microsoft.identity.nativeauth.parameters.NativeAuthSignUpParameters
@@ -27,8 +30,9 @@ import com.microsoft.identity.nativeauth.statemachine.states.SignUpCodeRequiredS
2730import kotlinx.coroutines.CoroutineScope
2831import kotlinx.coroutines.Dispatchers
2932import kotlinx.coroutines.launch
33+ import java.net.URL
3034
31- class EmailPasswordSignInSignUpFragment : Fragment () {
35+ class EmailPasswordSignInSignUpFragment : Fragment (), NativeAuthRequestInterceptor {
3236
3337 private lateinit var authClient: INativeAuthPublicClientApplication
3438 private var _binding : FragmentEmailPasswordBinding ? = null
@@ -39,11 +43,25 @@ class EmailPasswordSignInSignUpFragment : Fragment() {
3943 private enum class STATUS { SignedIn , SignedOut }
4044 }
4145
46+ override fun additionalHeaders (requestUrl : URL ): Map <String , String >? {
47+ if (requestUrl.path.contains(" oauth2/v2.0/initiate" )) {
48+ return mapOf (
49+ " ignored-custom-header-value" to " ignored-custom-header" , // Will be ignored: doesn't start with "x-"
50+ " x-client-header" to " customer_header_2" , // Will be ignored: starts with reserved prefix "x-client-"
51+ " X-my-custom-header" to " my data" // Will be added to the network request
52+ )
53+ }
54+ return null
55+ }
56+
4257 override fun onCreateView (inflater : LayoutInflater , container : ViewGroup ? , savedInstanceState : Bundle ? ): View {
4358 _binding = FragmentEmailPasswordBinding .inflate(inflater, container, false )
4459 val view = binding.root
4560
4661 authClient = AuthClient .getAuthClient()
62+ (authClient as ? PublicClientApplication )?.let { app ->
63+ (app.configuration as ? NativeAuthPublicClientApplicationConfiguration )?.requestInterceptor = this
64+ }
4765
4866 init ()
4967
0 commit comments