1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16 package org.seasar.cubby.tags;
17
18 import static org.seasar.cubby.tags.TagUtils.toAttr;
19
20 import java.io.IOException;
21
22 import javax.servlet.http.HttpSession;
23 import javax.servlet.jsp.JspException;
24 import javax.servlet.jsp.JspWriter;
25 import javax.servlet.jsp.PageContext;
26
27 import org.seasar.cubby.controller.ThreadContext;
28 import org.seasar.cubby.util.TokenHelper;
29 import org.seasar.cubby.validator.validators.TokenValidator;
30 import org.seasar.framework.util.StringUtil;
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45 public class TokenTag extends DynamicAttributesTagSupport {
46
47 private String name;
48
49
50
51
52
53
54
55 public void setName(final String name) {
56 this.name = name;
57 }
58
59
60
61
62 @Override
63 public void doTag() throws JspException, IOException {
64 final PageContext context = (PageContext) getJspContext();
65 final JspWriter out = context.getOut();
66
67 final String token = TokenHelper.generateGUID();
68 out.append("<input type=\"hidden\" name=\"");
69 if (StringUtil.isEmpty(name)) {
70 out.append(TokenHelper.DEFAULT_TOKEN_NAME);
71 } else {
72 out.append(name);
73 }
74 out.append("\" value=\"");
75 out.append(token);
76 out.append("\" ");
77 out.write(toAttr(getDynamicAttribute()));
78 out.append("/>");
79 final HttpSession session = ThreadContext.getRequest().getSession();
80 TokenHelper.setToken(session, token);
81 }
82 }