Java


Авторизация - часть 3


/** * pointcut включающий в себя метод
с ServletRequest для * того что бы потом можно было
бы получить его в объединении * с другим pointcut (паттерн
"червоточина") */ pointcut requestMethod
(ServletRequest request) : execution(* aop.example.EntranceFilter.
doFilter(ServletRequest, ServletResponse,
FilterChain)) && args(request,
ServletResponse, FilterChain);

/** * pointcut определяющий метод фильтра
в котором мы будем отлавливать * исключение */ public pointcut doFilterMethod
(ServletRequest srequest, ServletResponse sresponse
, EntranceFilter filter) : execution(void aop.example.
EntranceFilter.doFilter(ServletRequest,
ServletResponse, FilterChain)) && args(srequest, sresponse,
FilterChain) && this(filter);

// все методы производящие чтение информации
объектов модели pointcut readMethods(Object object)
: execution (public * aop.example.model.*.get*(..))
&& this(object);

// все методы производящие добавление
объектов модели pointcut addMethods(Object object)
: execution (public * aop.example.model.*.add*(..))
&& this(object);

// все методы производящие удаление
объектов модели pointcut deleteMethods(Album album)
: execution (public * aop.example.model.
AlbumList.deleteAlbum(Album)) && args(album);

// Вызов методов чтения произошедшие в
потоке выполнения // следующим за вызовом метода фильтра // мы объеденили два pointcut - реализация
паттерна "червоточина" pointcut readAccess(ServletRequest request,
Object object) : cflow(requestMethod(request)) &&
readMethods(object);

// то же самое только для добавления pointcut addAccess(ServletRequest request,
Object object) : cflow(requestMethod(request)) &&
addMethods(object);

// то же самое только для удаления pointcut deleteAccess(ServletRequest
request, Album album) : cflow(requestMethod(request))
&& deleteMethods(album); /** * Before advice проверки на чтение */ before(ServletRequest request, Object object)
: readAccess(request, object) { if (!AuthHelper.isAbleToRead
(extractUser(request), object)) { throw new AuthorizationException
("Read access not allowed"); } }




- Начало -  - Назад -  - Вперед -



Книжный магазин