问题标签 [pac4j]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
playframework - 如何使 Play 和 Pac4j 兼容?
我将 Play 2.8 与 pac4j 一起使用。Play 2.8 使用 Jackson 2.10,而 pac4j-oidc 使用 Jackson 2.11。因此 2.10 被驱逐并让 Play 不开心:
我提出了一个问题,要求 pac4j 降级到 Jackson 2.10,但他们拒绝了(我可以理解)。
我还有什么其他选择(除了阴影)?
jsp - 将 Web 应用程序与 IdentityServer 集成
我有一个带有 Login.jsp 页面的简单 Web 应用程序(基于 jBPM)。同时,我使用 IdentityServer4 (Dot Net) 为 OpenId 创建了一个简单的身份网关,并且它正在运行。
我正在尝试将我的登录 JSP 与 IdentityServer4 集成以进行授权。
这是我的登录页面。
我已经在身份服务器中注册了一个客户端,并且我也有一个密钥。我正在努力将页面重定向到 IdentityServer 进行身份验证。
java - 当不在 WebContext 而不是 OidcConfiguration 中时 Pac4J OIDCConfigurationContact 范围总是“openid profile email”有什么原因吗
OIDC 请求的范围决定了 Open ID 服务器请求和返回的信息。
在 OIDCConfiguration 中,我已将范围设置为“openid email profile offline_access”,但在为 Azure AD Open ID 服务生成重定向 URL 时,始终只指定“openid profile email”。
我已将此追踪到 OidcRedirectionActionBuilder,它使用 OidcConfigurationContext 类,当在 WebContext 请求属性中找不到该值时,该类始终默认为“openid profile email”的范围。
在这一点上,我不确定如何为 Pac4J 生成的第一个重定向填充 WebContext 请求属性范围。
如果做不到这一点,我可能需要重载当前类,以便 OidcConfigurationContext 使用配置中的值作为 WebContext 中未指定的默认值,如下所示:
我的问题是 Pac4J 5.0.0 中是否存在原因,OidcConfigurationContext 默认为范围的 openid 电子邮件配置文件,并且不使用 OIDCConfiguration 作为后备值?
pac4j - pac4j 客户端的使用顺序
我有一个使用 pac4j 的应用程序并使用多个身份验证客户端来保护我的路由(直接和间接),如下所示:Secure("AnonymousClient", "FacebookClient", "JWTClient")
. 我真的不明白客户端的使用顺序。它似乎是从右到左,如果没有客户可以建立配置文件,则返回 401。我对吗?授权人的顺序是否相同?
pac4j - 有没有办法使用 pac4j AnonymousClient 作为其他直接客户端的后备?
我有一个使用 pac4j 和 JWT 客户端(即直接)的应用程序,我想使用 AnonymousClient 作为后备。如何确保在 JwtClient 之后调用 AnonymousClient?DefaultSecurityLogic 是否尊重提供客户端的顺序?
我还查看了 setProfileFactoryWhenNotAuthenticated,但在文档中他们只提到它与间接客户端一起使用(我尝试使用我的 JwtClient 并且它不起作用)。
为了让它更辣,我实际上使用了一个间接客户端,我希望将 AnonymousClient 用作整个客户端链的后备。对我的间接客户端使用 setProfileFactoryWhenNotAuthenticated 是行不通的,因为我希望使用 AnonymousCLient,即使直接客户端因为请求是 AJAX 而被丢弃。
总结一下我想做的是:
- 如果 AJAX:直接客户 > 匿名
- 如果不是 AJAX:直接客户端 > 间接客户端 > 匿名
任何想法?
java - 关于pac4j-cas和buji-pac4j升级版本问题
我的 spring-boot 项目 (2.3.10.RELEASE ) 与 shiro (1.7.1) 将 pac4j-cas(3.9.0) 和 buji-pac4j(4.1.1) 更新到最新版本 (pac4j-cas :5.1.2 pac4j -cas:6.0.0),但是碰巧我不能在HTML中使用iframe(X-Frame-Options拒绝)并且ajax被禁止了,谁能告诉我我该如何处理这些问题
pac4j - renewSession 在 pac4j 中做了什么?
我想知道有什么影响setRenewSession(false)
。我可以看到它DefaultCallbackLogic
在doc中被使用,但我无法真正理解它有什么效果以及我应该在哪个用例中设置它。
pac4j - 为什么 pac4j 会话与 OidcClient 到期?
我将 OidcClient 用于配置了setExpireSessionWithToken(false)
. 但是,会话在 1 小时( 的生命周期access_token
)之后到期。这是 pac4j 中的错误吗?
附加信息:我的回调控制器配置为setRenewSession(false)
. 它应该设置为true吗?
scala - play-pac4j回调逻辑期间如何实现数据库访问
我正在使用play-pac4j库(不是 java 而是 scala 语言版本)在我的 play 框架应用程序中实现 OAuth2 身份验证。
我想添加我自己的逻辑,在 OAuth 提供者的回调过程中通过 slick 访问数据库。但是我不知道如何正确实施它。
我尝试了以下方法,但放弃了。
- 在生成时创建和设置
CustomCallbackLogic
类CallbackController
configure()
SecurityModule.scala
- 扩展并
CustomCallbackLogic
覆盖DefaultCallbackLogic
一些必要的方法 - 在 override 方法中访问数据库
我放弃的原因是因为我在创建 CallbackLogic 实例时不知道如何进行 DI。
源代码如下。
环境
- 播放框架2.8.8
- 斯卡拉 2.13.6
- 播放-pac4j 11.0.0-PLAY2.8
- 玩滑 5.0.0
CustomCallbackLogic.scala
需要输入查询实现类和数据库访问配置和ExecutionContext作为线程池。
用户查找查询
UserFindQueryImpl
SecuritiModule.scala
这是一个用于 pac4j 设置的模块。confiture()
根据文档设置回调相关类。该模块被添加play.modules.enabled
到application.conf
.
如果是controller类下的scala类,Guice会像这样自动实例化和DI ,但是这样我需要自己实例化,不知道怎么做。
如何将数据库访问处理添加到回调逻辑?
scala - Play/Scala:使用 orElse 与 ActionBuilder 组合?
我们在 play 应用程序中使用 play-pac4j 进行身份验证。
我们希望拥有相同的路由/控制器端点,但具有取决于用户角色的不同行为。
从概念上讲,这将执行以下操作:
但是 Play 的组成Actions
只提供了andThen
,没有orElse
。有没有办法做到这一点?