首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >将Shiro与pac4j jax-rs实现集成

将Shiro与pac4j jax-rs实现集成
EN

Stack Overflow用户
提问于 2018-11-13 02:58:01
回答 1查看 202关注 0票数 0

我正在使用pac4j的jsx-rs实现来只为我的应用程序启用身份验证。为了获得授权,我想使用Shiro。但我不知道如何将Shiro与pac4j集成。

目前,我有一个Feature,它可以完成必要的JAX-RS配置,并且我已经使它成为了一个Provider

以下是我注册的功能和提供者。

代码语言:javascript
复制
    featureContext
    .register(new JaxRsConfigProvider(config))
    .register(new Pac4JSecurityFeature())
    .register(new Pac4JValueFactoryProvider.Binder())
    .register(new ServletJaxRsContextFactoryProvider())
    .register(new Pac4JSecurityFilterFeature(false, null, "keycloakoidcclient", "callback", false))

我使用Shiro的AuthorizationFilter来完成身份验证部分。我的意思是基于登录用户创建一个令牌。我已经注册了这个过滤器使用Guice的ServletModule。但我无法获得登录用户的联系方式。我正在尝试使用@Context注入泽西的@Context。但是过滤器的排序搞砸了。在完成身份验证之前调用AuthorizationFilter。因此,SecurityContext始终是空的。

是否有更好的方法将Shiro与pac4j集成?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-11-26 06:22:32

Shiro提供了自己的Feature实现,以便与JAX-RS一起使用。将该模块依赖项添加到项目中就可以了。

为了从pac-4j获取用户上下文,我实现了一个Authorizer,其中注入了OIDC配置文件。我创建了一个自定义用户配置文件,并向Shiro提供了如下所示:

代码语言:javascript
复制
SecurityUtils.getSubject().login(new DemoToken(profile));

这样,Shiro就可以获得用户配置文件,然后进行授权。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/53273137

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档