Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
11 changes: 11 additions & 0 deletions auth/src/main/java/eu/project/auth/authz/AuthzManager.kt
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
package eu.project.auth.authz

import eu.project.auth.token.AccessToken

/**
* Provides access tokens.
*/
interface AuthzManager {

fun getAccessToken(): AccessToken?
}
21 changes: 21 additions & 0 deletions auth/src/main/java/eu/project/auth/authz/AuthzManagerImpl.kt
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
package eu.project.auth.authz

import eu.project.auth.client.SupabaseClient
import eu.project.auth.token.AccessToken
import io.github.jan.supabase.auth.auth
import javax.inject.Inject

/**
* Implementation of `AuthzManager` that uses `SupabaseClient` to retrieve access token.
*/
internal class AuthzManagerImpl @Inject constructor(supabaseClient: SupabaseClient) : AuthzManager {

private val client = supabaseClient.client

override fun getAccessToken(): AccessToken? {

// try to retrieve current access token, if it's null, return null
val rawAccessToken = client.auth.currentAccessTokenOrNull() ?: return null
return AccessToken(rawAccessToken)
}
}
9 changes: 9 additions & 0 deletions auth/src/main/java/eu/project/auth/module/AuthModule.kt
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,8 @@ import dagger.hilt.android.qualifiers.ApplicationContext
import dagger.hilt.components.SingletonComponent
import eu.project.auth.authn.AuthnManager
import eu.project.auth.authn.AuthnManagerImpl
import eu.project.auth.authz.AuthzManager
import eu.project.auth.authz.AuthzManagerImpl
import eu.project.auth.client.SupabaseClient
import eu.project.auth.credentialManager.GoogleCredentialManager
import eu.project.auth.credentialManager.GoogleCredentialManagerImpl
Expand All @@ -28,6 +30,13 @@ internal class AuthModule {
googleCredentialManager = googleCredentialManager
)

@Provides
@Singleton
fun provideAuthzManager(
supabaseClient: SupabaseClient
): AuthzManager =
AuthzManagerImpl(supabaseClient = supabaseClient)

@Provides
@Singleton
fun provideGoogleCredentialManager(
Expand Down
Loading