SimplePrincipal не может быть приведен к KeycloakPrincipal - PullRequest
0 голосов
/ 11 мая 2018

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

Это мой класс:

@Stateless
public class ContextoSesionEJB {
@Resource
SessionContext sessionContext;

/**
 * Atributo utilizado para el registro de log de la aplicacion.
 */
private static final Logger logger = Logger.getLogger(ContextoSesionEJB.class.getName());

/**
 * Método que valida que un usuario corresponda
 * al que esta logueado en el aplicativo
 * 
 * @param nombreUsuario
 * @return boolean
 * */
public boolean validarUsuario(String nombreUsuario){
    logger.info("Inicia metodo validarUsuario");

    KeycloakPrincipal keycloakPrincipal = (KeycloakPrincipal) sessionContext.getCallerPrincipal();
    if(keycloakPrincipal.getName().equals(nombreUsuario)){
        return true;
    }else{
        logger.info("El usuario no corresponde al usuario logueado");
        return false;
    }       
}

/**
 * Método encargado de obtener el token de 
 * keycloak
 * 
 * @param 
 * @return Token
 * */
public AccessToken getToken(){      
    logger.info("Inicia metodo obtenerToken");          
    //Se accede al contexto del keycloak

    KeycloakPrincipal<KeycloakSecurityContext> keycloakPrincipal = (KeycloakPrincipal<KeycloakSecurityContext>)sessionContext.getCallerPrincipal();
     IDToken idToken = keycloakPrincipal.getKeycloakSecurityContext().getIdToken();
    //Se obtiene y se devuelve el token
    return keycloakPrincipal.getKeycloakSecurityContext().getToken();
}



}

У меня есть SessionContext, где я собираю информацию в приложении, я искал примеры и нашел много, но когда я вызываю, например, метод «validarUsuario», и я создаю новый экземпляр из KeycloakPrincipal Я получаю исключение

SimplePrincipal не может быть приведен к KeycloakPrincipal

Я не знаю, как я могу выполнить приведение к KeycloakPrincipal к методу SimplePrincipal в SessionContext

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