Header sempre chega vazio no JAVA

Implementei um Token, para trabalhar com Spring, SpringSecutity e Angular.

Só que isto sempre vem vazio request.getHeader(“Authorization”).

Apesar de não ter colocado código nenhum aqui, o que pode ser ?

No Angular ou No Spring ?

Não consigo identificar. Pelo que vi ele não vai para o JAVA. Mas não sei o porque.

Alguém ?

Primeiro coloque o código do seu controller onde você injeta o “request” deveriamos começar por ai…

Mas pra te dar uma direção, header é uma das coisas que podem ser incluidas em uma requisição http e Authorization é só o identificador desse header… É possível que a requisição que você está fazendo ao seu controller esteja realmente vazia, é o Spring Security que está fazendo a requisição para o controller? Ou vc mesmo de outro código?

A unica coisa que difere um token com JWT com uma autenticação simples no Security (falando de maneira bem superficial) é o filtro que desembola o token, e os parametros que você passa para o WebSecurityConfigurerAdapter… então acho que você na hora de fazer o Request para o servidor não está incluindo realmente esse header…

Bom seria fazer uma requisição manual com o Postman e incluir esse header pra testar…

Entendi.

Obrigado

KKKK acho que vc entendeu errado, coloca o código do método onde você usa esse comando request.getHeader(“Authorization”)

Serviço do Angular.

import { Injectable, EventEmitter }  from '@angular/core';
import { Http, Response } from "@angular/http";
import { Observable } from 'rxjs/Observable';
import 'rxjs/add/operator/catch';
import 'rxjs/add/operator/map';
import 'rxjs/add/observable/throw';

import { BASE_API_URL } from '../base-api-url-defaul';
import { REQUEST_OPTIONS_DEFAULT } from '../request-options.default';
import { AuthenticationService } from '../authentication/authentication.service';
import { Pais } from '../../modelo/endereco/pais.model';

@Injectable()
export class PaisService {
  
  private base: string;
  private options: Function;

  constructor(
    private http: Http,
    private authenticationService: AuthenticationService,
  ) {
    this.base = BASE_API_URL + 'paisRecurso';
    this.options = REQUEST_OPTIONS_DEFAULT;
  }

  getPesquisar(pais : Pais) {
    let url = this.base + "/buscar";
    return this.http.post(url, pais,  this.options())
      .map((response: Response) => {
        console.log("Pesquisou por todos países " + response.status);
       return response.json();
      }
    ).catch((error:any) => 
      Observable.throw(error.json().error || 
      'Erro em buscar países ' + console.log(this.options))
    );
  }
}

BASE_API_URL, que o serviço do angular chama

export const BASE_API_URL: string = 'http://localhost:8080/des-if-web/admin/';

REQUEST_OPTIONS_DEFAULT, que o serviço do angular chama

import { RequestOptions, Headers } from '@angular/http';

const createDefaultHeaders = function() {
  let headers = new Headers();
  headers.append('Content-Type', 'application/json');
  headers.append('Authorization', 'Bearer ' + localStorage.getItem('token'));
  return headers;
};

export const REQUEST_OPTIONS_DEFAULT: Function = createDefaultHeaders;

Pensei que você estava respondendo no PV. kkkk

você consegue jogar no console o valor disso, antes de montar a requisição?

localStorage.getItem('token')

Eu gostaria de capturar a requisição, que assim seria facil analisar o que vc esta mandando pro Java, mas não sei fazer isso no angular, mas acredito que o problema está realmente aqui:

REQUEST_OPTIONS_DEFAULT

onde você monta os headers da requisição HTTP, eu chuto que você está passando um valor vazio, ou nem está chegando na requisição

Este é o método no JAVA. Toda requisição ele passa por este código.

package br.com.netsoft.configuracao.auth;

import io.jsonwebtoken.ExpiredJwtException;

import java.io.IOException;

import javax.servlet.FilterChain;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.security.authentication.UsernamePasswordAuthenticationToken;
import org.springframework.security.core.context.SecurityContextHolder;
import org.springframework.security.core.userdetails.UserDetails;
import org.springframework.security.core.userdetails.UserDetailsService;
import org.springframework.security.web.authentication.WebAuthenticationDetailsSource;
import org.springframework.web.filter.OncePerRequestFilter;

