A instalação e configuração do Spring Security é a mesma de um aplicativo que já usa Spring Web MVC. MAS o pulo do gato é resolver isso através do shell do Spring Roo, com mais um comando esperto.
Comece definindo a estrutura do aplicativo no Spring Roo, depois execute o comando:
_> security setup
Altere o arquivo applicationContext-security.xml indicando o padrão de url que aciona o mecanismo de segurança segurança, por exemplo:
<intercept-url pattern="/pastaProtegida/**" access="isAuthenticated()" />
Pronto! É só empacotar [perform package] e rodar a aplicação [
mvn tomcat:run].Mas... o que o Roo faz por trás das cortinas?
- Primeiro configura a dependência do Spring Security (pom.xml);
- Depois cria um arquivo xml com as diretrizes de segurança: applicationContext-security.xml
     <http auto-config="true" use-expressions="true">
        <form-login 
           login-processing-url="/resources/j_spring_security_check" 
           login-page="/login" 
           authentication-failure-url="/login?login_error=t"/>
        <logout logout-url="/resources/j_spring_security_logout"/>
       
        <!-- primeiro so admin, segundo qualquer autenticado, terceiro e quarto nao precisa de login -->
        <intercept-url pattern="/admin/**" access="hasRole('ROLE_ADMIN')"/>
        <intercept-url pattern="/restrito/**" access="isAuthenticated()" />
        <intercept-url pattern="/free/**" access="permitAll" />
        <intercept-url pattern="/**" access="permitAll" />
    </http>
    <!-- define o mecanismo de seguranca simples (estatico) com os usuarios: admin/admin e user/user -->
    <authentication-manager alias="authenticationManager">
        <authentication-provider>
            <password-encoder hash="sha-256"/>
            <user-service>
                <user name="admin" password="8c6976e5b5410415bde908bd4dee15dfb167a9c873fc4bb8a81f6f2ab448a918" authorities="ROLE_ADMIN"/>
            <user name="user" password="04f8996da763b7a969b1028ee3007569eaf3a635486ddab211d512c85b9df8fb" authorities="ROLE_USER"/>
        </user-service>
        </authentication-provider>
    </authentication-manager>
- Cria uma página com formulário de login:
... <form action="/static/resources/j_spring_security_check" method="POST"> <div> <label for="j_username"> <spring:message code="security_login_form_name" /> </label> <input id="j_username" type='text' name='j_username' /> ... </div> <br /> <div> <label for="j_password"> <spring:message code="security_login_form_password" /> </label> <input id="j_password" type='password' name='j_password' /> ... </div> ... </form> ...
- Configura a página de login no arquivo view.xml (usado pelo Tiles):
<definition extends="public" name="login"> <put-attribute name="body" value="/WEB-INF/views/login.jspx"/> </definition>
- Declara o filtro do Spring Security (springSecurityFilterChain) no web.xml:
<filter> <filter-name>springSecurityFilterChain</filter-name> <filter-class> org.springframework.web.filter.DelegatingFilterProxy </filter-class> </filter>
- Configura a página de login no webmvc-config.xml:
<mvc:view-controller path="/login"/>
Veja mais sobre Spring Security.
Veja também mais sobre Spring Roo no Globalcoders e aqui no blog.
Spring Roo: Mais agilidade com qualidade!
http://twitter.com/edermag
http://www.yaw.com.br/
 
1 comment:
Se minha aplicação for com JSF, tem alguma forma de eu adicionar o security pq eu nao encontro no help.
Post a Comment