Pac4j 基于 UI 编辑客户端配置

问题描述 投票:0回答:1

我正在使用 Pac4j 5.0X 和基于 Maven 的 Java 8 Jee 项目。 供参考:: https://github.com/pac4j/jee-pac4j-demo/tree/5.0.x 在此,我使用 Webservlet 来编辑配置更改

@WebServlet(urlPatterns = "/customScopes")
public class CustomScopesServlet2 extends HttpServlet {
   Integer counter=0;
    @Override
    public void init() throws ServletException {
        super.init();
    }

    @Override
    protected void doGet(HttpServletRequest req, HttpServletResponse resp) {
        OidcConfiguration oidcConfiguration = new OidcConfiguration();
        oidcConfiguration.setClientId("");
        oidcConfiguration.setSecret("");
        oidcConfiguration.setUseNonce(false);
        DemoConfigFactory.CONFIG_INSTANCE.getClients().getClients().forEach(client -> {
            try {
                counter++;
                if (client instanceof GoogleOidcClient) {
                    ((GoogleOidcClient) client).setConfiguration(oidcConfiguration);
                    String name = client.getName();
                     if(counter==1)
                      ((GoogleOidcClient) client).getConfiguration().setScope("openid profile");
                     else if(counter>1)
                      ((GoogleOidcClient) client).getConfiguration().setScope("openid profile");
                }
            } catch (Exception e) {
                
            }
        });

    }
}

这是一个示例测试,我正在修改 DemoconfigFaactory 当我重新启动我的应用程序时,默认的应用程序已加载,我可以看到授权调用将 openid 作为默认范围发送,当我点击 customScopes servlet 时,范围现在设置为 openid 配置文件,并且它 #refecte 在应用程序中,[默认范围是 Openid ],现在我第二次再次点击#endpoint,范围没有改变,范围是 openid 配置文件,现在应该是 openid #v,但我看不到发送 openid 的身份验证端点,它在登录时仍然反映 openid 配置文件。

每当我从 UI 更改配置时,每次配置都应相应更新。

java servlets pac4j
1个回答
0
投票

我的意思是,你不应该这样做,随着时间的推移改变配置。

您需要两个具有不同范围的

GoogleOidcClient
,或者您需要在代码中进行自定义。

© www.soinside.com 2019 - 2024. All rights reserved.