<output id="qn6qe"></output>

    1. <output id="qn6qe"><tt id="qn6qe"></tt></output>
    2. <strike id="qn6qe"></strike>

      亚洲 日本 欧洲 欧美 视频,日韩中文字幕有码av,一本一道av中文字幕无码,国产线播放免费人成视频播放,人妻少妇偷人无码视频,日夜啪啪一区二区三区,国产尤物精品自在拍视频首页,久热这里只有精品12

      keycloak~自定義directgrant直接認(rèn)證

      direct grant我們把它理解為通過rest接口直接認(rèn)證,這是oauth2里的密碼認(rèn)證方式,即grant_type=password,它不需要走授權(quán)碼這種復(fù)雜的流程,相當(dāng)于傳統(tǒng)的表單認(rèn)證;keycloak事實(shí)上為我們準(zhǔn)備了一個direct grant,只不過它只能使用username和password進(jìn)行認(rèn)證,如果你希望使用email,phoneNumber來進(jìn)行密碼認(rèn)證,則需要另外去開發(fā),下面就是開發(fā)的步驟:

      • 添加provider和providerFactory
        你的SelfDirectGrantAuthenticator需要繼承ValidatePassword ,當(dāng)然繼承AbstractDirectGrantAuthenticator也是可以的,ValidatePassword是AbstractDirectGrantAuthenticator的一個子類,都是在直接授權(quán)時使用的,它的作用是校驗(yàn)用戶的密碼,KC的這種設(shè)計有利于程序的解耦,例如除了ValidatePassword還有ValidateUsername等。
      /**
       * 直接繼承了驗(yàn)證密碼功能的direct grant流.
       */
      public class TestDirectGrantAuthenticator extends ValidatePassword {
        KeycloakSession session;
      
        public V6DirectGrantAuthenticator(KeycloakSession session) {
          this.session = session;
        }
      
        @Override
        public void authenticate(AuthenticationFlowContext context) {
          String username = Optional.ofNullable(context.getHttpRequest().getDecodedFormParameters().getFirst("username"))
              .orElse(context.getHttpRequest().getDecodedFormParameters().getFirst("username"));
          String password = Optional.ofNullable(context.getHttpRequest().getDecodedFormParameters().getFirst("password"))
              .orElse(context.getHttpRequest().getDecodedFormParameters().getFirst("password"));
          MultivaluedMap<String, String> inputData = new MultivaluedMapImpl<>();
          inputData.add(KeycloakUtil.FIELD_EMAIL_PHONE, username);
          inputData.add(KeycloakUtil.PASSWORD, password);
          if (KeycloakUtil.passwordLogin(this, context, session.getProvider(JpaConnectionProvider.class).getEntityManager(), session, inputData)) {
            super.authenticate(context); //驗(yàn)證密碼
          }
        }
      
      • 注冊到org.keycloak.authentication.AuthenticatorFactory

      • keycloak管理平臺,添加驗(yàn)證,可以從默認(rèn)的direct grant上復(fù)制

      • 將直接認(rèn)證流程改成剛剛建立的

      • 現(xiàn)在就可以在postman里,脫離瀏覽器,進(jìn)行認(rèn)證了,并直接返回access_token

      posted @ 2022-01-13 16:39  張占嶺  閱讀(984)  評論(0)    收藏  舉報
      主站蜘蛛池模板: 女厕偷窥一区二区三区| 人人色在线视频播放| 亚洲精品香蕉一区二区| 国产99视频精品免费视频6| 狠狠五月深爱婷婷网| 国产精品无码av不卡| 激情国产一区二区三区四| 欧美综合人人做人人爱| 国产精品久久国产精麻豆99网站| 久久久久四虎精品免费入口| 精品国内自产拍在线观看| 国产一区二区av天堂热| 日韩精品 在线一区二区| 亚洲va中文字幕无码久久不卡 | 少妇人妻偷人精品无码视频| 鹤峰县| 国产精品视频中文字幕| 丝袜a∨在线一区二区三区不卡| 国产尤物AV尤物在线看| 国产午夜福利一区二区三区| 色综合久久久久综合体桃花网 | 免费拍拍拍网站| 精品一二三四区在线观看| 亚洲精品日韩中文字幕| 日韩免费码中文在线观看| 亚洲国产欧美在线人成aaaa| 久久日产一线二线三线| 国产精品综合色区在线观| 蜜臀久久精品亚洲一区| 亚洲www永久成人网站| 亚洲精品日韩中文字幕| 欧美日韩精品一区二区视频| 香港日本三级亚洲三级| 国产人与zoxxxx另类| 国产精品亚洲综合一区二区| 国产精品亚洲二区亚瑟| 亚洲国产午夜福利精品| 无码激情亚洲一区| 日韩无矿砖一线二线卡乱| 一级国产在线观看高清| 狼人大伊人久久一区二区|