Autentificación HTTP con Grails
Todo el mundo en algún momento ha necesitado implementar autentificación HTTP en una aplicación o página web(o no :D).
Con grails me ha vuelto a tocar hacerlo, por medio de un filtro para que fuera muy fácil de poner o quitar. El código queda como algo así:
class AuthFilters {
def USERNAME = "user"
def PASSWORD = "pass"
static filters = {
httpAuth(uri:"/**") {
before = {
def authHeader = request.getHeader('Authorization')
if (authHeader) {
def usernamePassword = new String(authHeader.split(' ')[1].decodeBase64())
if (usernamePassword == "$USERNAME:$PASSWORD") {
return true
}
}
response.setHeader('WWW-Authenticate', 'basic realm="myRealm"')
response.sendError(response.SC_UNAUTHORIZED)
return false
}
}
}
}
¿Hace falta explicar algo? :P