Должен ли быть только один фильтр для авторизации для всего веб-приложения ИЛИ несколько фильтров? - PullRequest
0 голосов
/ 03 августа 2020

Мое требование - авторизовать, может ли пользователь выполнять операцию 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
{//... }

Примечание : учтите, что в БД может быть несколько таблиц, каждая из которых требует авторизации

...