Мое требование - авторизовать, может ли пользователь выполнять операцию CRUD на любом ресурсе. Допустим, у меня есть две таблицы в БД (студенты, сотрудники). Только участник может выполнять операцию CRUD с обеими таблицами. Но сотрудники могут получить доступ только к студентам.
Теперь у меня должен быть только один фильтр, разработанный с if-else:
Class AuthorisationFilter implements Filter
{
// inside doFilter()
if(request.getRequestURI.equals("/school/staffs"))
{
// check if user is Principal or not;
}
else if(request.getRequestURI.equals("/school/students"))
{
// check if user is some one other than Principal or staff
}
}
ИЛИ должен ли я иметь один фильтр для каждого URL
@WebFilter("/school/staffs")
Class StaffFilter implements Filter
{// ...}
@WebFilter("/school/students")
Class StudentFilter implements Filter
{//... }
Примечание : учтите, что в БД может быть несколько таблиц, каждая из которых требует авторизации