中文字幕精品亚洲无线码二区,国产黄a三级三级三级看三级,亚洲七七久久桃花影院,丰满少妇被猛烈进入,国产小视频在线观看网站

keycloak~為認證提供(gong)者添(tian)加(jia)配(pei)置項

keycloak提供(gong)多種認證提供(gong)者,如用戶名密碼的(de)方(fang)式,第三(san)方(fang)社區(qu)的(de)方(fang)式,一般來說(shuo),第三(san)方(fang)社區(qu)的(de)方(fang)式都(dou)是符合oauth2標準(zhun)的(de),第三(san)方(fang)社區(qu)像(xiang)github,google,weixin之(zhi)類(lei)的(de)都(dou)需要你去申(shen)請個appid,appsecret,而(er)這(zhe)些信息我們(men)(men)不要硬編碼,kc為我們(men)(men)提供(gong)了一種配(pei)置(zhi)的(de)方(fang)式,在kc管(guan)理平臺中去配(pei)置(zhi)它(ta)們(men)(men)。

幾種認證接口

  • Authenticator 認證接口
    • AbstractFormAuthenticator 表單認證
    • AbstractUsernameFormAuthenticator 用戶名和密碼的表單認證
    • BaseDirectGrantAuthenticator 直接認證接口
  • IdentityProvider 認證服務的標準接口,所有三方認證服務都實現它
    • AbstractIdentityProvider 證服務的抽象類
    • AbstractOAuth2IdentityProvider 提供了oauth2的標準
    • SocialIdentityProvider 第三方社區認證

認證服務的配置

  • 為ProviderConfigProperty對象添加配置集合
   private static final List<ProviderConfigProperty> configProperties = new ArrayList<>();
   static {

      List<ProviderConfigProperty> config = ProviderConfigurationBuilder.create()
          .property()
          .name(DEFAULT_REGISTER_ADDRESS).label("默認注冊頁").helpText("不設置時,前端登錄顯示不顯示'注冊'按鈕").type(ProviderConfigProperty.STRING_TYPE).add()
          .property()
          .name(FORGET_PASSWORD_ADDRESS).label("忘記密碼頁").helpText("不設置時,前端不顯示'忘記密碼'按鈕").type(ProviderConfigProperty.STRING_TYPE).add()
          .property()
          .name(SHOW_AUTO_LOGIN).label("顯示自動登錄").type(ProviderConfigProperty.BOOLEAN_TYPE).add()
          .property()
          .name(WEIXIN_CALLBACK).label("微信回調地址").type(ProviderConfigProperty.STRING_TYPE).add()
          .build();

  configProperties.addAll(config);
    }
  • 重寫可配置方法
  @Override
    public boolean isConfigurable() {
        return true;
    }
  • 返回配置對象
  @Override
  public List<ProviderConfigProperty> getConfigProperties() {
      return configProperties;
  }

獲取配置薦

  • 直接獲取
String regAddr=context.getAuthenticatorConfig().getConfig().get(DEFAULT_REGISTER_ADDRESS)
  • 將配置通過表單屬性傳遞到前端ftl里
LoginFormsProvider forms = context.form();
if (context.getAuthenticatorConfig() != null
          && context.getAuthenticatorConfig().getConfig() != null) {
      forms.setAttribute(SHOW_AUTO_LOGIN, context.getAuthenticatorConfig().getConfig().get(SHOW_AUTO_LOGIN));
      forms.setAttribute(WEIXIN_CALLBACK, context.getAuthenticatorConfig().getConfig().get(WEIXIN_CALLBACK));
  }

  • 前端直接使用
<span>${(account.email!'未設置')}<span>
posted @ 2021-08-24 15:58  張占嶺  閱讀(553)  評論(0)    收藏  舉報