Spring Security

13 respostas
joaogbrito

Olá pessoal,

Estou com uma dúvida na permissão e autorização de usuários.

Estou implementando uma aplicação em JSF 2.0, no qual vai haver 3 tipos de usuários (adm, funcionario e servidor), porém não consigo implementar para buscar os dados no banco de dados. estou seguindo as dicas do Java Café.

http://javasemcafe.blogspot.com/2011/05/java-ee-6-seguranca-com-spring-security.html

Alguém poderia me dá uma ajuda?

No aguardo… :roll:

13 Respostas

M

Fala joaogbrito.

Cara no que exatamente que vc precisa de ajuda???

Caso vc quiser eu fiz o meu tcc na faculdade sobre o Spring Security, é só me passar o teu email que eu te mando ele.

joaogbrito

Eu quero gerenciar permissões com Spring Security e Criar CRUD com o FrameWork Spring e algumas coisas mais que o meu chefe pedi.

Pode me mandar nos emails abaixo:

[email removido]
[email removido]

DarthCego

Ola amigo

o que exatamente vc nao consegue fazer com o security porque o tutorial q voce esta seguindo explica bem como usa-lo dai e so adaptar pro seu projeto qualquer coisa posta o applicationContext ou os erros ae

Abraços

joaogbrito

Olá Pessoal,

O que eu preciso?

R: Existirá três tipos de usuários, cada usuário terá permissões diferentes. Vai ler os usuários de dois banco de dados. E verificar pelo setor.

Exemplo:

Se usuário for do setor financeiro redirecione para pagina - funcionario/index.jsf
Se usuário for do setor de Ti redirecione para pagina - gerente/index.jsf
Se usuário for do setor desenvolvimento redirecione para pagina - adm/index.jsf

Desde já agradeço pessoal.

jonathaslf

cara conseguiu genrenciar as autoridades de cada usuario? por exemplo editar Autorização de Usuario. pois tenho tres tabelas Usuario, Roles e Usuario_role, sendo que essa usuario_role nao he mapeada como entidade classe. ao cadastrar no usuario que que possui um OneToMany List ele adicionar automatico no usuario_role,
porem para editar nao consigo.

joaogbrito

Consegui sim man. Qual a sua dúvida?

jonathaslf

to querendo editar um usuario. Tenho por exemplo usuario TESTE como PERMISSOES (ROLE_ADM, ROLE_SEC), soh que quer alterar e por ex: ROLE_ADM, ROLE_USUARIO, porem nao sei como fazer pois como nao tenho a classe relacionamento de ROLE e USUARIO nao posso deletar ou altera na tabela direto. nao sei se entendeu…rsrs

joaogbrito

Man,

Essa alteração se faz no ApplicationContext. Me mada ai seu applicationContext

jonathaslf
<beans xmlns="http://www.springframework.org/schema/beans"
       xmlns:sec="http://www.springframework.org/schema/security"
       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
       xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.0.xsd http://www.springframework.org/schema/security http://www.springframework.org/schema/security/spring-security-3.0.3.xsd">				
	
    <sec:http auto-config="true" access-denied-page="/acessonegado.xhtml" use-expressions="true">
		
        <sec:intercept-url pattern="/system/*" access="isAuthenticated()" />
        <sec:intercept-url pattern="/system/administrador/*" access="hasRole('ROLE_ADMINISTRADOR')" />		
		
        <sec:form-login login-page="/login.xhtml" 
                        login-processing-url="/j_spring_security_check" 
                        default-target-url="/system/inicio.xhtml" 
                        authentication-failure-url="/login.xhtml" />
					    
        <sec:logout logout-success-url="/login.xhtml" />
		
    </sec:http>
    
    
    
    <sec:authentication-manager>
        <sec:authentication-provider user-service-ref="hibernateUserDetailsService" ref="daoAuthenticationProvider" >
            <sec:password-encoder hash="md5" />
        </sec:authentication-provider>
    </sec:authentication-manager>
    
    <bean id="passwordEncoder"  class="org.springframework.security.authentication.encoding.Md5PasswordEncoder" />  
	
    <bean id="daoAuthenticationProvider" class="org.springframework.security.authentication.dao.DaoAuthenticationProvider">
        <property name="userDetailsService" ref="hibernateUserDetailsService" />
        <property name="passwordEncoder" ref="passwordEncoder" />
    </bean>

    <bean id="loggerListener" class="org.springframework.security.access.event.LoggerListener" />
 
</beans>
joaogbrito

man,

Você configura assim:

<sec:http auto-config=“true” access-denied-page="/acessoNegado.jsf">
<sec:form-login login-page="/login.jsf" authentication-failure-url="/login.jsf?erro=true" />
<sec:intercept-url pattern="/autenticados/" access=“ROLE_NOG,ROLE_NAP,ROLE_OPERADORA, ROLE_GESTOR,ROLE_CAT , ROLE_SERVIDOR” />
<sec:intercept-url pattern="/autenticados/telas/nap/
" access=“ROLE_NAP” />
<sec:intercept-url pattern="/autenticados/telas/servidor/" access=“ROLE_SERVIDOR” />
<sec:intercept-url pattern="/autenticados/telas/operadora/
" access=“ROLE_OPERADORA” />
<sec:intercept-url pattern="/autenticados/telas/gestor/" access=“ROLE_GESTOR” />
<sec:intercept-url pattern="/autenticados/telas/cat/
" access=“ROLE_CAT” />
<sec:intercept-url pattern="/**" access=“IS_AUTHENTICATED_ANONYMOUSLY” />

</sec:http>

Se não consegui eu configuro amanhã esse seu applicationContext. Mais man não tem erro. Pode fazer o seu que não tem erro. Abraços

jonathaslf

mano acho q vc nao entendeu meu problema…a parte de interceptar url pelas roles…eu consigo. o que eu quero he , pode se dizer que he um CRUD de usuario. pois nao consigo alterar as permissões do usuario x ou y. Ate amanha entao.
nesse post tem minhas classes mais ou menos como estao
http://www.guj.com.br/java/289959-remover-authorities-do-usuaurio-no-springsecurity#1534070

joaogbrito

É man, não tinha entendido mesmo. Eu só utilizo uma tabela para autorização e usuário.

jonathaslf

vlw mano!

Criado 28 de fevereiro de 2012
Ultima resposta 21 de dez. de 2012
Respostas 13
Participantes 4