public class JwtAuthorizationTokenFilter extends OncePerRequestFilter {

	private final Logger logger = LoggerFactory.getLogger(this.getClass());

	private UserDetailsService userDetailsService;
	private JwtTokenUtil jwtTokenUtil;
	private String tokenHeader;

	public JwtAuthorizationTokenFilter(UserDetailsService userDetailsService,
			JwtTokenUtil jwtTokenUtil, String tokenHeader) {
		this.userDetailsService = userDetailsService;
		this.jwtTokenUtil = jwtTokenUtil;
		this.tokenHeader = tokenHeader;
	}

	@Override
	protected void doFilterInternal(HttpServletRequest request,
			HttpServletResponse response, FilterChain chain)
			throws ServletException, IOException {
		logger.debug("Autenticação de processamento para '{}'",
				request.getRequestURL());
		String requestHeader = null;
		if (request.getHeader("Authorization") != null) {
			requestHeader = "Bearer " + request.getHeader("Authorization");
		}
		String username = null;
		String authToken = null;
		if (requestHeader != null && requestHeader.startsWith("Bearer ")) {
			authToken = requestHeader.substring(7);
			try {
				username = jwtTokenUtil.getUsernameFromToken(authToken);
			} catch (IllegalArgumentException e) {
				logger.error(
						"Ocorreu um erro durante a obtenção do nome de usuário do token.",
						e);
			} catch (ExpiredJwtException e) {
				logger.warn("O token está expirado e não é mais válido.", e);
			}
		} else {
			logger.warn("Não foi possível encontrar a string do portador, irá ignorar o cabeçalho.");
		}

		logger.debug("Verificando a autenticação para o usuário: '{}'",
				username);
		if (username != null
				&& SecurityContextHolder.getContext().getAuthentication() == null) {
			logger.debug("O contexto de segurança era nulo, autorizando o usuário.");
			UserDetails userDetails = this.userDetailsService
					.loadUserByUsername(username);
			if (jwtTokenUtil.validateToken(authToken, userDetails)) {
				UsernamePasswordAuthenticationToken authentication = new UsernamePasswordAuthenticationToken(
						userDetails, null, userDetails.getAuthorities());
				authentication.setDetails(new WebAuthenticationDetailsSource()
						.buildDetails(request));
				logger.info(
						"usuario autorizado:  '{}', definindo contexto de segurança",
						username);
				SecurityContextHolder.getContext().setAuthentication(
						authentication);
			}
		}
		chain.doFilter(request, response);
	}
}

Se você alterar o método “doFilterInternal” o que esses “System.out.println” imprimem?

        String requestHeader = null;
        System.out.println("O header é nulo? " + request.getHeader("Authorization") == null);
		if (request.getHeader("Authorization") != null) {
        System.out.println("O que tem dentro do header? " + request.getHeader("Authorization"));
			requestHeader = "Bearer " + request.getHeader("Authorization");
		}

Isto no angular.

quando clico no botão buscar

Variável this.options

11:18:28,502 INFO [stdout] (default task-8) false

Ele não imprimi System.out.println("O que tem dentro do header? " + request.getHeader(“Authorization”));, porque request.getHeader(“Authorization”) sempre é nulo.

Conseguiu entender ?

Nessa imagem que você mandou nao existe o Request Header “Authorization: Bearer 6sd54f65ds4f65ds4f65ds4f6d5sf46ds5f4ds65f4” (escrevi qualquer coisa kkk mas deveria aparecer algo parecido com isso) então seu problema está no angular…

Não conheço nada de angular mas pelo que percebi seu angular não está montando o “Authorization” já que ele é nulo… Essa é um exemplo de requisição com esse Header que você usa:

GET /recursos/atualizacao/get/33 HTTP/1.1
Host: localhost:8080
Authorization: Bearer asdsadsadsadsadsadsadsadasdasdasdsadsadsadasdsa
Cache-Control: no-cache
Postman-Token: f299d062-1fec-465e-85bc-9b9bc1a8af16

