Bom dia amigos,
Durante os exercícios de Servlet com relação a cookie, fui adicionar meu usuário logado a um cookie e coloquei a chave usuário-logado, isso me gerou uma IllegalArgumentException, dizendo que usuário-logado é uma palavra reservada! Como a palavra não é em inglês já imaginei que não seria a palavra em si e sim o acento. Retirei e funcionou.
A dúvida é essa: realmente não pode usar acentos/caracteres especiais na chave e um cookie? Quem é responsável pelas regras do cookie? Seria a W3C (pois procurei no site deles e no Google, e não encontrei informações sobre isso).Segue a Exception que tive:
HTTP Status 500 ? Internal Server Error
Type Exception Report
Message Cookie name [usuário-logado] is a reserved token
Description The server encountered an unexpected condition that prevented it from fulfilling the request.
Exception
java.lang.IllegalArgumentException: Cookie name [usuário-logado] is a reserved token javax.servlet.http.CookieNameValidator.validate(Cookie.java:405) javax.servlet.http.Cookie.<init>(Cookie.java:119) br.com.alura.gerenciador.web.Login.doPost(Login.java:34) javax.servlet.http.HttpServlet.service(HttpServlet.java:661) javax.servlet.http.HttpServlet.service(HttpServlet.java:742) org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52) br.com.alura.gerenciador.web.FiltroDeAuditoria.doFilter(FiltroDeAuditoria.java:26)
Note The full stack trace of the root cause is available in the server logs.