Вы можете использовать HTTP-аутентификацию. HTTP-аутентификация очень проста в реализации, но она не очень безопасна и не пригодна для использования. Вам лучше использовать Shiro или Spring-Security для реального решения. Тем не менее, простой фильтр может проверить заголовок авторизации HTTP и вернуть код состояния 401, если он отсутствует. Это заставит браузер открыть окно имени пользователя / пароля и повторно отправить форму с именем пользователя и паролем, закодированными в заголовках.
Фильтры Grails должны иметь имя класса, оканчивающееся на «Фильтры», и помещаться в каталог grails-app / conf. Вот пример:
class SimpleAuthFilters {
def USERNAME = "foo"
def PASSWORD = "bar"
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
}
}
}
}