问题标签 [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.

0 投票
1 回答
31 浏览

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,但他们拒绝了(我可以理解)。

我还有什么其他选择(除了阴影)?

0 投票
0 回答
37 浏览

jsp - 将 Web 应用程序与 IdentityServer 集成

我有一个带有 Login.jsp 页面的简单 Web 应用程序(基于 jBPM)。同时,我使用 IdentityServer4 (Dot Net) 为 OpenId 创建了一个简单的身份网关,并且它正在运行。

我正在尝试将我的登录 JSP 与 IdentityServer4 集成以进行授权。

这是我的登录页面。

我已经在身份服务器中注册了一个客户端,并且我也有一个密钥。我正在努力将页面重定向到 IdentityServer 进行身份验证。

0 投票
0 回答
28 浏览

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 作为后备值?

0 投票
1 回答
57 浏览

pac4j - pac4j 客户端的使用顺序

我有一个使用 pac4j 的应用程序并使用多个身份验证客户端来保护我的路由(直接和间接),如下所示:Secure("AnonymousClient", "FacebookClient", "JWTClient"). 我真的不明白客户端的使用顺序。它似乎是从右到左,如果没有客户可以建立配置文件,则返回 401。我对吗?授权人的顺序是否相同?

0 投票
0 回答
21 浏览

pac4j - 有没有办法使用 pac4j AnonymousClient 作为其他直接客户端的后备?

我有一个使用 pac4j 和 JWT 客户端(即直接)的应用程序,我想使用 AnonymousClient 作为后备。如何确保在 JwtClient 之后调用 AnonymousClient?DefaultSecurityLogic 是否尊重提供客户端的顺序?

我还查看了 setProfileFactoryWhenNotAuthenticated,但在文档中他们只提到它与间接客户端一起使用(我尝试使用我的 JwtClient 并且它不起作用)。

为了让它更辣,我实际上使用了一个间接客户端,我希望将 AnonymousClient 用作整个客户端链的后备。对我的间接客户端使用 setProfileFactoryWhenNotAuthenticated 是行不通的,因为我希望使用 AnonymousCLient,即使直接客户端因为请求是 AJAX 而被丢弃。

总结一下我想做的是:

  • 如果 AJAX:直接客户 > 匿名
  • 如果不是 AJAX:直接客户端 > 间接客户端 > 匿名

任何想法?

0 投票
0 回答
77 浏览

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被禁止了,谁能告诉我我该如何处理这些问题

0 投票
0 回答
17 浏览

pac4j - renewSession 在 pac4j 中做了什么?

我想知道有什么影响setRenewSession(false)。我可以看到它DefaultCallbackLogicdoc中被使用,但我无法真正理解它有什么效果以及我应该在哪个用例中设置它。

0 投票
0 回答
16 浏览

pac4j - 为什么 pac4j 会话与 OidcClient 到期?

我将 OidcClient 用于配置了setExpireSessionWithToken(false). 但是,会话在 1 小时( 的生命周期access_token)之后到期。这是 pac4j 中的错误吗?

附加信息:我的回调控制器配置为setRenewSession(false). 它应该设置为true吗?

0 投票
0 回答
63 浏览

scala - play-pac4j回调逻辑期间如何实现数据库访问

我正在使用play-pac4j库(不是 java 而是 scala 语言版本)在我的 play 框架应用程序中实现 OAuth2 身份验证。

我想添加我自己的逻辑,在 OAuth 提供者的回调过程中通过 slick 访问数据库。但是我不知道如何正确实施它。

我尝试了以下方法,但放弃了。

  • 在生成时创建和设置CustomCallbackLogicCallbackControllerconfigure()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.enabledapplication.conf.

如果是controller类下的scala类,Guice会像这样自动实例化和DI ,但是这样我需要自己实例化,不知道怎么做。

如何将数据库访问处理添加到回调逻辑?

0 投票
2 回答
50 浏览

scala - Play/Scala:使用 orElse 与 ActionBuilder 组合?

我们在 play 应用程序中使用 play-pac4j 进行身份验证。

我们希望拥有相同的路由/控制器端点,但具有取决于用户角色的不同行为。

从概念上讲,这将执行以下操作:

但是 Play 的组成Actions只提供了andThen,没有orElse。有没有办法做到这一点?