Eu não vou poder te ajudar mais nisso ai… Eu não sei nada de angular, mas o erro está no REQUEST_OPTIONS_DEFAULT que não está criando o header “Authorization”.

Eu vi que você está recuperando o valor do Token no angular, mas não está incluindo na requisição, eu nao tenho ideia de onde ele Junta as informações pra criar a requisição

Entendi, e sei que o problema está como monto o Header. Vou ver o que pode ser feito.

Mesmo assim obrigado.

Sei que deve ir assim:

GET /recursos/atualizacao/get/33 HTTP/1.1
Host: localhost:8080
Authorization: Bearer asdsadsadsadsadsadsadsadasdasdasdsadsadsadasdsa
Cache-Control: no-cache
Postman-Token: f299d062-1fec-465e-85bc-9b9bc1a8af16

Parece que resolvi a parte do angular, pois todas as requisições ele esta levando o Authorization, eté então.

No Angular alterei para:

import { RequestOptions, Headers } from '@angular/http';

const createDefaultHeaders = function() {
  return new RequestOptions(
    {
      headers : new Headers(
        { 
          'Authorization': 'Bearer ' + localStorage.getItem('token') 
        }
      )
    }
  );
 };

export const REQUEST_OPTIONS_DEFAULT: Function = createDefaultHeaders;

No Java está com este erro agora. Unable to read JSON value

11:48:37,336 INFO  [stdout] (default task-9) false

11:48:37,338 WARN  [br.com.netsoft.configuracao.auth.JwtAuthorizationTokenFilter] (default task-9) Não foi possível encontrar a string do portador, irá ignorar o cabeçalho.
11:48:46,695 INFO  [stdout] (default task-13) false

11:48:46,695 INFO  [stdout] (default task-13) O que tem dentro do header? Bearer eyJhbGciOiJIUzUxMiJ9.eyJzdWIiOiIwMjY3OTUwMDYzNiIsImV4cCI6MTUyNzI1NDQ2MX0.CsGurEhcaae2OrQcXkZwns4ySZjxM3Hji-Cyj_Cb9wVjXw_5WdxnUtbb2l8GeDQIC1fo0SGmez_lgdalA21EVQ

11:48:46,696 ERROR [stderr] (default task-13) io.jsonwebtoken.MalformedJwtException: Unable to read JSON value: �z��&�r#�$�3S"

11:48:46,697 ERROR [stderr] (default task-13) 	at io.jsonwebtoken.impl.DefaultJwtParser.readValue(DefaultJwtParser.java:554)

11:48:46,697 ERROR [stderr] (default task-13) 	at io.jsonwebtoken.impl.DefaultJwtParser.parse(DefaultJwtParser.java:252)

11:48:46,697 ERROR [stderr] (default task-13) 	at io.jsonwebtoken.impl.DefaultJwtParser.parse(DefaultJwtParser.java:481)

11:48:46,697 ERROR [stderr] (default task-13) 	at io.jsonwebtoken.impl.DefaultJwtParser.parseClaimsJws(DefaultJwtParser.java:541)

11:48:46,697 ERROR [stderr] (default task-13) 	at br.com.netsoft.configuracao.auth.JwtTokenUtil.getAllClaimsFromToken(JwtTokenUtil.java:70)

11:48:46,697 ERROR [stderr] (default task-13) 	at br.com.netsoft.configuracao.auth.JwtTokenUtil.getClaimFromToken(JwtTokenUtil.java:53)

11:48:46,697 ERROR [stderr] (default task-13) 	at br.com.netsoft.configuracao.auth.JwtTokenUtil.getUsernameFromToken(JwtTokenUtil.java:40)

11:48:46,698 ERROR [stderr] (default task-13) 	at br.com.netsoft.configuracao.auth.JwtAuthorizationTokenFilter.doFilterInternal(JwtAuthorizationTokenFilter.java:62)

11:48:46,698 ERROR [stderr] (default task-13) 	at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)

11:48:46,698 ERROR [stderr] (default task-13) 	at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:331)

