Vraptor-encryptor = Plugin do VRaptor (criptografia)

3 respostas
d34d_d3v1l

Boa noite pessoal.

Olink do plugin esta no github, quem quiser acompanhar, por favor.

A ideia é: Você anota um parametro de uma action com @Encrypt e você já vai receber a String criptografada.

Assim:

public void action(@Encrypt String password){
}

Então seguindo as issues do projeto, eu gostaria de usar o @Encrypt em um field ou da entidade, ou do DTO que a pessoa esta usando. Não sei a viabilidade, mas seria algo assim:

public MyDTO{
    private Long id;

    @Encrypt 
    private String password;
}

e quando a action receber este dto:

public void action(MyDTO obj){}

O interceptor pegar, e alterar o valor do "password". Imagino no caso, que eu teria que usar duas vezes a annotation @Encrypt. Uma no metodo, para o "@Accepts".. E outra no field, normalmente. O que já não me agrada... Será que tem como ter essa annotation apenas no Field ?

Outra coisa que eu quero fazer... É especificar um salter.
Como vocês podem ver em uma das implementações de um Encryptor, se eu não recebo um Salter, eu uso um Default. O ShuffleSalter. Quero dar a possibilidade do desenvolver criar um salter e usá-lo pelo plugin. Não faço ideia de como implementar isto.

Ahh.. criei uma estrutura para o desenvolvedor escolher o tipo de implementação que ele quer, através de um enum. Ficou assima annotation recebe o ENUM que depois extraio a estratégia assim:

private Encryptor extractEncryptor(EncryptStrategy[] strategyArray) {
		if (notEmpty(strategyArray)) {
			return strategyArray[0].getEncryptor();
		}

		return new Sha512Encryptor();
	}

Tudo bem que eu coloquei o "default" lá na annotation.. Mas fiz assim só pra garantir né... vai que?! hahaha
bom é isso aí...

Me ajudem por favor e sugestões, criticas e ideias, a vontade!
:D

3 Respostas

Lucas_Cavalcanti

é legal colocar um pouco de documentação no README do repositório do plugin…

assim a gente consegue linkar pro repositório e já ver como usar o plugin.

d34d_d3v1l

Lucas, concordo com você.

Ainda não coloquei por que estava esperando estas ultimas implementações :slight_smile:
Mas vou fazer isto logo

d34d_d3v1l

Beleza galera…

Criei a documentação (em inglês) do que já tem… E do que eu ainda quero fazer.

Abraços!

Criado 11 de agosto de 2014
Ultima resposta 13 de ago. de 2014
Respostas 3
Participantes 2