Я использую реализацию pac4j jsx-rs , чтобы включить только АУТЕНТИФИКАЦИЮ для моего приложения. Для авторизации хочу использовать Широ. Но я не уверен, как интегрировать Shiro с pac4j.
В настоящее время у меня есть Feature
, который выполняет необходимую настройку JAX-RS, и я сделал его Provider
Ниже перечислены функции и поставщики, которые я зарегистрировал.
featureContext
.register(new JaxRsConfigProvider(config))
.register(new Pac4JSecurityFeature())
.register(new Pac4JValueFactoryProvider.Binder())
.register(new ServletJaxRsContextFactoryProvider())
.register(new Pac4JSecurityFilterFeature(false, null, "keycloakoidcclient", "callback", false))
Я использую AuthorizationFilter
Широ, чтобы выполнить аутентификацию. Под этим я подразумеваю, что создаю токен на основе зарегистрированного пользователя. Я зарегистрировал этот фильтр, используя Guice's ServletModule
. Но я не могу заполучить зарегистрированного пользователя. Я пытаюсь ввести Джерси SecurityContext
, используя @Context
. Но порядок фильтров перепутан. AuthorizationFilter
вызывается до завершения аутентификации. Следовательно, SecurityContext
всегда равно нулю.
Есть ли лучший способ интеграции Shiro с pac4j?