struts2用什么算法生成随机令牌?

时间:2013-10-28 12:06:43

标签: java struts2 struts interceptor struts2-interceptors

Struts拥有TokenInterceptorTokenSessionStoreInterceptor,它使用<s:token></s:token>标记在jsp上生成的令牌,如下所示。

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

algorithm uses {{1}}随机生成令牌。

2 个答案:

答案 0 :(得分:3)

当我浏览源代码时,org.apache.struts2.util.TokenHelper类中有一个静态方法 - generateGUID(),用于创建令牌

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

这里RANDOM引用了一个新的Random()实例成员。当我测试generateGUID()方法时,它会在下面生成以下类似的标记

enter image description here

答案 1 :(得分:1)

这就是Struts2生成令牌代码的方式

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

查看TokenHelper

中的generateGUID()方法