Utilizando Spring Secutiry

<?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.jsf" authentication-failure-url="/login.jsf?erro=true"/>
    </http>
     
    <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.jdbc.datasource.DriverManagerDataSource" >
        <b:property name="url" value="jdbc:mysql://localhost:3306/livraria" />
        <b:property name="driverClassName" value="com.mysql.jdbc.Driver" />
        <b:property name="username" value="root" />
        <b:property name="password" value="123" />
    </b:bean>
 
</b:beans>

Esse código acima é do applicationContext.xml. Eu gostaria de saber como fazer para aplicar/usar essas autorizações. Por exemplo: o usuário JOAO não pode ter acesso à página de cadastro de clientes. Alguém poderia me explicar? Ou se alguém tiver um material legal sobre spring security, de preferência em português, eu ficaria grato.

Cara tem esse link que foi o que tirou algumas dúvidas minhas a respeito do Spring Security http://jamacedo.com/2011/01/crud-jsf-2-parte-3-seguna-com-spring-security-3/
Dá uma olhada, qualquer coisa você pergunta o que ficou em dúvida.

Sim, foi exatamente desse site que eu tirei aquele código. O arquivo de configuração está ok, mas gostaria de saber como aplicar essas autorizações nas minha páginas, ou como funciona isso, o que é feito automático e o que eu devo fazer. Não sei se me expressei bem, espero que sim…
Por exemplo, como fazer com que o usuário JOAO não acesse a página de cadastro de clientes utilizando spring security.

Você deverá fazer algo do tipo:


<form action="j_spring_security_check" method="post">

Usuário: <input name="j_username" type="text" value="${not empty login_error ? SPRING_SECURITY_LAST_USERNAME : ''}" />

<br />

Senha: <input type="password" name="j_password"><br />

<input type="submit" value="Efetuar Login"><br />

<a href="index.jsp">Retornar para a Página Inicial</a>

</form>

//Tirado do Blog http://www.edsongoncalves.com.br/2010/04/25/seguranca-passo-a-passo-com-spring-security-3-0/

Ou você quer algo do tipo deste post http://www.guj.com.br/java/294612-springsecurity–jsf2–primefaces#1564111

Amigo, também não era isso que eu queria. A página de login está funcionando corretamente e está direcionando para o index. Mas te agradeço mesmo assim por tentar me ajudar.

Acredito que agora eu compreendi como funciona… vou tentar explicar o que eu entendi, e se eu estiver errado que alguém me corrija.

Eu terei uma tabela USUARIO e outra tabela USUARIO_AUTORIZACAO no meu banco de dados. Se eu cadastrar o usuário JOAO com autorização USER, então ele só poderá acessar as páginas que tiverem o “access=“hasRole(‘USER’)”” conforme abaixo:

<intercept-url pattern="/index.jsf" access="hasRole('USER')"/>
<intercept-url pattern="/consultas.jsf" access="hasRole('USER')"/>
<intercept-url pattern="/relatorios.jsf" access="hasRole('USER')"/>

No caso se eu tiver as seguintes páginas:

<intercept-url pattern="/admin.jsf" access="hasRole('ADMIN')"/>
<intercept-url pattern="/restrito.jsf" access="hasRole('ADMIN')"/>
<intercept-url pattern="/faturamento.jsf" access="hasRole('ADMIN')"/>

O usuário JOAO não poderá acessar porque ele está autorizado como USER.

Se for isso mesmo que eu entendi, gostaria que alguém confirmasse. Eu não posso testar isso no momento.