How Does Spring Security Authentication Work?