Как получить токен доступа Keycloak и сохранить его в БД для весенней загрузки? - PullRequest
0 голосов
/ 08 октября 2019

Я хочу сначала получить токен доступа и сохранить токен доступа, сгенерированный keycloak во время входа в систему ... в моей базе данных. я использую весеннюю загрузку.

это код, который я пытался получить токен доступа ... но результат ничего ... есть лучшее решение? ..

@RequestMapping(value = "/login", method = RequestMethod.GET)

public String getCustomers()
 {
HttpServletRequest request =((ServletRequestAttributes)RequestContextHolder.currentRequestAttributes())
                .getRequest();
        KeycloakAuthenticationToken token = (KeycloakAuthenticationToken) request.getUserPrincipal();
        KeycloakPrincipal principal = (KeycloakPrincipal) token.getPrincipal();
        KeycloakSecurityContext session = principal.getKeycloakSecurityContext();
        AccessToken accessToken = session.getToken();
        String a = principal.getName();
        String username = accessToken.getPreferredUsername();
        String realmName = accessToken.getIssuer();
        AccessToken.Access realmAccess = accessToken.getRealmAccess();
        String s = session.getToken().toString();
        System.out.println(s);
        return realmName;
..  }

Я ожидаю получить токен доступа, сгенерированный keycloak, и сохранить его в дБ.

@KeycloakConfiguration class SecurityConfig extends
  KeycloakWebSecurityConfigurerAdapter {
 /**
     * Registers the KeycloakAuthenticationProvider with the authentication manager.
     */


  @Autowired public void configureGlobal(AuthenticationManagerBuilder auth)
  throws Exception { KeycloakAuthenticationProvider
  keycloakAuthenticationProvider=keycloakAuthenticationProvider();
  keycloakAuthenticationProvider.setGrantedAuthoritiesMapper(new
  SimpleAuthorityMapper());
  auth.authenticationProvider(keycloakAuthenticationProvider); }

 /**
     * Defines the session authentication strategy.
     */
          @Bean

          @Override protected SessionAuthenticationStrategy
          sessionAuthenticationStrategy() { return new
          RegisterSessionAuthenticationStrategy(new SessionRegistryImpl()); }

          @Bean public KeycloakConfigResolver keycloakConfigResolver() { return new
          KeycloakSpringBootConfigResolver(); }

          @Override protected void configure(HttpSecurity http) throws Exception {
          super.configure(http); http .authorizeRequests()
          .antMatchers("/login*").hasRole("springrole") .anyRequest().permitAll(); } }
this is my keycloak configuration..

1 Ответ

0 голосов
/ 08 октября 2019

Вам нужен логин для keycloak, я вижу, вы просто вызываете custom "/ login" и ожидаете принципа keycloak.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...