AngularJS & Spring Security con ROLE_ANONYMOUS aún devuelve 401

Estamos creando una aplicación de material angular, consumiendo una API RESTful Spring MVC, con Spring Security y OAUTH2.

Para fines de prueba, le dimos acceso a ROLE_ANONYMOUS a nuestro punto final / usuarios:

<intercept-url pattern="/users" method="POST" access="ROLE_ANONYMOUS"/>

Pero cuando intentamos enviar un JSON por POST, todavía recibimos una respuesta 401 del servidor.

Esto no está sucediendo con clientes no angulares como Postman.Si deshabilitamos el filtro Spring Security, todo funciona bien.Las solicitudes GET al mismo punto final también funcionan bien.

Esta es nuestra app.config:

  angular.module('App')
    .constant('RESOURCES', (function () {
                var resource = 'http://localhost:8080';
                return {
                  USERS: resource + '/users'
                }
              })());

Y la fábrica haciendo el método POST:

  app.factory('LoginUser', ['RESOURCES', '$resource', function (RESOURCES, $resource) {
    return $resource(RESOURCES.USERS, null, {
                       add: {method: 'POST'}
                     });
  }]);

Y el método de registro en el controlador:

  function signup(user) {
    LoginUser.add({}, JSON.stringify(user));
  }

Tenemos la configuración SimpleCORSFilter en el servidor siguiendo elGuía de primavera.

Puedes ver la comparación entre el POST del cartero y el POST de AngularJS aquí:

El encabezado marcado en rojo es uno personalizado que debemos agregar en Postman para evitar un tipo de medio 415 no compatible.

Intentamos poner encabezados personalizados en la solicitud POST en AngularJS, pero no parece funcionar:

.config(function ($httpProvider) {
    $httpProvider.defaults.headers.put['Content-Type'] = $httpProvider.defaults.headers.post['Content-Type'] =
        'application/json; charset=UTF-8';
});

Respuestas a la pregunta(1)

Su respuesta a la pregunta