mirror of
https://github.com/TanelOrumaa/Estonian-ID-card-mobile-authenticator-POC.git
synced 2024-12-22 12:30:16 +02:00
testing new approach
This commit is contained in:
parent
60207319b7
commit
74d97827f8
@ -20,11 +20,14 @@ import androidx.fragment.app.Fragment
|
|||||||
import androidx.fragment.app.activityViewModels
|
import androidx.fragment.app.activityViewModels
|
||||||
import androidx.navigation.fragment.findNavController
|
import androidx.navigation.fragment.findNavController
|
||||||
import com.google.android.material.dialog.MaterialAlertDialogBuilder
|
import com.google.android.material.dialog.MaterialAlertDialogBuilder
|
||||||
|
import com.koushikdutta.ion.Ion
|
||||||
import com.tarkvaraprojekt.mobileauthapp.NFC.Comms
|
import com.tarkvaraprojekt.mobileauthapp.NFC.Comms
|
||||||
import com.tarkvaraprojekt.mobileauthapp.databinding.FragmentHomeBinding
|
import com.tarkvaraprojekt.mobileauthapp.databinding.FragmentHomeBinding
|
||||||
import com.tarkvaraprojekt.mobileauthapp.model.ParametersViewModel
|
import com.tarkvaraprojekt.mobileauthapp.model.ParametersViewModel
|
||||||
import com.tarkvaraprojekt.mobileauthapp.model.SmartCardViewModel
|
import com.tarkvaraprojekt.mobileauthapp.model.SmartCardViewModel
|
||||||
import java.lang.Exception
|
import java.lang.Exception
|
||||||
|
import java.lang.RuntimeException
|
||||||
|
import java.net.URL
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* HomeFragment is only shown to the user when then the user launches the application. When the application
|
* HomeFragment is only shown to the user when then the user launches the application. When the application
|
||||||
@ -104,15 +107,39 @@ class HomeFragment : Fragment() {
|
|||||||
intentParams.setChallenge(requireActivity().intent.getStringExtra("challenge")!!)
|
intentParams.setChallenge(requireActivity().intent.getStringExtra("challenge")!!)
|
||||||
intentParams.setAuthUrl(requireActivity().intent.getStringExtra("authUrl")!!)
|
intentParams.setAuthUrl(requireActivity().intent.getStringExtra("authUrl")!!)
|
||||||
intentParams.setOrigin(requireActivity().intent.getStringExtra("originUrl")!!)
|
intentParams.setOrigin(requireActivity().intent.getStringExtra("originUrl")!!)
|
||||||
|
goToTheNextFragment(mobile)
|
||||||
} else { //Website
|
} else { //Website
|
||||||
|
/*
|
||||||
var challenge = requireActivity().intent.data!!.getQueryParameter("challenge")!!
|
var challenge = requireActivity().intent.data!!.getQueryParameter("challenge")!!
|
||||||
// TODO: Since due to encoding plus gets converted to space, temporary solution is to replace it back.
|
// TODO: Since due to encoding plus gets converted to space, temporary solution is to replace it back.
|
||||||
challenge = challenge.replace(" ", "+")
|
challenge = challenge.replace(" ", "+")
|
||||||
intentParams.setChallenge(challenge)
|
intentParams.setChallenge(challenge)
|
||||||
intentParams.setAuthUrl(requireActivity().intent.data!!.getQueryParameter("authUrl")!!)
|
intentParams.setAuthUrl(requireActivity().intent.data!!.getQueryParameter("authUrl")!!)
|
||||||
intentParams.setOrigin(requireActivity().intent.data!!.getQueryParameter("originUrl")!!)
|
intentParams.setOrigin(requireActivity().intent.data!!.getQueryParameter("originUrl")!!)
|
||||||
|
*/
|
||||||
|
val getAuthChallengeUrl = requireActivity().intent.data!!.getQueryParameter("getAuthChallengeUrl")!!
|
||||||
|
val postAuthTokenUrl = requireActivity().intent.data!!.getQueryParameter("postAuthTokenUrl")!!
|
||||||
|
val headers = requireActivity().intent.data!!.getQueryParameter("headers")!!
|
||||||
|
intentParams.setAuthUrl(postAuthTokenUrl)
|
||||||
|
intentParams.setOrigin("https://" + URL(getAuthChallengeUrl).host)
|
||||||
|
intentParams.setHeaders(headers)
|
||||||
|
Ion.getDefault(activity).conscryptMiddleware.enable(false)
|
||||||
|
Ion.with(activity)
|
||||||
|
.load(getAuthChallengeUrl)
|
||||||
|
.asJsonObject()
|
||||||
|
.setCallback { _, result ->
|
||||||
|
try {
|
||||||
|
// Get data from the result and call launchAuth method
|
||||||
|
val challenge = result.asJsonObject["nonce"].toString().replace("\"", "")
|
||||||
|
intentParams.setChallenge(challenge)
|
||||||
|
goToTheNextFragment(mobile)
|
||||||
|
} catch (e: Exception) {
|
||||||
|
Log.i("GETrequest", "was unsuccessful")
|
||||||
|
throw RuntimeException()
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
goToTheNextFragment(mobile)
|
|
||||||
} catch (e: Exception) {
|
} catch (e: Exception) {
|
||||||
// There was a problem with parameters, which means that authentication is not possible.
|
// There was a problem with parameters, which means that authentication is not possible.
|
||||||
// In that case we will cancel the authentication immediately as it would be waste of the user's time to carry on
|
// In that case we will cancel the authentication immediately as it would be waste of the user's time to carry on
|
||||||
|
@ -16,6 +16,9 @@ class ParametersViewModel: ViewModel() {
|
|||||||
private var _origin: String = ""
|
private var _origin: String = ""
|
||||||
val origin get() = _origin
|
val origin get() = _origin
|
||||||
|
|
||||||
|
private var _headers: String = ""
|
||||||
|
val headers get() =_headers
|
||||||
|
|
||||||
fun setChallenge(newChallenge: String) {
|
fun setChallenge(newChallenge: String) {
|
||||||
_challenge = newChallenge
|
_challenge = newChallenge
|
||||||
}
|
}
|
||||||
@ -31,4 +34,8 @@ class ParametersViewModel: ViewModel() {
|
|||||||
fun setOrigin(newOrigin: String) {
|
fun setOrigin(newOrigin: String) {
|
||||||
_origin = newOrigin
|
_origin = newOrigin
|
||||||
}
|
}
|
||||||
|
|
||||||
|
fun setHeaders(newHeaders: String) {
|
||||||
|
_headers = newHeaders
|
||||||
|
}
|
||||||
}
|
}
|
@ -11,6 +11,7 @@ import androidx.activity.result.contract.ActivityResultContracts
|
|||||||
import com.example.testmobileapp.databinding.ActivityMainBinding
|
import com.example.testmobileapp.databinding.ActivityMainBinding
|
||||||
import com.koushikdutta.ion.Ion
|
import com.koushikdutta.ion.Ion
|
||||||
import org.json.JSONObject
|
import org.json.JSONObject
|
||||||
|
import java.net.URL
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Base url where the requests should be made. Add yours here. It must use https.
|
* Base url where the requests should be made. Add yours here. It must use https.
|
||||||
@ -31,7 +32,7 @@ class MainActivity : AppCompatActivity() {
|
|||||||
super.onCreate(savedInstanceState)
|
super.onCreate(savedInstanceState)
|
||||||
binding = ActivityMainBinding.inflate(layoutInflater)
|
binding = ActivityMainBinding.inflate(layoutInflater)
|
||||||
setContentView(binding.root)
|
setContentView(binding.root)
|
||||||
|
Log.i("myLoggingStuff", URL("https://www.google.ee/?hl=et").host.toString())
|
||||||
authLauncher = registerForActivityResult(ActivityResultContracts.StartActivityForResult()) { response ->
|
authLauncher = registerForActivityResult(ActivityResultContracts.StartActivityForResult()) { response ->
|
||||||
if (response.resultCode == Activity.RESULT_OK) {
|
if (response.resultCode == Activity.RESULT_OK) {
|
||||||
binding.loginTextView.text = getString(R.string.auth_success)
|
binding.loginTextView.text = getString(R.string.auth_success)
|
||||||
|
Loading…
Reference in New Issue
Block a user