Criando e editando arquivos htpasswd com ruby
May 16th, 2007 | by Gustavo Lichti |Constantemente eu tenho que alterar, inserir e remover usuários de arquivos de senhas htpasswd, mas estava cansado de fazer essas alterações por linda de comando $ htpasswd /path/to/file/senha.htpasswd user , resolvi desenvolver um front-end usando rails.
Para isso usei a Lib WEBrick
require 'webrick'
include WEBrick
Esta biblioteca é muito simples, Veja:
Abre o arquivo senhas.htpasswort. Se não existir cria o mesmo
htpd = HTTPAuth::Htpasswd.new('senhas.htpasswd')
Seta a senha para o usuário, caso o usuário não exista, cria o mesmo
htpd.set_passwd(nil, 'lichti', 'senhasecreta')
htpd.set_passwd(nil, 'guest', '123mudar') # fazendo humor com a senha da uol padrão de muitos anos, hoje usam senhas aleatórias
htpd.set_passwd(nil, 'others', 'mariobros')
Salva as alterações no arquivo de senhas
htpd.flush
Grava a senha do usuário lichti na variavel senha
senha=htpd.get_passwd(nil,'lichti', false)
Restorna se a senha armazenada é igual a senha digitada
puts senha=='senhasecreta'.crypt(senha[0,2])
Listando os usuários e suas respectivas senhas
htpd.each {|user,senha| puts "#{user}:#{senha}"}
Removendo um usuário
htpd.delete_passwd(nil,'others')
Funciona 100%, agora só falta eu implementar isso aqui na minha aplicação rails, a aplicação que eu tenho não é só para esta finalidade, pois seria um um disperdicio de recursos do servidor e neste caso poderia fazer em php, mas estou gerando um front-end geral da minhas tarefas constantes e status do servidor, e então vou adicionar mais esta a minha aplicação interna




One Response to “Criando e editando arquivos htpasswd com ruby”
By paulo on Jul 9, 2008 | Reply
gostaria de saber aonde colocar o arquivo com senhas, pois consequi instalar o htaccess mais não sei aonde colocar o arquivo htpasswd..
me de umas dicas…