Esta classe tem como objetivo disponibilizar um mecanismo seguro de armazenamento de chaves secretas. Não é possível recuperar o conteúdo armazenado no cofre, porém é possível conferir se um valor informado está correto.
Somente o método ou função que originou o registro poderá alterar ou excluir um par de chave e valor, porém poderá ser conferida de qualquer fonte.
Requisitos:
Esta classe estará disponível na LIB de versão igual ou superior à 20210405.
Versão mínima necessária do appserver para a utilização da classe é 17.3.0.15.
Realease do protheus igual ou superior a 12.1.23.
Métodos:
Put
Sintaxe:
FwSecretVault():Put( cID, cValue )
Descrição:
Registra um par de chave e valor. Ao informar um valor que já exista na base, este será substituído pelo novo. Somente o método ou função que originou o registro consegue alterá-lo.
Como a cahve é única para o sistema, recomendamos o uso de identificadores nas chaves ( ex: framework_meuId, gpe_senha_do_portal )
Parâmetro | Tipo | Descrição | Obrigatório |
cID | Caracter | Identificador do registro que será armazenado | x |
cValue | Caracter | Valor a ser armazenado. | x |
Retorno:
Se verdadeiro, indica que conseguiu guardar o registro
Importante!!!
O Id informado NÃO é exclusivo para o fonte/função utilizado. Se o mesmo Id for informado em um fonte/função diferente, poderá existir um conflito.
Check
Sintaxe:
FwSecretVault():Check( cID, cValue)
Descrição:
Confere se o par chave e valor informado é o mesmo que já foi cadastrado anteriormente. Não há restrição de origem da chamada para conferir uma chave.
Parâmetro | Tipo | Descrição | Obrigatório |
cID | Caracter | Identificador do registro que foi armazenado | x |
cValue | Caracter | Valor a ser conferido. | x |
Retorno:
Conteúdo armazenado. Retorna uma string vazia ("") caso não encontre o ID.
Delete
Sintaxe:
FwSecretVault():Delete( cID)
Descrição:
Método responsável por deletar um par chave e valor que foi armazenado. Somente o método ou função que originou o registro consegue deletá-lo.
Parâmetro | Tipo | Descrição | Obrigatório |
cID | Caracter | Identificador do registro que será deletado | x |
Retorno:
Se verdadeiro, indica que conseguiu remover o registro.
User Function TstSecretVault() Local cPass := 'meu valor secreto com acentuação' Local cID := 'MeuID' Local lSucesso := .F. Local oVault := FwSecretVault():New() lSucesso := oVault:Put(cID, cPass) // lSucesso := .T. lSucesso := oVault:Check(cID, cPass) // lSucesso := .T. lSucesso := oVault:Check(cID, "senhaerrada") // lSucesso := .F. lSucesso := oVault:Delete(cID) // lSucesso := .T. lSucesso := oVault:Check(cID) // lSucesso := .F., o registro já foi deletado return