Граальс 2.4.4 выдаёт схему инвертирующих фильтров

В новом проекте, основанном на Grails 2.4.4, я использую схему фильтра с опцией инвертирования. Немного контроллеров и некоторые действия от других контроллеров исключены в фильтрах путем инвертирования правила.

Фильтр не будет применяться для контроллеров Login, ForgotPassword и ServerError и saveUser, проверять действия регистрации с другого пользовательского контроллера. Эта схема фильтра не работает должным образом.

Когда я вызываю API входа в контроллере входа, фильтр выполняется и выдает исключение.

package com.project.filters

import grails.converters.JSON

class MyProjectAuthorizationFilters {

    def userService
    def grailsApplication

    def filters = {
        checkXAuthToken(controller:'login|forgotPassword|serverError', action:'saveUser|verifyRegistration', invert: true) {
            before = {
                try{
                    String tokenValue = request.getHeader('X-Auth-Token')
                    if(tokenValue == null && tokenValue == ""){
                        throw new MyCustomException(401, "Please provide X-Auth-Token in Header")
                    }
                    userService.getUserByAuthToken(tokenValue)
                }catch (MyCustomException error) {
                    error.stackTrace = ""
                    response.setStatus(error.status)
                    render error as JSON
                    return false
                }
            }
        }
    }
}

Я знаю, что мы также можем использовать controllerExclude, actionExclude, но не знал, почему это ломается?

РЕДАКТИРОВАТЬ Я даже пытался использовать controllerExclude и actionExclude, но он не работает, как ожидалось. Это утомленное поведение, или я делаю что-то не так. Размещение всего кода класса фильтра.

Благодарю.

0 ответов

Другие вопросы по тегам