11:48:46,698 ERROR [stderr] (default task-13) 	at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:116)

11:48:46,698 ERROR [stderr] (default task-13) 	at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:331)

11:48:46,698 ERROR [stderr] (default task-13) 	at org.springframework.security.web.header.HeaderWriterFilter.doFilterInternal(HeaderWriterFilter.java:64)

11:48:46,698 ERROR [stderr] (default task-13) 	at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)

11:48:46,698 ERROR [stderr] (default task-13) 	at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:331)

11:48:46,699 ERROR [stderr] (default task-13) 	at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:105)

11:48:46,699 ERROR [stderr] (default task-13) 	at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:331)

11:48:46,699 ERROR [stderr] (default task-13) 	at org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter.doFilterInternal(WebAsyncManagerIntegrationFilter.java:56)

11:48:46,699 ERROR [stderr] (default task-13) 	at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)

11:48:46,699 ERROR [stderr] (default task-13) 	at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:331)

11:48:46,700 ERROR [stderr] (default task-13) 	at org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:214)

11:48:46,700 ERROR [stderr] (default task-13) 	at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:177)

11:48:46,700 ERROR [stderr] (default task-13) 	at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:346)

11:48:46,700 ERROR [stderr] (default task-13) 	at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:262)

11:48:46,700 ERROR [stderr] (default task-13) 	at io.undertow.servlet.core.ManagedFilter.doFilter(ManagedFilter.java:60)

11:48:46,700 ERROR [stderr] (default task-13) 	at io.undertow.servlet.handlers.FilterHandler$FilterChainImpl.doFilter(FilterHandler.java:132)

11:48:46,701 ERROR [stderr] (default task-13) 	at io.undertow.servlet.handlers.FilterHandler.handleRequest(FilterHandler.java:85)

11:48:46,701 ERROR [stderr] (default task-13) 	at io.undertow.servlet.handlers.security.ServletSecurityRoleHandler.handleRequest(ServletSecurityRoleHandler.java:62)

11:48:46,701 ERROR [stderr] (default task-13) 	at io.undertow.servlet.handlers.ServletDispatchingHandler.handleRequest(ServletDispatchingHandler.java:36)

11:48:46,701 ERROR [stderr] (default task-13) 	at org.wildfly.extension.undertow.security.SecurityContextAssociationHandler.handleRequest(SecurityContextAssociationHandler.java:78)

11:48:46,701 ERROR [stderr] (default task-13) 	at io.undertow.server.handlers.PredicateHandler.handleRequest(PredicateHandler.java:43)

11:48:46,701 ERROR [stderr] (default task-13) 	at io.undertow.servlet.handlers.security.SSLInformationAssociationHandler.handleRequest(SSLInformationAssociationHandler.java:131)

11:48:46,701 ERROR [stderr] (default task-13) 	at io.undertow.servlet.handlers.security.ServletAuthenticationCallHandler.handleRequest(ServletAuthenticationCallHandler.java:57)

11:48:46,701 ERROR [stderr] (default task-13) 	at io.undertow.server.handlers.PredicateHandler.handleRequest(PredicateHandler.java:43)

11:48:46,701 ERROR [stderr] (default task-13) 	at io.undertow.security.handlers.AbstractConfidentialityHandler.handleRequest(AbstractConfidentialityHandler.java:46)

11:48:46,702 ERROR [stderr] (default task-13) 	at io.undertow.servlet.handlers.security.ServletConfidentialityConstraintHandler.handleRequest(ServletConfidentialityConstraintHandler.java:64)

11:48:46,702 ERROR [stderr] (default task-13) 	at io.undertow.security.handlers.AuthenticationMechanismsHandler.handleRequest(AuthenticationMechanismsHandler.java:58)

11:48:46,702 ERROR [stderr] (default task-13) 	at io.undertow.servlet.handlers.security.CachedAuthenticatedSessionHandler.handleRequest(CachedAuthenticatedSessionHandler.java:70)

11:48:46,702 ERROR [stderr] (default task-13) 	at io.undertow.security.handlers.SecurityInitialHandler.handleRequest(SecurityInitialHandler.java:76)

