2013-10-28 2 views
0

Struts имеет TokenInterceptor и TokenSessionStoreInterceptor, который использует токен, сгенерированный на jsp, на <s:token></s:token> тег, показанный ниже.Какой алгоритм struts2 используется для генерации рандомизированного токена?

<input type="hidden" name="token" value="66BKG349UZRZKKFH7NFSNOCJGIX0UPST" />  

Что algorithm это uses генерировать маркер в случайном порядке.

ответ

3

Когда я пошел через исходный код, Существует статический метод - generateGUID() в org.apache.struts2.util.TokenHelper классе, который используется для создания маркеров

public static String generateGUID() { 
     return new BigInteger(165, RANDOM).toString(36).toUpperCase(); 
    } 

Здесь RANDOM ссылается новый член экземпляра Random(). Когда я тестировал метод generateGUID(), он произвел следующие подобные лексемы ниже

enter image description here

1

Это как Struts2 генерирует код маркера

BigInteger(165, RANDOM).toString(36).toUpperCase(); 

взглянуть на generateGUID() метод в TokenHelper