Невозможно получить контекст безопасности из Спринг-Джерси - PullRequest
1 голос
/ 23 сентября 2010

Я пытаюсь получить контекст безопасности внутри моего bean-jersey bean, но я все равно получаю нулевую аутентификацию. Когда я запускаю ту же команду из моего весеннего приложения, оно корректно извлекает текущий зарегистрированный в контексте безопасности пользователей.

Конфигурация пружинного джерси требует создания отдельного сервлета для основного приложения пружины, таким образом, в файле web.xml есть два сервлета - один для приложения весны, второй для API остальных трикотажа.

Предполагая, что проблема связана с этим, я попытался установить глобальный режим совместного доступа к контексту безопасности, однако по-прежнему не могу получить контекстную информацию из Джерси.

SecurityContextHolder.setStrategyName(SecurityContextHolder.MODE_GLOBAL)

Любая помощь с этим будет принята с благодарностью!

Большое спасибо, Найджел

Ответы [ 2 ]

2 голосов
/ 23 сентября 2010

Возможно, пользователь просто не прошел проверку подлинности, поскольку ваши запросы на Джерси не имеют cookie-файла сеанса и, следовательно, не связаны с сеансом прошедшего проверку пользователя?

Вы можете проверить это, включив анонимную аутентификацию в Spring Security - вы должны получить анонимную аутентификацию вместо null, если предположение верно.

0 голосов
/ 24 сентября 2010

@ axtavt Спасибо за комментарий. Эта подсказка помогла решить мою проблему, проверив, как были настроены мои фильтры безопасности, я нашел эту строку в моей весенней конфигурации безопасности

<security:intercept-url pattern="/api/**" filters="none" />  

Эта строка эффективно отключает все пружинные фильтры безопасности, устраняя эту проблему.

Большое спасибо за вашу помощь:)

...