From 003259187e1b2fba10c4b1d27dc561aa015cb1d1 Mon Sep 17 00:00:00 2001 From: Ese Udom Date: Mon, 19 Jul 2021 01:25:14 +0100 Subject: [PATCH 1/2] Support other authentication methods apart from username and password --- .../main/java/com/kirkbushman/zammad/ZammadClient.kt | 11 +++++++++-- .../java/com/kirkbushman/zammad/utils/Constants.kt | 7 +++++++ 2 files changed, 16 insertions(+), 2 deletions(-) create mode 100644 lib/src/main/java/com/kirkbushman/zammad/utils/Constants.kt diff --git a/lib/src/main/java/com/kirkbushman/zammad/ZammadClient.kt b/lib/src/main/java/com/kirkbushman/zammad/ZammadClient.kt index 112ce26..b807099 100644 --- a/lib/src/main/java/com/kirkbushman/zammad/ZammadClient.kt +++ b/lib/src/main/java/com/kirkbushman/zammad/ZammadClient.kt @@ -5,6 +5,7 @@ import android.util.Log import com.kirkbushman.zammad.models.* import com.kirkbushman.zammad.models.compat.TicketArticleCompat import com.kirkbushman.zammad.models.compat.TicketCompat +import com.kirkbushman.zammad.utils.Constants import com.kirkbushman.zammad.utils.Utils.buildRetrofit import retrofit2.Retrofit @@ -13,10 +14,12 @@ class ZammadClient( baseUrl: String, private val auth: String, + private val authType: Int, private val logging: Boolean ) { - constructor(baseUrl: String, username: String, password: String, logging: Boolean) : this(baseUrl, "$username:$password", logging) + constructor(baseUrl: String, username: String, password: String, logging: Boolean) : this(baseUrl, "$username:$password", + Constants.AUTH_TYPE_USERNAME_PASSWORD, logging) companion object { @@ -1285,6 +1288,10 @@ class ZammadClient( } private fun getHeaderMap(): HashMap { - return hashMapOf("Authorization" to "Basic ".plus(String(Base64.encode(auth.toByteArray(), Base64.NO_WRAP)))) + return when (authType) { + Constants.AUTH_TYPE_ACCESS_TOKEN -> hashMapOf("Authorization" to "Token token=".plus(auth)) + Constants.AUTH_TYPE_OAUTH2 -> hashMapOf("Authorization" to "Bearer ".plus(auth)) + else -> hashMapOf("Authorization" to "Basic ".plus(String(Base64.encode(auth.toByteArray(), Base64.NO_WRAP)))) + } } } diff --git a/lib/src/main/java/com/kirkbushman/zammad/utils/Constants.kt b/lib/src/main/java/com/kirkbushman/zammad/utils/Constants.kt new file mode 100644 index 0000000..9f608ea --- /dev/null +++ b/lib/src/main/java/com/kirkbushman/zammad/utils/Constants.kt @@ -0,0 +1,7 @@ +package com.kirkbushman.zammad.utils + +object Constants { + const val AUTH_TYPE_USERNAME_PASSWORD = 0 + const val AUTH_TYPE_ACCESS_TOKEN = 1 + const val AUTH_TYPE_OAUTH2 = 2 +} \ No newline at end of file From 28c73baf6a4b62de8abcfab1d97c0e52b5edc98e Mon Sep 17 00:00:00 2001 From: Ese Udom Date: Mon, 19 Jul 2021 01:50:03 +0100 Subject: [PATCH 2/2] Update README.md for support for other auth methods. --- README.md | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/README.md b/README.md index 8541e22..78f1000 100644 --- a/README.md +++ b/README.md @@ -35,6 +35,14 @@ dependencies { password = "**Your Password**", logging = true ) + + //With Access or OAUTH2 Token + val client = ZammadClient( + baseurl = "**Zammad Url (https:// included)**", + token = "**Your Http Access or OAUTH2 Token**", + authType = "**Auth Type from utils/Constants **", + logging = true + ) ``` ### Use the Client.