11:48:46,702 ERROR [stderr] (default task-13) 	at io.undertow.server.handlers.PredicateHandler.handleRequest(PredicateHandler.java:43)

11:48:46,702 ERROR [stderr] (default task-13) 	at org.wildfly.extension.undertow.security.jacc.JACCContextIdHandler.handleRequest(JACCContextIdHandler.java:61)

11:48:46,702 ERROR [stderr] (default task-13) 	at io.undertow.server.handlers.PredicateHandler.handleRequest(PredicateHandler.java:43)

11:48:46,702 ERROR [stderr] (default task-13) 	at io.undertow.server.handlers.PredicateHandler.handleRequest(PredicateHandler.java:43)

11:48:46,702 ERROR [stderr] (default task-13) 	at io.undertow.servlet.handlers.ServletInitialHandler.handleFirstRequest(ServletInitialHandler.java:261)

11:48:46,703 ERROR [stderr] (default task-13) 	at io.undertow.servlet.handlers.ServletInitialHandler.dispatchRequest(ServletInitialHandler.java:248)

11:48:46,703 ERROR [stderr] (default task-13) 	at io.undertow.servlet.handlers.ServletInitialHandler.access$000(ServletInitialHandler.java:77)

11:48:46,703 ERROR [stderr] (default task-13) 	at io.undertow.servlet.handlers.ServletInitialHandler$1.handleRequest(ServletInitialHandler.java:167)

11:48:46,703 ERROR [stderr] (default task-13) 	at io.undertow.server.Connectors.executeRootHandler(Connectors.java:199)

11:48:46,703 ERROR [stderr] (default task-13) 	at io.undertow.server.HttpServerExchange$1.run(HttpServerExchange.java:761)

11:48:46,703 ERROR [stderr] (default task-13) 	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)

11:48:46,704 ERROR [stderr] (default task-13) 	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)

11:48:46,704 ERROR [stderr] (default task-13) 	at java.lang.Thread.run(Thread.java:748)

