martes, 1 de julio de 2014

Configurar proyecto PrimeFaces con Spring Security - MAVEN



Configurar un proyecto PrimeFaces con Spring Security en Maven

Lo primero que haremos es colocar en el pom.xml las dependencias de Spring Security.

        <!-- Spring Security -->
        <dependency>
            <groupId>org.springframework.security</groupId>
            <artifactId>spring-security-core</artifactId>
            <version>3.1.4.RELEASE</version>
        </dependency>
        <dependency>
            <groupId>org.springframework.security</groupId>
            <artifactId>spring-security-web</artifactId>
            <version>3.1.4.RELEASE</version>
        </dependency>
        <dependency>
            <groupId>org.springframework.security</groupId>
            <artifactId>spring-security-config</artifactId>
            <version>3.1.4.RELEASE</version>
        </dependency>


 
Luego en el web.xml y crearemos lo siguiente:

<!-- 2 Listeners -->

<listener>
        <listener-class>

               org.springframework.web.context.ContextLoaderListener</listener-class>
</listener>
<listener>
        <listener-class>

            org.springframework.security.web.session.HttpSessionEventPublisher
        </listener-class>
</listener> 

<!-- 1 Filtro -->
  <filter>
        <filter-name>springSecurityFilterChain</filter-name>
        <filter-class>org.springframework.web.filter.DelegatingFilterProxy</filter-class>
    </filter>

    <filter-mapping>
        <filter-name>springSecurityFilterChain</filter-name>
        <url-pattern>/*</url-pattern>
        <dispatcher>FORWARD</dispatcher>
        <dispatcher>REQUEST</dispatcher>
    </filter-mapping>









  


Finalmente crearemos nuestro applicationContext.xml (Hay que recordar que este archivo ira en WEB-INF):




 <beans:beans xmlns="http://www.springframework.org/schema/security"
  xmlns:beans="http://www.springframework.org/schema/beans"
  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.1.xsd">
          
    <http auto-config="true">
        <intercept-url pattern="/**" access="ROLE_ADMINISTRADORES" />
    </http>

    <authentication-manager>
        <authentication-provider>
            <user-service>
                <user name="vendedor" password="123456" authorities="ROLE_VENDEDORES" />
                <user name="admin" password="123456" authorities="ROLE_ADMINISTRADORES" />
            </user-service>
        </authentication-provider>
    </authentication-manager>
          
</beans:beans>
  

Para terminar solamente colocaremos por ejemplo en un menuItem un item llamado "Salir" con la siguiente url, hay que tener en cuenta que "/j_spring_security_logout" irá en el botón o link de "Logout" o "Cerrar Sesión":
<p:menuitem value="Salir" url="/j_spring_security_logout" />