D'État HTTP 403 - Invalide Jeton CSRF 'null', a été trouvé sur le paramètre de la requête

Je dois émettre une HTTP.La poste (Application Android) à mon service restful, pour enregistrer un nouvel utilisateur!

Le problème c'est que quand j'essaie d'envoyer une demande à un registre d'extrémité ( sans sécurité ), un Ressort maintient le blocage de moi!

Mon Projet Dépendances

<properties>
    <java-version>1.6</java-version>
    <org.springframework-version>4.1.7.RELEASE</org.springframework-version>
    <org.aspectj-version>1.6.10</org.aspectj-version>
    <org.slf4j-version>1.6.6</org.slf4j-version>
    <jackson.version>1.9.10</jackson.version>
    <spring.security.version>4.0.2.RELEASE</spring.security.version>
    <hibernate.version>4.2.11.Final</hibernate.version>
    <jstl.version>1.2</jstl.version>
    <mysql.connector.version>5.1.30</mysql.connector.version>
</properties>

Printemps De Sécurité

<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.xsd
http://www.springframework.org/schema/security
http://www.springframework.org/schema/security/spring-security.xsd">
<!--this is the register endpoint-->
<http security="none" pattern="/webapi/cadastro**"/>
<http auto-config="true" use-expressions="true">
<intercept-url pattern="/webapi/dados**"
access="hasAnyRole('ROLE_USER','ROLE_SYS')" />
<intercept-url pattern="/webapi/system**"
access="hasRole('ROLE_SYS')" />
<!--        <access-denied-handler error-page="/negado" /> -->
<form-login login-page="/home/" default-target-url="/webapi/"
authentication-failure-url="/home?error" username-parameter="username"
password-parameter="password" />
<logout logout-success-url="/home?logout" />        
<csrf token-repository-ref="csrfTokenRepository" />
</http>
<authentication-manager>
<authentication-provider>
<password-encoder hash="md5" />
<jdbc-user-service data-source-ref="dataSource"
users-by-username-query="SELECT username, password, ativo
FROM usuarios 
WHERE username = ?"
authorities-by-username-query="SELECT u.username, r.role
FROM usuarios_roles r, usuarios u
WHERE u.id = r.usuario_id
AND u.username = ?" />
</authentication-provider>
</authentication-manager>
<beans:bean id="csrfTokenRepository"
class="org.springframework.security.web.csrf.HttpSessionCsrfTokenRepository">
<beans:property name="headerName" value="X-XSRF-TOKEN" />
</beans:bean>
</beans:beans>

Contrôleur

@RestController
@RequestMapping(value="/webapi/cadastro", produces="application/json")
public class CadastroController {
@Autowired 
UsuarioService usuarioService;
Usuario u = new Usuario();
@RequestMapping(value="/novo",method=RequestMethod.POST)
public String register() {
//this.usuarioService.insert(usuario);
//usuario.setPassword(HashMD5.criptar(usuario.getPassword()));
return "teste";
}
}

JS Post ( Angulaire )

$http.post('/webapi/cadastro/novo').success(function(data) {
alert('ok');
}).error(function(data) {
alert(data);
});

Et l'erreur

HTTP Status 403 - Invalid CSRF Token 'null' was found on the request parameter '_csrf' or header 'X-XSRF-TOKEN'.</h1><HR size="1" noshade="noshade"><p><b>type</b> Status report</p><p><b>message</b> <u>Invalid CSRF Token 'null' was found on the request parameter '_csrf' or header 'X-XSRF-TOKEN'

--- Solution ---

Mis en place un filtre de joindre mon X-XSRF-JETON pour chaque en-tête de demande

public class CsrfHeaderFilter extends OncePerRequestFilter {
@Override
protected void doFilterInternal(HttpServletRequest request,
HttpServletResponse response, FilterChain filterChain)
throws ServletException, IOException {
CsrfToken csrf = (CsrfToken) request.getAttribute(CsrfToken.class
.getName());
if (csrf != null) {
Cookie cookie = WebUtils.getCookie(request, "XSRF-TOKEN");
String token = csrf.getToken();
if (cookie==null || token!=null && !token.equals(cookie.getValue())) {
cookie = new Cookie("XSRF-TOKEN", token);
cookie.setPath("/");
response.addCookie(cookie);
}
}
filterChain.doFilter(request, response);
}
}

Ajouté une cartographie de ce filtre à l'web.xml et fait!