Amigos,
Na apostila do Vraptor, indica a criação das classes CriadorDeSessionFactory e CriadorDeSession com suas referidas notações para a injeção de dependencia para conexao com banco de dados.
Como poderia ser feito, de forma semelhante a esta para a conexão com uma base de dados LDAP?
Eu queria crias as classe CriadorDeSessionFactoryLDAP e CriadorDeSessionLDAP por exemplo para fazer autenticação dos usuários e fazer acesso a base LDAP.
Minha dúvida é que no arquivo hibernate.cfg.xml é colocado o usuário e senha do bando de dados, no caso do LDAP teria de ser passado usuário e senha, não seria fixo.
Tem como fazer estas clases desta maneira?
isso seria usando o hibernate também?
sim. Seria para utilizar o hibernate com mysql e autenticação no LDAP, sendo que o sistema faz varios acesso ao LDAP para consultas.
bom, se todas as configurações ficarem no hibernate.cfg.xml, vc só precisa mexer nele…
se vc precisar fazer alguma configuração programática é só configurar no criador de session factory…
ou vc quer ter dois tipos de sessões?
Eu preciso ter as duas sessões, uma para o mysql e outra para o LDAP.
A sesso do mysql está configurada e funcionando certinho.
No meu projeto, preciso varias, ler usuários e grupos no LDAP alem de ter de autenticar o usuário.
como vc pediria uma sessão diferente da outra?
como vc usaria isso no seu sistema?
como vc pediria uma sessão diferente da outra?
Pensei em fazer dois criadores de sessão e no meu controler colocar os dois no construtor. Não sei com faria isso e nem se é possível fazer isso.
como vc usaria isso no seu sistema?
No meu sistema, por exemplo, teria um formulario que eu selecionaria um usuário ou grupo para uma determinada ação. Precisaria selecionar dados em tabelas no mysql e usuário e grupos no LDAP para montar este formulario, assim, em uma ação eu precisaria das duas sessões.
É possivel ue fazer isso com o vraptor eu eu teria de utilizar apenas a sessão do mysql e o acesso ao LDAP eu teria de fazer tradicionalmente na mão?
se vc tiver um LDAPDao (ou algum nome melhor) para a autorização, e todos os outros daos forem usar mysql dá pra fazer algo pra diferenciar…
é assim que funciona?
Sim, isto mesmo.
Eu queria um dao normal para p banco de dados e um daoLDAP para a base de usuario.
Como faço isso?
se for só um daoLDAP e ele não for modificar coisas, vc pode fazer:
@Component
@ApplicationScoped
public class DaoLDAP {
@PostConstruct
public void createSessionFactory() {
this.sessionFactory = //cria a sessionFactory do ldap
}
public User load(Long id) {
Session session = this.sessionFactory.openSession();
User user = session.load(...);
session.close();
return user;
}
}
vc pode até separar a criação dessa outra sessionFactory e da session em outras classes, mas elas não podem ser ComponentFactories