Olá , tudo bem ?
Fiquei com uma dúvida de como deveria fazer de uma maneira profissional caso o meu usuário da API servlet, resolva inventar um prefixo ou instrução qualquer para ser enviada junto com o Token, como na imagem abaixo:
No caso eu tenho como tratar se o prefixo for "Bearer" através de um replace que só pega o tokenJWT enviado mas e do contrário? Quando o usuário pode escrever algo bem grande ou mesmo alguma linha de código, como eu deveria tratar na minha aplicação ?
package med.voll.api.infra.security;
import jakarta.servlet.FilterChain;
import jakarta.servlet.ServletException;
import jakarta.servlet.http.HttpServletRequest;
import jakarta.servlet.http.HttpServletResponse;
import org.springframework.stereotype.Component;
import org.springframework.web.filter.OncePerRequestFilter;
import java.io.IOException;
@Component
public class SecurityFilter extends OncePerRequestFilter {
@Override
protected void doFilterInternal(HttpServletRequest request, HttpServletResponse response, FilterChain filterChain) throws ServletException, IOException {
String tokenJWT = recuperarToken(request);
System.out.println(tokenJWT);
filterChain.doFilter(request, response);
}
private String recuperarToken(HttpServletRequest request){
String autorizationHeader = request.getHeader("Authorization");
if(autorizationHeader == null || autorizationHeader.isEmpty()){
throw new RuntimeException("TokenJWT não enviado no cabeçalho Authorization");
}
return autorizationHeader.replace("Bearer","");
}
}
Isso pode ser considerado uma falha de segurança o envio de prefixos gigantes ? Quais são outras falhas que eu deveria estar atento no meu código?
Obrigado.