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:
[code]private Encryptor extractEncryptor(EncryptStrategy[] strategyArray) {
if (notEmpty(strategyArray)) {
return strategyArray[0].getEncryptor();
}
return new Sha512Encryptor();
}[/code]
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!