Dúvida: Conexão no banco com spring security

Java

06/06/2012

Boa Tarde,

Minha aplicação utiliza a persistencia.xml para conectar ao banco conforme abaixo, porém minha dúvida é, a maioria dos modelos existente na web utilizando spring security conecta para validar o login através do xml do spring conforme modelo B, minha aplicação pode ter essas duas conexão, pelo hibernate e pelo spring ?, usando o hibernate para acesso aos dados da aplicação e a conexão do spring apenas para validar usuário ?.


UTILIZADO NA MINHA APLICAÇÃO.

<?xml version=1.0 encoding=UTF-8?>
<persistence version=1.0
xmlns=http://java.sun.com/xml/ns/persistence
xmlns:xsi=http://www.w3.org/2001/XMLSchema-instance
xsi:schemaLocation=http://java.sun.com/xml/ns/persistence http://java.sun.com/xml/ns/persistence/persistence_1_0.xsd>

<persistence-unit name=ecommerce>

<provider>org.hibernate.ejb.HibernatePersistence</provider>

<properties>
<property name=hibernate.archive.autodetection
value=class, hbm />

<!--Configuracoes de dialeto e conexao-->
<property name=hibernate.dialect
value=org.hibernate.dialect.MySQLInnoDBDialect />
<property name=hibernate.connection.driver_class
value=com.mysql.jdbc.Driver />
<property name=hibernate.connection.url
value=jdbc:mysql://localhost/ecommerce />
<property name=hibernate.connection.username
value=root />
<property name=hibernate.connection.password
value=123 />

<!--Configuracoes de Debug-->
<property name=hibernate.show_sql value=true />
<property name=hibernate.format_sql value=true />
<property name=use_sql_comments value=true />

<!--Configuração do segundo nível de cache-->
<property name=hibernate.cache.provider_class
value=net.sf.ehcache.hibernate.EhCacheProvider />

<property name=hibernate.cache.provider_configuration
value=/ehcache.xml />

<property name=hibernate.cache.use_minimal_puts
value=false />
<property name=hibernate.cache.use_query_cache
value=true />
<property name=hibernate.cache.use_second_level_cache
value=true />
<property name=hibernate.cache.use_structured_entries
value=true />

<property name=hibernate.ejb.classcache.br.com.integrator.entities.Categoria
value=read-write />


<!--Configuração do pool de c3p0-->
<property name=hibernate.c3p0.min_size value=5 />
<property name=hibernate.c3p0.max_size value=20 />
<property name=hibernate.c3p0.timeout value=300 />
<property name=hibernate.c3p0.max_statements value=50 />
<property name=hibernate.c3p0.idle_test_period value=3000/>



</properties>

</persistence-unit>
</persistence>


parte da conexão do spring security.xml com opção de conexão do banco de dados.

<authentication-provider>
<jdbc-user-service data-source-ref=dataSource/>
</authentication-provider>

<beans id=dataSource class=org.springframework.jdbc.datasource.DriverManagerDataSource>
<property name=driverClassName value=com.mysql.jdbc.Driver/>
<property name=url value=jdbc:mysql://localhost/ecommerce/>
<property name=username value=root/>
<property name=password value=123/>
</beans>

Roger Mendes

Roger Mendes

Curtidas 0

Respostas

Roger Mendes

Roger Mendes

06/06/2012

Alguém poderia tirar essa dúvida ?.
GOSTEI 0
Davi Costa

Davi Costa

06/06/2012

Existem algumas formas de vc mapear o authentication-provider.
Não só criando um data-source pode ser uma classe java onde vc faz toda sua regra de negócio e lá vc usaria o hibernate.
Na prática e na maioria dos sistema que tenho visto por ai é assim que é usado.
Vc configura o hibernate onde e como quiser, vc só não deve é duplicar nos seus arquivos de configuração a conexão com o banco.
Veja esse projeto:

https://github.com/rponte/jsf-issuetracker-project

att Davi
GOSTEI 0
Roger Mendes

Roger Mendes

06/06/2012

vi seu projeto, o mesmo utiliza filtro para segurança, o problema mencionado no meu projeto é utilizando spring security, mas como disse no final se eu entendi bem, eu não posso ter 2 conexão com o banco ?. estava utilizando uma conexão através de persistência utilizando hibernate e outra com o spring security para acesso a usuário e senha autenticando acesso a aplicação.
GOSTEI 0
Davi Costa

Davi Costa

06/06/2012

Poder até pode,só não acho legal você cnfigura nos seus xmls duas vezes uma mesma conexão de banco.

att Davi
GOSTEI 0
Roger Mendes

Roger Mendes

06/06/2012

Obrigado pelo esclarecimento
GOSTEI 0
POSTAR