You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
yacy_search_server/htroot/proxymsg/urlproxyheader.java

64 lines
2.4 KiB

import net.yacy.cora.protocol.RequestHeader;
import net.yacy.data.BookmarksDB.Bookmark;
import net.yacy.search.Switchboard;
import net.yacy.server.serverObjects;
import net.yacy.server.serverSwitch;
/**
* Servlet to be included as header (via iframe) on top of a page viewed via urlproxyservlet
*/
public class urlproxyheader {
public static serverObjects respond(final RequestHeader requestHeader, final serverObjects post, final serverSwitch env) {
final serverObjects prop = new serverObjects();
final Switchboard sb = (Switchboard) env;
String proxyurlstr = post.get("url",""); // the url of remote page currently viewed
boolean hasRights = sb.verifyAuthentication(requestHeader);
prop.put("allowbookmark", hasRights);
if (post.containsKey("addbookmark")) {
proxyurlstr = post.get("bookmark");
Bookmark bmk = sb.bookmarksDB.createorgetBookmark(proxyurlstr, null);
if (bmk != null) {
bmk.setPublic(false);
bmk.addTag("/proxy"); // add to bookmark folder
sb.bookmarksDB.saveBookmark(bmk);
}
}
prop.put("proxyurl", proxyurlstr);
prop.put("allowbookmark_proxyurl", proxyurlstr);
if (proxyurlstr.startsWith("https") && !requestHeader.getScheme().equalsIgnoreCase("https")) {
prop.put("httpsAlertMsg", "1");
} else {
prop.put("httpsAlertMsg", "0");
}
// TODO: get some index data to display
/*
if (post.containsKey("hash")) {
try {
String hashstr = post.get("hash");
final SolrDocument idxdoc = sb.index.fulltext().getDefaultEmbeddedConnector().getDocumentById(hashstr);
if (idxdoc != null) {
String keywords = (String) idxdoc.getFieldValue(CollectionSchema.keywords.getSolrFieldName());
if (keywords != null && !keywords.isEmpty()) {
keytxt += keywords;
}
Collection cols = idxdoc.getFieldValues(CollectionSchema.collection_sxt.getSolrFieldName());
if (cols != null && !cols.isEmpty()) {
for (Object sx : cols) {
coltxt += sx.toString();
}
}
}catch (IOException ex) { }
}
*/
return prop;
}
}