-
Notifications
You must be signed in to change notification settings - Fork 7
PT BR 04.03. Criptografia
Por padrão, a autenticação é feita sem uso de criptografia, ou seja, comparando diretamente a senha informada com a senha obtida via implementação da interface Profile
. Porém gravar as senhas em texto puro não é aconselhável, portanto, o uso de criptografia é altamente recomendável.
Para criptografar as senhas do usuário, o plugin fornece a interface PasswordService
que tem como objetivo único fornecer uma interface simples para criptografia.
Exemplo:
@Controller
public class UsuarioDAO {
@Inject UsuarioDAO usuarioDAO;
@Inject PasswordService passwordService;
public void salvarUsuario(String username, String plainTextPassword) {
usuarioDAO.salvarNovoUsuario(username, passwordService.encryptPassword(plainTextPassword));
}
}
Além disso é necessário ativá-lo na inicialização do plugin para que o Apache Shiro passe a fazer autenticação usando do mesmo método de criptografia. Para isso basta implementar a interface ShiroInitConfigStrategy
como feito a seguir:
public class InitConfigStrategy implements ShiroInitConfigStrategy {
@Override
public void init(DefaultWebSecurityManager securityManager, AuthorizingRealm realm) {
realm.setCredentialsMatcher(new PasswordMatcher());
}
}
Por padrão essa implementação utiliza o algoritmo de criptografia SHA-256. Na documentação oficial do Apache Shiro é possível implementar outros algoritmos de criptografia se necessário.
Próximo Passo: Gerenciamento de Sessão