Skip to content

Commit a3c774d

Browse files
authored
Merge pull request #57 from Azure-Samples/spetrescu/custom_headers
Provide custom HTTP headers setting
2 parents b21a9f3 + 0d3ecb4 commit a3c774d

1 file changed

Lines changed: 19 additions & 1 deletion

File tree

app/src/main/java/com/azuresamples/msalnativeauthandroidkotlinsampleapp/EmailPasswordSignInSignUpFragment.kt

Lines changed: 19 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,8 +8,11 @@ import android.view.ViewGroup
88
import android.widget.Toast
99
import androidx.fragment.app.Fragment
1010
import com.azuresamples.msalnativeauthandroidkotlinsampleapp.databinding.FragmentEmailPasswordBinding
11+
import com.microsoft.identity.client.PublicClientApplication
12+
import com.microsoft.identity.common.java.nativeauth.providers.NativeAuthRequestInterceptor
1113
import com.microsoft.identity.common.java.util.StringUtil
1214
import com.microsoft.identity.nativeauth.INativeAuthPublicClientApplication
15+
import com.microsoft.identity.nativeauth.NativeAuthPublicClientApplicationConfiguration
1316
import com.microsoft.identity.nativeauth.parameters.NativeAuthGetAccessTokenParameters
1417
import com.microsoft.identity.nativeauth.parameters.NativeAuthSignInParameters
1518
import com.microsoft.identity.nativeauth.parameters.NativeAuthSignUpParameters
@@ -27,8 +30,9 @@ import com.microsoft.identity.nativeauth.statemachine.states.SignUpCodeRequiredS
2730
import kotlinx.coroutines.CoroutineScope
2831
import kotlinx.coroutines.Dispatchers
2932
import 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

Comments
 (0)