У меня есть требование, чтобы убедиться, что формат идентификатора сеанса, сгенерированный Tomcat, должен включать как верхний, нижний регистр символов и 0-9. Я проверяю исходный код Tomcat. \ org \ apache \ catalina \ util \ StandardSessionIdGenerator.java
В методе public String generateSessionId (String route)
Есть несколько строк для преобразования байта в строку шестнадцатеричной цифры следующим образом:
byte b1 = (byte) ((random[j] & 0xf0) >> 4);
byte b2 = (byte) (random[j] & 0x0f);
if (b1 < 10)
buffer.append((char) ('0' + b1));
else
buffer.append((char) ('A' + (b1 - 10)));
if (b2 < 10)
buffer.append((char) ('0' + b2));
else
buffer.append((char) ('A' + (b2 - 10)));
Похоже, что когда я изменяю заглавную букву 'A' на 'a', я могу достичь своей цели (цель состоит в том, что сгенерированный идентификатор сессии будет содержать как AZ, az и 0-9)
Сгенерированный идентификатор сеанса после изменения:
6B95cDf17411a9555D0E42d99C8E0292
Это простое и действительное изменение, или вы видите потенциальную проблему.
Спасибо.