Hibernate e 2 bancos de dados

Olá pessoal.

Estou fazendo a parte de login do software. Nessa parte eu uso um banco de dados e quando logo eu utilizo outro banco de dados. Como faço para conectar com outro banco de dados em um mesmo software?
No login o cliente informa o cnpj da empresa, de acordo com o cnpj da empresa eu pego o nome da base de dados que esta em um banco de dados. Ao pegar o nome da base de dados que esta inserida em um banco eu envio esse nome para a url que faz conexão com outro banco. A classe hibernate que utilizo para me conectar com outro banco é a seguinte:

public class HibernateUtil2 {
    
    private String basededados;
    private SessionFactory sessionFactory;
    private ThreadLocal<Session> sessions = new ThreadLocal<Session>();
    private Logger log = Logger.getLogger(HibernateUtil2.class);
    
    public void iniciarSessaao() {
        try {
            // Create the SessionFactory from standard (hibernate.cfg.xml) 
            // config file.
            Properties prop = new Properties();
            prop.setProperty("hibernate.dialect", "org.hibernate.dialect.PostgreSQLDialect");
            prop.setProperty("hibernate.connection.driver_class", "org.postgresql.Driver");
            prop.setProperty("jdbc:postgresql://localhost:5432/", basededados);
            prop.setProperty("hibernate.connection.username", "postgres");
            prop.setProperty("hibernate.connection.password", "root");
            prop.setProperty("hibernate.hbm2ddl.auto", "update");
            AnnotationConfiguration cfg = new AnnotationConfiguration().addProperties(prop);
            cfg.configure("hibernate.cfg.xml");
            sessionFactory = cfg.buildSessionFactory();
        } catch (Throwable ex) {
            // Log the exception. 
            System.err.println("Initial SessionFactory creation failed." + ex);
            throw new ExceptionInInitializerError(ex);
        }
    }
    
    public Session openSession(){
        if(sessions.get() != null){
            log.error("Já existe uma sessão para está thread");
        }
        log.debug("Abrindo uma nova sessão");
        sessions.set(sessionFactory.openSession());
        return sessions.get();
    }
    
    public void closeCurrentSession(){
        log.debug("Fechando sessão");
        sessions.get().close();
        sessions.set(null);
    }
    
    public Session currentSession(){
        return sessions.get();
    }
    
    public Statistics getStatistics(){
        return sessionFactory.getStatistics();
    }
    
    public SessionFactory getSessionFactory() {
        return sessionFactory;
    }

    public String getBasededados() {
        return basededados;
    }

    public void setBasededados(String basededados) {
        this.basededados = basededados;
    }
}

Alguém tem alguma sugestão pois não esta funcionando. Esta dando erro no método openSession falando de nullpointerexception. Ja pesquisei como fazer mas não acho nada. Se tiver confuso tento explicar novamente.