Spring Boot JWT security - obtendo resposta mesmo sem passar o token

Estive lutando desde as últimas 2-3 semanas e solicitei ajuda neste post mais cedo, mas ainda não há ajuda. Tentei procurar outros exemplos e respostas no stackoverflow e finalmente consegui seguir algumas etapas. mas agora novamente outro obstáculo no meu caminho. Realmente preciso da sua ajuda ...

fyi: Estou mudando completamente a descrição dessas perguntas, pois sou capaz de descobrir o que pedi ante

Problema: 1) Quando ligo para uma solicitação GET sem passar o Token no cabeçalho, ainda estou recebendo resposta do serviço de repouso

2) Como posso personalizar a resposta quando há uma solicitação inválida (404), por exemplo token inválido ou sem token fornecido ou sem acesso

O que fiz: 1) Consigo autenticar o usuário com êxito chamando localhost: 8080 / token e passando nome de usuário e senha. Se eu passar credenciais erradas, gera erro.

O que eu observei:

1) Se eu não chamar localhost: 8080 / token no início, mas chamar / index, estou recebendo o erro

{
    "timestamp": 1541597538738,
    "status": 401,
    "error": "Unauthorized",
    "exception": "org.springframework.security.access.AccessDeniedException",
    "message": "UNAUTHARIZED",
    "path": "/index"
}

2) Se eu chamar / token no início e depois chamar / indexar e passar o token errado, estou recebendo o erro 3) Se eu chamar / token no início e depois chamar / indexar e passar o token correto, mas o método tiver uma autoridade diferente, estou recebendo o mesmo erro acima (nº 2)

4) Conforme descrito acima no Problema: ou seja, quando eu ligo / indexo e NÃO transmito token, ele retorna uma boa resposta. - Esse é o principal problema que quero resolver e preciso de sua ajuda.

O código inteiro está em github. FYI: Se você deseja executar o código, é necessário alterar a URL / userDn e a senha LDAP ou pode usar um arquivo XYZ.ldif. O LDIF no meu código não é o correto, mas você pode alterá-lo e testá-l

Acho o problema aqui, mas não sei como resolvê-l

public class JwtAuthenticationFilter extends OncePerRequestFilter {

    @Autowired
    private JwtTokenProvider tokenProvider;

    private static final Logger logger = LoggerFactory.getLogger(JwtAuthenticationFilter.class);

    @Override
    protected void doFilterInternal(HttpServletRequest request, HttpServletResponse response, FilterChain filterChain) throws ServletException, IOException {
        String jwt = getJwtFromRequest(request);

        if (StringUtils.hasText(jwt) && tokenProvider.validateToken(jwt)) {
            UserDetails userDetails = (UserDetails) SecurityContextHolder.getContext().getAuthentication().getPrincipal();
            UsernamePasswordAuthenticationToken authentication = new UsernamePasswordAuthenticationToken(userDetails, null, userDetails.getAuthorities());
            authentication.setDetails(new WebAuthenticationDetailsSource().buildDetails(request));

            SecurityContextHolder.getContext().setAuthentication(authentication);
        }
        filterChain.doFilter(request, response);
    }

    private String getJwtFromRequest(HttpServletRequest request) {
        String bearerToken = request.getHeader("Authorisation");
        if (StringUtils.hasText(bearerToken) && bearerToken.startsWith("Basic ")) {
            return bearerToken.substring(6, bearerToken.length());
        }
        return null;
    }
}

Desde já, obrigado

questionAnswers(0)

yourAnswerToTheQuestion