11:48:46,704 ERROR [stderr] (default task-13) Caused by: com.fasterxml.jackson.core.JsonParseException: Illegal character ((CTRL-CHAR, code 5)): only regular white space (\r, \n, \t) is allowed between tokens
11:48:46,705 ERROR [stderr] (default task-13)  at [Source: �z��&�r#�$�3S"; line: 1, column: 2]

11:48:46,705 ERROR [stderr] (default task-13) 	at com.fasterxml.jackson.core.JsonParser._constructError(JsonParser.java:1419)

11:48:46,705 ERROR [stderr] (default task-13) 	at com.fasterxml.jackson.core.base.ParserMinimalBase._reportError(ParserMinimalBase.java:508)

11:48:46,705 ERROR [stderr] (default task-13) 	at com.fasterxml.jackson.core.base.ParserMinimalBase._throwInvalidSpace(ParserMinimalBase.java:459)

11:48:46,705 ERROR [stderr] (default task-13) 	at com.fasterxml.jackson.core.json.ReaderBasedJsonParser._skipWSOrEnd(ReaderBasedJsonParser.java:1874)

11:48:46,705 ERROR [stderr] (default task-13) 	at com.fasterxml.jackson.core.json.ReaderBasedJsonParser.nextToken(ReaderBasedJsonParser.java:571)

11:48:46,705 ERROR [stderr] (default task-13) 	at com.fasterxml.jackson.databind.ObjectMapper._initForReading(ObjectMapper.java:3090)

11:48:46,705 ERROR [stderr] (default task-13) 	at com.fasterxml.jackson.databind.ObjectMapper._readMapAndClose(ObjectMapper.java:3036)

11:48:46,705 ERROR [stderr] (default task-13) 	at com.fasterxml.jackson.databind.ObjectMapper.readValue(ObjectMapper.java:2146)

11:48:46,705 ERROR [stderr] (default task-13) 	at io.jsonwebtoken.impl.DefaultJwtParser.readValue(DefaultJwtParser.java:552)

11:48:46,705 ERROR [stderr] (default task-13) 	... 51 more

11:48:46,706 ERROR [io.undertow.request] (default task-13) UT005023: Exception handling request to /des-if-web/admin/paisRecurso/buscar: java.lang.NullPointerException
	at br.com.netsoft.configuracao.auth.JwtTokenUtil.getClaimFromToken(JwtTokenUtil.java:54) [classes:]
	at br.com.netsoft.configuracao.auth.JwtTokenUtil.getUsernameFromToken(JwtTokenUtil.java:40) [classes:]
	at br.com.netsoft.configuracao.auth.JwtAuthorizationTokenFilter.doFilterInternal(JwtAuthorizationTokenFilter.java:62) [classes:]
	at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107) [spring-web-4.3.5.RELEASE.jar:4.3.5.RELEASE]
	at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:331) [spring-security-web-4.2.1.RELEASE.jar:4.2.1.RELEASE]
	at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:116) [spring-security-web-4.2.1.RELEASE.jar:4.2.1.RELEASE]
	at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:331) [spring-security-web-4.2.1.RELEASE.jar:4.2.1.RELEASE]
	at org.springframework.security.web.header.HeaderWriterFilter.doFilterInternal(HeaderWriterFilter.java:64) [spring-security-web-4.2.1.RELEASE.jar:4.2.1.RELEASE]
	at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107) [spring-web-4.3.5.RELEASE.jar:4.3.5.RELEASE]
	at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:331) [spring-security-web-4.2.1.RELEASE.jar:4.2.1.RELEASE]
	at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:105) [spring-security-web-4.2.1.RELEASE.jar:4.2.1.RELEASE]
	at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:331) [spring-security-web-4.2.1.RELEASE.jar:4.2.1.RELEASE]
	at org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter.doFilterInternal(WebAsyncManagerIntegrationFilter.java:56) [spring-security-web-4.2.1.RELEASE.jar:4.2.1.RELEASE]
	at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107) [spring-web-4.3.5.RELEASE.jar:4.3.5.RELEASE]
	at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:331) [spring-security-web-4.2.1.RELEASE.jar:4.2.1.RELEASE]
	at org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:214) [spring-security-web-4.2.1.RELEASE.jar:4.2.1.RELEASE]
	at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:177) [spring-security-web-4.2.1.RELEASE.jar:4.2.1.RELEASE]
	at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:346) [spring-web-4.3.5.RELEASE.jar:4.3.5.RELEASE]
	at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:262) [spring-web-4.3.5.RELEASE.jar:4.3.5.RELEASE]
	at io.undertow.servlet.core.ManagedFilter.doFilter(ManagedFilter.java:60) [undertow-servlet-1.1.8.Final.jar:1.1.8.Final]
	at io.undertow.servlet.handlers.FilterHandler$FilterChainImpl.doFilter(FilterHandler.java:132) [undertow-servlet-1.1.8.Final.jar:1.1.8.Final]
	at io.undertow.servlet.handlers.FilterHandler.handleRequest(FilterHandler.java:85) [undertow-servlet-1.1.8.Final.jar:1.1.8.Final]
	at io.undertow.servlet.handlers.security.ServletSecurityRoleHandler.handleRequest(ServletSecurityRoleHandler.java:62) [undertow-servlet-1.1.8.Final.jar:1.1.8.Final]
	at io.undertow.servlet.handlers.ServletDispatchingHandler.handleRequest(ServletDispatchingHandler.java:36) [undertow-servlet-1.1.8.Final.jar:1.1.8.Final]
	at org.wildfly.extension.undertow.security.SecurityContextAssociationHandler.handleRequest(SecurityContextAssociationHandler.java:78)
	at io.undertow.server.handlers.PredicateHandler.handleRequest(PredicateHandler.java:43) [undertow-core-1.1.8.Final.jar:1.1.8.Final]
	at io.undertow.servlet.handlers.security.SSLInformationAssociationHandler.handleRequest(SSLInformationAssociationHandler.java:131) [undertow-servlet-1.1.8.Final.jar:1.1.8.Final]
	at io.undertow.servlet.handlers.security.ServletAuthenticationCallHandler.handleRequest(ServletAuthenticationCallHandler.java:57) [undertow-servlet-1.1.8.Final.jar:1.1.8.Final]
	at io.undertow.server.handlers.PredicateHandler.handleRequest(PredicateHandler.java:43) [undertow-core-1.1.8.Final.jar:1.1.8.Final]
	at io.undertow.security.handlers.AbstractConfidentialityHandler.handleRequest(AbstractConfidentialityHandler.java:46) [undertow-core-1.1.8.Final.jar:1.1.8.Final]
	at io.undertow.servlet.handlers.security.ServletConfidentialityConstraintHandler.handleRequest(ServletConfidentialityConstraintHandler.java:64) [undertow-servlet-1.1.8.Final.jar:1.1.8.Final]
	at io.undertow.security.handlers.AuthenticationMechanismsHandler.handleRequest(AuthenticationMechanismsHandler.java:58) [undertow-core-1.1.8.Final.jar:1.1.8.Final]
	at io.undertow.servlet.handlers.security.CachedAuthenticatedSessionHandler.handleRequest(CachedAuthenticatedSessionHandler.java:70) [undertow-servlet-1.1.8.Final.jar:1.1.8.Final]
	at io.undertow.security.handlers.SecurityInitialHandler.handleRequest(SecurityInitialHandler.java:76) [undertow-core-1.1.8.Final.jar:1.1.8.Final]
	at io.undertow.server.handlers.PredicateHandler.handleRequest(PredicateHandler.java:43) [undertow-core-1.1.8.Final.jar:1.1.8.Final]
	at org.wildfly.extension.undertow.security.jacc.JACCContextIdHandler.handleRequest(JACCContextIdHandler.java:61)
	at io.undertow.server.handlers.PredicateHandler.handleRequest(PredicateHandler.java:43) [undertow-core-1.1.8.Final.jar:1.1.8.Final]
	at io.undertow.server.handlers.PredicateHandler.handleRequest(PredicateHandler.java:43) [undertow-core-1.1.8.Final.jar:1.1.8.Final]
	at io.undertow.servlet.handlers.ServletInitialHandler.handleFirstRequest(ServletInitialHandler.java:261) [undertow-servlet-1.1.8.Final.jar:1.1.8.Final]
	at io.undertow.servlet.handlers.ServletInitialHandler.dispatchRequest(ServletInitialHandler.java:248) [undertow-servlet-1.1.8.Final.jar:1.1.8.Final]
	at io.undertow.servlet.handlers.ServletInitialHandler.access$000(ServletInitialHandler.java:77) [undertow-servlet-1.1.8.Final.jar:1.1.8.Final]
	at io.undertow.servlet.handlers.ServletInitialHandler$1.handleRequest(ServletInitialHandler.java:167) [undertow-servlet-1.1.8.Final.jar:1.1.8.Final]
	at io.undertow.server.Connectors.executeRootHandler(Connectors.java:199) [undertow-core-1.1.8.Final.jar:1.1.8.Final]
	at io.undertow.server.HttpServerExchange$1.run(HttpServerExchange.java:761) [undertow-core-1.1.8.Final.jar:1.1.8.Final]
	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) [rt.jar:1.8.0_131]
	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) [rt.jar:1.8.0_131]
	at java.lang.Thread.run(Thread.java:748) [rt.jar:1.8.0_131]

Voltou a dar erro. Não está enviando o Authorization e nem o Content-Type, conforme imagem.

Sacanagem.

Tentaria o básico primeiro pra depois avançar em frameworks complicados. Exemplo simples:

//front-end JavaScript puro:

var xhr = new XMLHttpRequest();
xhr.open("GET", "https://www.......", true);
xhr.withCredentials = true;
xhr.setRequestHeader("Authorization", 'Bearer ' + seuToken);
xhr.onload = function () {
    console.log(xhr.responseText);
};
xhr.send();

//back-end servlet puro:

public void doGet(HttpServletRequest req, HttpServletResponse res) throws ServletException {
    String auth = req.getHeader("Authorization");
    //...
}

Exemplo pontual para teste. Mas se for uma verificação geral, pode usar Filter.

Conseguiu resolver amigo? Estou com mesmo problema ^^