diff src/nabble/view/web/w3c/PolicyXML.java @ 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.java	Thu Mar 21 19:15:52 2019 -0600
@@ -0,0 +1,48 @@
+
+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();
+		
+		out.print( "\r\n<?xml version=\"1.0\"?>\r\n<POLICIES xmlns=\"http://www.w3.org/2002/01/P3Pv1\">\r\n	<EXPIRY max-age=\"86400\"/>\r\n<POLICY\r\n	name=\"Policy\"\r\n	discuri=\"https://www.nabble.com/w3c/policy.html\"\r\n	xml:lang=\"en\">\r\n	<ENTITY>\r\n	<DATA-GROUP>\r\n<DATA ref=\"#business.contact-info.online.email\">support@nabble.com</DATA>\r\n<DATA ref=\"#business.contact-info.online.uri\">https://www.nabble.com</DATA>\r\n<DATA ref=\"#business.name\">Nabble</DATA>\r\n	</DATA-GROUP>\r\n	</ENTITY>\r\n	<ACCESS><ident-contact/></ACCESS>\r\n	<DISPUTES-GROUP>\r\n		<DISPUTES resolution-type=\"service\" service=\"" );
+		out.print( (Jtp.termsUrl(false)) );
+		out.print( "\" short-description=\"Disputes\">\r\n			<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>\r\n		</DISPUTES>\r\n	</DISPUTES-GROUP>\r\n	<STATEMENT>\r\n		<EXTENSION optional=\"yes\">\r\n			<GROUP-INFO xmlns=\"http://www.software.ibm.com/P3P/editor/extension-1.0.html\" name=\"User Information\"/>\r\n		</EXTENSION>\r\n	<PURPOSE><other-purpose required=\"opt-in\">Display the user name</other-purpose></PURPOSE>\r\n	<RECIPIENT><ours/></RECIPIENT>\r\n	<RETENTION><indefinitely/></RETENTION>\r\n	<DATA-GROUP>\r\n	<DATA ref=\"#user.name\" optional=\"yes\"/>\r\n	<DATA ref=\"#dynamic.miscdata\" optional=\"yes\"><CATEGORIES><preference/></CATEGORIES></DATA>\r\n	<DATA ref=\"#user.home-info.online.email\" optional=\"yes\"/>\r\n	<DATA ref=\"#user.business-info.online.email\" optional=\"yes\"/>\r\n	</DATA-GROUP>\r\n</STATEMENT>\r\n	<STATEMENT>\r\n		<EXTENSION optional=\"yes\">\r\n			<GROUP-INFO xmlns=\"http://www.software.ibm.com/P3P/editor/extension-1.0.html\" name=\"Cookies\"/>\r\n		</EXTENSION>\r\n	<CONSEQUENCE>\r\nTo keep users logged in and apply their preferences.</CONSEQUENCE>\r\n	<PURPOSE><pseudo-analysis required=\"opt-in\"/><pseudo-decision required=\"opt-in\"/><tailoring required=\"opt-in\"/></PURPOSE>\r\n	<RECIPIENT><ours/></RECIPIENT>\r\n	<RETENTION><indefinitely/></RETENTION>\r\n	<DATA-GROUP>\r\n	<DATA ref=\"#dynamic.cookies\" optional=\"yes\"><CATEGORIES><location/><navigation/><preference/><uniqueid/></CATEGORIES></DATA>\r\n	</DATA-GROUP>\r\n</STATEMENT>\r\n</POLICY>\r\n</POLICIES>\r\n" );
+
+	}
+}
+