Grails facebook графичен плъгин за проверка на сесия във всеки контролер

Използвам grails и плъгин за графика на facebook за потребителска регистрация. Въпреки това, вместо да проверявате фейсбук сесията във всяко действие и контролер. Има ли по-добър начин да проверите сесията, преди да влезете в контролера? Така че не е нужно да дублирам кода, за да проверя удостоверяването.



class FacebookSecurityFilters {

    def filters = {
        all(controller:'*', action:'*') {
            before = {
                println "test"
            }
            after = {

            }
            afterView = {

            }
        }
    }
}


Създадох този филтър с помощта на команда grails create-filters. Ама изобщо не се пали, имам предвид, че изобщо не е отпечатал "тест". Трябва ли да регистрирам филтъра? Използвам Grails1.4M01

Благодаря


person toy    schedule 16.07.2011    source източник


Отговори (1)


Използвайте филтър - това е чудесен начин да прихванете всички действия или подгрупа от действия въз основа на шаблон: http://grails.org/doc/latest/guide/6.%20The%20Web%20Layer.html#6.6%20Filters

person Burt Beckwith    schedule 16.07.2011
comment
Създадох файл, наречен SecurityFilters и това е класът на съдържанието SecurityFilters { def filters = { println test loginCheck(controller:'', action:'') { println test before = { if(!session .facebook){ println грешка От filter redirect(uri:/) } } } } } - person toy; 17.07.2011
comment
но изобщо не се извиква. Изпускам ли нещо? - person toy; 17.07.2011
comment
имате празни низове за контролер и действие, но те трябва да бъдат заместващи символи, напр. controller:'*', action:'*' - също премахнете 1-вото println "test" и преместете 2-рото в блока before - person Burt Beckwith; 17.07.2011
comment
Извинения, поставих нов код, който генерирах от командата grails, но той все още не се задейства. :( - person toy; 17.07.2011
comment
Едно нещо, моите контролери са в пакет. Има ли значение? (напр. com.mycom.LoginController) - person toy; 17.07.2011
comment
Не, контролерите трябва да са в пакети, но името, което посочвате в шаблона, е „логичното“ име, напр. 'loginController'. Но това не е в игра тук, тъй като вие прихващате всички. Опитайте grails clean за принудително пълно компилиране. - person Burt Beckwith; 17.07.2011