Я использую Spring MVC (4.0.1) в качестве бэкэнд для служб отдыха и angularjs как интерфейс.
каждый запрос на мой серверный сервер имеет http-заголовок с идентификатором сеанса
Я могу прочитать этот заголовок на моем сервере с помощью следующего кода:
@Autowired
protected HttpServletRequest request;
String xHeader=request.getHeader("X-Auth-Token"); //returns the sessionID from the header
Теперь я вызываю этот метод getPermission(xHeader)
, он возвращает только true или false. Если пользователь существует в моем БД, он возвращает true else false!
Теперь я хочу создать фильтр с таким поведением, который проверяет каждый запрос, если у пользователя есть разрешение на доступ к моим контроллерам! Но если метод возвращает false, он должен отправить обратно ошибку 401 и не дойти до моего контроллера!
Как я могу это сделать и создать свой собственный фильтр? Я использую только Java Config и не XML.
Думаю, я должен добавить фильтр здесь:
public class WebInitializer extends AbstractAnnotationConfigDispatcherServletInitializer {
@Override
protected Filter[] getServletFilters() {
MyOwnFilter=new MyOwnFilter();
return new Filter[] {MyOwnFilter};
}
}