Apache Shiro - Criar realm Shiro através de Data Source JDNI do Glassfish

2 respostas
Fernando_Mateus

Boa tarde pessoal.

Estou aprendendo a usar o Apache Shiro para fazer a segurança de um projeto que estou desenvolvendo com JSF 2 + Hibernate + EJB 3.1 + Glassfish 3.1.1.

No entanto só vi como configurar uma fonte de dados sendo o arquivo shiro.ini.

Gostaria de saber se alguém sabe informar se é possível reutilizar o Data Source JNDI criado no Glassfish para me conectar a minha fonte de dados? Se souber informar um exemplo tbm seria útil.

Att.

2 Respostas

tmvolpato

tbm gostaria de saber
me falaram bem dele…

preferi continuar o projeto com Spring security msm (JSF 2.1, JPA /Hibernate, EJB3.1, Servidor GF 3.1.x)
até agora nao tenho do que reclamar

Fernando_Mateus

Cara, não consegui encontrar essa solução para o Apache Shiro, daí decidi mudar a parte de segurança para o Spring Security, mas ainda assim não tou sabendo como configurar para obter o meu data source jndi no applicationContext.xml. Andei olhando alguns blogs e defini a seguinte configuração, mas sem êxito. Você pode me fornecer algum auxílio?

applicationContext.xml
<?xml version="1.0" encoding="UTF-8"?>
<b:beans xmlns="http://www.springframework.org/schema/security"
	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:b="http://www.springframework.org/schema/beans"
	xsi:schemaLocation="http://www.springframework.org/schema/beans
		http://www.springframework.org/schema/beans/spring-beans.xsd
		http://www.springframework.org/schema/security
        http://www.springframework.org/schema/security/spring-security-3.0.xsd">

	<http auto-config="true" use-expressions="true">
		<intercept-url pattern="/index.jsf" access="hasRole('ROLE_USER')" />
		<form-login login-page="/login.xhtml"	authentication-failure-url="/login.xhtml" />
	</http>
	<!-- Essa tag define usuários e suas autorizações na aplicação -->
	<authentication-manager> 
		<authentication-provider>
			<jdbc-user-service data-source-ref="dataSource"
				users-by-username-query="SELECT username, password, enable FROM usuario WHERE username=?"
				authorities-by-username-query="SELECT Usuario_username as username, autorizacoes_nome as authority FROM usuario_autorizacao WHERE Usuario_username=?" />
		</authentication-provider>
	</authentication-manager>

	<b:bean id="dataSource" class="org.springframework.jndi.JndiObjectFactoryBean">  
        <b:property name="jndiName" value="jdbc/mySql" />  
    </b:bean>

</b:beans>
persistence.xml
<?xml version="1.0" encoding="UTF-8"?>
<persistence 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"
	version="1.0">

	<persistence-unit name="piloto_PU" transaction-type="JTA">
		<provider>org.hibernate.ejb.HibernatePersistence</provider>
		<jta-data-source>jdbc/mySql</jta-data-source>

		<properties>
		<!-- 
			<property name="hibernate.show_sql" value="true" />
		 -->
			<property name="hibernate.format_sql" value="true" />
			<property name="hibernate.hbm2ddl.auto" value="update" />
			<property name="hibernate.dialect"
				value="org.hibernate.dialect.MySQL5InnoDBDialect" />
		</properties>
	</persistence-unit>
</persistence>
Criado 25 de janeiro de 2013
Ultima resposta 29 de jan. de 2013
Respostas 2
Participantes 2