У меня есть простой джерси 2.4 ресурс:@RolesAllowed не работает с пользовательским SecurityContext в Джерси?
@RolesAllowed("admin")
public List<Folder> list(){}
У меня также есть ContainerRequestFilter, который устанавливает пользовательские SecurityContext:
public void filter(ContainerRequestContext requestContext) throws IOException {
requestContext.setSecurityContext(new MySecurityContext(...));
}
В списке() функция я получаю правильный SecurityContext: MySecurityContext. И работает вызов «securityContext.isUserInRole (« admin »)».
Но аннотация @RolesAllowed, похоже, ничего не делает, функция isUserInRole MySecurityContext никогда не называется.
Нужно ли мне что-то делать, чтобы заставить @RolesAllowed работать?
Спасибо! Я пропустил добавление * RolesAllowedDynamicFeature * при переносе с Jersey 1.x на 2.x и много часов было потрачено на поиск именно этого. Для тех, кто задается вопросом, куда идет вызов 'register()', он находится в вашей реализации 'javax.ws.rs.Application', которая передается ServletContainer (например,' org.glassfish.jersey.servlet.ServletContainer') посредством использования '' внутри 'web.xml'. –
joelpet