Tradefed incluye el concepto de almacén de claves , donde los secretos pueden almacenarse en un servicio de almacén de claves y solicitarse en el tiempo de ejecución de la prueba para su uso durante la prueba.
Cómo utilizar el almacén de claves
Para usar el almacén de claves, primero debe definir la fuente del almacén de claves en su configuración global .
Una vez hecho esto, puede usar las claves almacenadas a través de: USE_KEYSTORE@{key}
JSONFileKeyStore
La implementación de muestra en el núcleo de Tradefed usa un almacén de claves JSON, JSONFileKeyStoreClient
. Para usar este almacén de claves, debe definir un archivo de claves JSON que tenga asignaciones de clave a valor.
Por ejemplo, podría definir un archivo /path/to/keystore.json
como
{
"test_account": "foo@gmail.com",
"test_account_pwd": "helloworld",
"wifi_lab_ssid": "Google_private_AP",
"wifi_lab_pwd": "secret123",
}
Luego agregaría las siguientes líneas en su archivo de configuración global de TF:
<key_store class="com.android.tradefed.util.keystore.JSONFileKeyStoreFactory">
<option name="json-key-store-file" value="/path/to/keystore.json" />
</key_store>
Al ejecutar pruebas relacionadas, ahora puede pasar valores como USE_KEYSTORE@test_account
, cuyo TF luego consultará el almacén de claves y usará su valor como parte de la prueba.
Archivo de almacén de claves basado en host
Para definir pares clave-valor basados en host, puede definir un archivo /path/to/keystore_ssid.json
como
{
"host_a.*\\.corp\\.com": {
"wifi_lab_ssid": "ssid_a",
"wifi_lab_pwd": "secret_a"
},
"host_b.*\\.corp\\.com": {
"wifi_lab_ssid": "ssid_b",
"wifi_lab_pwd": "secret_b"
}
}
La clave de una entrada en el archivo es un patrón de expresión regular (regex) para el nombre de host y el valor es el conjunto de pares clave-valor para cualquier host con un nombre de host coincidente.
Luego, actualice su archivo de configuración global de TF para incluir el archivo de almacén de claves basado en host:
<key_store class="com.android.tradefed.util.keystore.JSONFileKeyStoreFactory">
<option name="json-key-store-file" value="/path/to/keystore.json" />
<option name="host-based-key-store-file" value="/path/to/keystore-ssid.json" />
</key_store>
El valor de una clave definida en un archivo de almacén de claves basado en host anula el definido en el archivo de almacén de claves especificado con json-key-store-file
.
Cuando hay varios archivos de almacén de claves basados en host en el almacén de claves, el orden es importante. Si el valor de una clave se define en varios archivos, el valor del último de esos archivos anula el resto.