Для REST API довольно свойственно иметь отдельный подпуть - таким образом, вы можете указать ограничение аутентификации только для URL, специфичного для вашего приложения, и для URI, соответствующих вашему REST API, реализовать аутентификацию, используя фильтр OAuth-джерси или что-то в этом роде. еще.
Если все ваше приложение написано на Джерси, и вы хотите предоставить одинаковые URI для клиентов REST, а также для браузера (и различать только на основе запрошенного типа мультимедиа), у вас может быть URL-адрес для входа ( для отображения страницы входа в систему) и только то, что вы можете защитить с помощью аутентификации FORM. Затем снова добавьте фильтр OAuth Jersey (или другой фильтр авторизации), который не будет активирован, если в запросе не будет заголовка OAuth, и другой фильтр, в котором вы будете проверять, является ли ContainerRequest.getUserPrincipal () нулевым. Если это значение равно null, вы можете вернуть Response.seeOther(UriBuilder.fromPath("/login").queryParam("redirect", request.getAbsolutePath()).build()).build()
- это перенаправит на вход в систему (для oauth это не сработает, поскольку либо запрос oauth будет выполнен успешно, либо предыдущий фильтр не выполнится и вернет коды состояния Unauthorized или Bad Request) , В ресурсе входа в систему вы можете использовать параметр запроса перенаправления, чтобы перенаправить обратно на исходную страницу после успешного входа в систему.