1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22 package org.primefaces.extensions.component.cookiepolicy;
23
24 import javax.faces.component.UIComponentBase;
25 import javax.faces.context.ExternalContext;
26 import javax.faces.context.FacesContext;
27 import javax.servlet.http.Cookie;
28 import javax.servlet.http.HttpServletRequest;
29
30 import org.primefaces.util.LangUtils;
31
32
33
34
35
36
37
38 public class CookiePolicy extends UIComponentBase {
39
40 public static final String COOKIE_POLICY_COOKIE_NAME = "CookiePolicy";
41
42 public static final String COOKIE_POLICY_REQUEST_ATTRIBUTE = CookiePolicy.class.getName() + ".CookiePolicy";
43
44 public static final String COMPONENT_TYPE = "org.primefaces.extensions.component.CookiePolicy";
45 public static final String COMPONENT_FAMILY = "org.primefaces.extensions.component";
46
47 @Override
48 public String getFamily() {
49 return COMPONENT_FAMILY;
50 }
51
52 public boolean hasCookiePolicyCookie(final FacesContext context) {
53 final ExternalContext externalContext = context.getExternalContext();
54 final HttpServletRequest httpServletRequest = (HttpServletRequest) externalContext.getRequest();
55 if (null != httpServletRequest.getAttribute(COOKIE_POLICY_REQUEST_ATTRIBUTE)) {
56 return true;
57 }
58 return externalContext.getRequestCookieMap().containsKey(COOKIE_POLICY_COOKIE_NAME);
59 }
60
61
62
63
64
65
66
67 public static boolean hasCookiePolicy(final String cookiePolicy) {
68 final FacesContext facesContext = FacesContext.getCurrentInstance();
69 final ExternalContext externalContext = facesContext.getExternalContext();
70
71 final HttpServletRequest httpServletRequest = (HttpServletRequest) externalContext.getRequest();
72 final String requestCookiePolicy = (String) httpServletRequest.getAttribute(COOKIE_POLICY_REQUEST_ATTRIBUTE);
73 if (null != requestCookiePolicy) {
74 return requestCookiePolicy.contains(cookiePolicy);
75 }
76
77 final Cookie cookie = (Cookie) externalContext.getRequestCookieMap().get(COOKIE_POLICY_COOKIE_NAME);
78 if (null == cookie) {
79 return false;
80 }
81 final String policy = cookie.getValue();
82 if (LangUtils.isBlank(policy)) {
83 return false;
84 }
85 return policy.contains(cookiePolicy);
86 }
87
88 }