1. Librerías
    1. spring-security-core.jar
      1. Core
    2. spring-security-web.jar
      1. Filters
      2. Web security
    3. spring-security-config.jar
      1. XML Configuration
    4. spring-security-ldap.jar
      1. LDAP authentication
    5. spring-security-acl.jar
      1. Single Sign On
  2. Configuración
    1. web.xml
    2. Configuración mínima
      1. auto-config
        1. <form-login />
        2. <http-basic />
        3. <logout />
    3. Página de login
  3. Autenticación
    1. Proceso
      1. The username and password are obtained and combined into an instance of UsernamePasswordAuthenticationToken
      2. The token is passed to an instance of AuthenticationManager for validation
      3. The AuthenticationManager returns a fully populated Authentication instance on successful authentication
      4. The security context is established by calling SecurityContextHolder.getContext().setAuthentication(...), passing in the returned authentication object
  4. Autorización
  5. Web Features
    1. Remember me
    2. HTTP/HTTPS
      1. <intercept-url pattern="/secure/**" access="ROLE_USER" requires-channel="https"/>
    3. Session Management
      1. Timeouts
        1. <session-management invalid-session-url="/sessionTimeout.htm" />
      2. Concurrent Session Control
        1. HttpSessionEventPublisher
        2. <concurrency-control max-sessions="1" />
    4. OpenID Support
  6. Core Services
    1. AuthenticationManager
    2. ProviderManager
    3. AuthenticationProvider
      1. DaoAuthenticationProvider
      2. LdapAuthenticationProvider
    4. UserDetailsService
      1. In-Memory Authentication
      2. JdbcDaoImpl
    5. Password Encoding
    6. Core Security Filters
      1. FilterSecurityInterceptor
      2. ExceptionTranslationFilter
      3. SecurityContextPersistenceFilter
      4. UsernamePasswordAuthenticationFilter
  7. Tag Libraries
    1. <%@ taglib prefix="sec" uri="http://www.springframework.org/security/tags" %>
    2. authentication
      1. <sec:authentication property="principal.username" />
    3. authorize
      1. <sec:authorize access="hasRole('supervisor')">
      2. <sec:authorize url="/admin">
    4. accesscontrollist
      1. Spring Security's ACL module
      2. <sec:accesscontrollist hasPermission="1,2" domainObject="someObject">
  8. Acerca de
    1. Topic
    2. Topic