Mercurial Hosting > nabble
diff src/nabble/view/web/w3c/PolicyXML.jtp @ 0:7ecd1a4ef557
add content
author | Franklin Schmidt <fschmidt@gmail.com> |
---|---|
date | Thu, 21 Mar 2019 19:15:52 -0600 |
parents | |
children |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/src/nabble/view/web/w3c/PolicyXML.jtp Thu Mar 21 19:15:52 2019 -0600 @@ -0,0 +1,94 @@ +<% +package nabble.view.web.w3c; + +import fschmidt.util.servlet.JtpContext; +import nabble.view.lib.Cache; +import nabble.view.lib.Jtp; +import nabble.view.lib.UrlMappable; + +import javax.servlet.ServletException; +import javax.servlet.http.HttpServlet; +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; +import java.io.IOException; +import java.io.PrintWriter; +import java.util.HashMap; +import java.util.Map; +import java.util.regex.Matcher; +import java.util.regex.Pattern; + +public final class PolicyXML extends HttpServlet implements UrlMappable { + + private static final Pattern URL_PATTERN = Pattern.compile("/w3c/policy.xml$"); + + public Map<String, String[]> getParameterMapFromUrl(HttpServletRequest request,String mappedUrl) { + Matcher m = URL_PATTERN.matcher(mappedUrl); + if (!m.find()) + throw new RuntimeException(); + return new HashMap<String,String[]>(); + } + + public Pattern getUrlPattern() { + return URL_PATTERN; + } + + protected void service(HttpServletRequest request, HttpServletResponse response) + throws ServletException, IOException { + + JtpContext jtpContext = (JtpContext)getServletContext().getAttribute(JtpContext.attrName); + jtpContext.setEtag(request,response); + PrintWriter out = response.getWriter(); + %> + <?xml version="1.0"?> + <POLICIES xmlns="http://www.w3.org/2002/01/P3Pv1"> + <EXPIRY max-age="86400"/> + <POLICY + name="Policy" + discuri="https://www.nabble.com/w3c/policy.html" + xml:lang="en"> + <ENTITY> + <DATA-GROUP> + <DATA ref="#business.contact-info.online.email">support@nabble.com</DATA> + <DATA ref="#business.contact-info.online.uri">https://www.nabble.com</DATA> + <DATA ref="#business.name">Nabble</DATA> + </DATA-GROUP> + </ENTITY> + <ACCESS><ident-contact/></ACCESS> + <DISPUTES-GROUP> + <DISPUTES resolution-type="service" service="<%=Jtp.termsUrl(false)%>" short-description="Disputes"> + <LONG-DESCRIPTION>If any question arises regarding the user experience, ability or inability to perform actions with the site, a user is advised to contact Nabble Support.</LONG-DESCRIPTION> + </DISPUTES> + </DISPUTES-GROUP> + <STATEMENT> + <EXTENSION optional="yes"> + <GROUP-INFO xmlns="http://www.software.ibm.com/P3P/editor/extension-1.0.html" name="User Information"/> + </EXTENSION> + <PURPOSE><other-purpose required="opt-in">Display the user name</other-purpose></PURPOSE> + <RECIPIENT><ours/></RECIPIENT> + <RETENTION><indefinitely/></RETENTION> + <DATA-GROUP> + <DATA ref="#user.name" optional="yes"/> + <DATA ref="#dynamic.miscdata" optional="yes"><CATEGORIES><preference/></CATEGORIES></DATA> + <DATA ref="#user.home-info.online.email" optional="yes"/> + <DATA ref="#user.business-info.online.email" optional="yes"/> + </DATA-GROUP> + </STATEMENT> + <STATEMENT> + <EXTENSION optional="yes"> + <GROUP-INFO xmlns="http://www.software.ibm.com/P3P/editor/extension-1.0.html" name="Cookies"/> + </EXTENSION> + <CONSEQUENCE> + To keep users logged in and apply their preferences.</CONSEQUENCE> + <PURPOSE><pseudo-analysis required="opt-in"/><pseudo-decision required="opt-in"/><tailoring required="opt-in"/></PURPOSE> + <RECIPIENT><ours/></RECIPIENT> + <RETENTION><indefinitely/></RETENTION> + <DATA-GROUP> + <DATA ref="#dynamic.cookies" optional="yes"><CATEGORIES><location/><navigation/><preference/><uniqueid/></CATEGORIES></DATA> + </DATA-GROUP> + </STATEMENT> + </POLICY> + </POLICIES> + <% + } +} +%> \ No newline at end of file