]> git.mxchange.org Git - quix0rs-gnu-social.git/commitdiff
socialfy-your-domain updated for webfinger (not tested)
authorMikael Nordfeldth <mmn@hethane.se>
Sat, 13 Feb 2016 12:57:15 +0000 (13:57 +0100)
committerMikael Nordfeldth <mmn@hethane.se>
Sat, 13 Feb 2016 12:57:15 +0000 (13:57 +0100)
socialfy-your-domain/README.txt
socialfy-your-domain/dot-well-known/host-meta
socialfy-your-domain/dot-well-known/webfinger/example@example.com.xml [new file with mode: 0644]
socialfy-your-domain/dot-well-known/webfinger/index.php [new file with mode: 0644]
socialfy-your-domain/xrd/example@example.com.xml [deleted file]
socialfy-your-domain/xrd/index.php [deleted file]

index 3e2688f86bbf3448e7c80162ae280b8434f999d7..b7691abe8d072b5a459fd5acbd4e87f0be7cb787 100644 (file)
@@ -4,65 +4,46 @@ Initial simple way to Webfinger enable your domain -- needs PHP.
 Step 1
 ======
 
-First, put the folders 'xrd' and 'dot-well-known' on your website, so
-they load at:
+Put the 'dot-well-known' on your website, so it loads at:
 
-     http://yourname.com/xrd/
+     https://example.com/.well-known/
 
-     and
-
-     http://yourname.com/.well-known/
-
-     (Remember the . at the beginning of this one)
-
-NOTE: If you're using https, make sure each instance of http:// for
-      your own domain ("example.com") is replaced with https://
+(Remember the . at the beginning of this one, which is common practice
+for "hidden" files and why we have renamed it "dot-")
 
 Step 2
 ======
 
-Next, edit xrd/index.php and enter a secret in this line:
-
-$s = "";
-
-This can be anything you like...
-
-$s = "johnny5";
-
-or 
-
-$s = "12345";
-
-It really doesn't matter too much.
+Edit the .well-known/host-meta file and replace "example.com" with the
+domain name you're hosting the .well-known directory on.
 
+Using vim you can do this as a quick method:
+    $ vim .well-known/host-meta [ENTER]
+    :%s/example.com/domain.com/    [ENTER]
+    :wq [ENTER]
 
 Step 3
 ======
 
-Edit the .well-known/host-meta file and replace all occurrences of
-"example.com" with your domain name.
-
-Step 4
-======
-
 For each user on your site, and this might only be you...
 
-In the xrd directory, make a copy of the example@example.com.xml file
-so that it's called...
-
-     yoursecretusername@domain.com.xml
+In the webfinger directory, make a copy of the example@example.com.xml file
+so that it's called (replace username and example.com with appropriate
+values, the domain name should be the same as you're "socialifying"):
 
-So, if your secret from step 2 is 'johnny5' and your name is 'ben' and
-your domain is 'titanictoycorp.biz', your file should be called
-johnny5ben@titanictoycorp.biz.xml
+     username@example.com.xml
 
-Then edit the file, replacing "social.example.com" with your GNU
-social instance's base path, and change the user ID number (and
+Then edit the file contents, replacing "social.example.com" with your
+GNU social instance's base path, and change the user ID number (and
 nickname for the FOAF link) to that of your account on your social
 site. If you don't know your user ID number, you can see this on your
 GNU social profile page by looking at the destination URLs in the
 Feeds links.
 
+PROTIP: You can get the bulk of the contents (note the <Subject> element though)
+        from curling down your real webfinger data:
+$ curl https://social.example.com/.well-known/webfinger?resource=acct:username@social.example.com
+
 Finally
 =======
 
index 1929b2eb8ef4fcd995bb1050dee504e77b4de215..bba942f673a6f1cdb7a973243eeaee85ce7d143e 100644 (file)
@@ -1,8 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<XRD xmlns="http://docs.oasis-open.org/ns/xri/xrd-1.0"
-     xmlns:hm="http://host-meta.net/xrd/1.0">  
-  <hm:Host>example.com</hm:Host>
-  <Link rel="lrdd" template="http://example.com/.well-known/xrd?uri={uri}">
-    <Title>WebFinger resource descriptor</Title>
-  </Link>
+<XRD xmlns="http://docs.oasis-open.org/ns/xri/xrd-1.0" xmlns:hm="http://host-meta.net/xrd/1.0">  
+ <Link rel="lrdd" type="application/xrd+xml"
+        template="https://example.com/.well-known/webfinger?resource={uri}"/>
 </XRD>
diff --git a/socialfy-your-domain/dot-well-known/webfinger/example@example.com.xml b/socialfy-your-domain/dot-well-known/webfinger/example@example.com.xml
new file mode 100644 (file)
index 0000000..e95662b
--- /dev/null
@@ -0,0 +1,35 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<XRD xmlns="http://docs.oasis-open.org/ns/xri/xrd-1.0">
+  <Subject>acct:username@example.com</Subject>
+  <Alias>acct:username@social.example.com</Alias>
+  <Alias>https://social.example.com/user/1</Alias>
+  <Link rel="http://webfinger.net/rel/profile-page"
+        type="text/html"
+       href="https://social.example.com/user/1"/>
+    
+  <Link rel="http://schemas.google.com/g/2010#updates-from"
+       type="application/atom+xml"
+       href="https://social.example.com/api/statuses/user_timeline/1.atom"/>
+    
+  <!-- Is this/was this ever supported?
+       <Link rel="http://microformats.org/profile/hcard"
+       type="text/html"
+       href="https://social.example.com/hcard"/> -->
+  
+  <Link rel="http://gmpg.org/xfn/11"
+       type="text/html"
+       href="https://social.example.com/user/1"/>
+    
+  <Link rel="describedby"
+       type="application/rdf+xml"
+       href="https://social.example.com/username/foaf"/>
+
+  <Link rel="http://salmon-protocol.org/ns/salmon-replies"
+       href="https://social.example.com/main/salmon/user/1"/>
+    
+  <Link rel="http://salmon-protocol.org/ns/salmon-mention"
+       href="https://social.example.com/main/salmon/user/1"/>
+    
+  <Link rel="http://ostatus.org/schema/1.0/subscribe"
+       template="https://social.example.com/main/ostatussub?profile={uri}"/>
+</XRD>
diff --git a/socialfy-your-domain/dot-well-known/webfinger/index.php b/socialfy-your-domain/dot-well-known/webfinger/index.php
new file mode 100644 (file)
index 0000000..989b320
--- /dev/null
@@ -0,0 +1,40 @@
+<?php
+
+/*
+ * GNU social
+ * Copyright (C) 2010, Free Software Foundation, Inc
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Affero General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU Affero General Public License for more details.
+ *
+ * You should have received a copy of the GNU Affero General Public License
+ * along with this program.  If not, see <http://www.gnu.org/licenses/>.
+ */
+
+
+// basename should make sure we can't escape this directory
+$u = basename($_GET['resource']);
+
+if (!strpos($u, '@')) {
+    throw new Exception('Bad resource');
+    exit(1);
+}
+
+if (mb_strpos($u, 'acct:')===0) {
+    $u = substr($u, 5);
+}
+
+$f = $u . ".xml";
+
+if (file_exists($f)) {
+  header('Content-Disposition: attachment; filename="'.urlencode($f).'"');
+  header('Content-type: application/xrd+xml');
+  echo file_get_contents($f);
+}
diff --git a/socialfy-your-domain/xrd/example@example.com.xml b/socialfy-your-domain/xrd/example@example.com.xml
deleted file mode 100644 (file)
index b713efe..0000000
+++ /dev/null
@@ -1,35 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<XRD xmlns="http://docs.oasis-open.org/ns/xri/xrd-1.0">
-  <Subject>acct:example@example.com</Subject>
-  <Alias>acct:example@social.example.com</Alias>
-  <Alias>http://social.example.com/user/1</Alias>
-  <Link rel="http://webfinger.net/rel/profile-page"
-        type="text/html"
-       href="http://social.example.com/user/1"/>
-    
-  <Link rel="http://schemas.google.com/g/2010#updates-from"
-       type="application/atom+xml"
-       href="http://social.example.com/api/statuses/user_timeline/1.atom"/>
-    
-  <!-- Is this/was this ever supported?
-       <Link rel="http://microformats.org/profile/hcard"
-       type="text/html"
-       href="http://social.example.com/hcard"/> -->
-  
-  <Link rel="http://gmpg.org/xfn/11"
-       type="text/html"
-       href="http://social.example.com/user/1"/>
-    
-  <Link rel="describedby"
-       type="application/rdf+xml"
-       href="http://social.example.com/username/foaf"/>
-
-  <Link rel="http://salmon-protocol.org/ns/salmon-replies"
-       href="http://social.example.com/main/salmon/user/1"/>
-    
-  <Link rel="http://salmon-protocol.org/ns/salmon-mention"
-       href="http://social.example.com/main/salmon/user/1"/>
-    
-  <Link rel="http://ostatus.org/schema/1.0/subscribe"
-       template="http://social.example.com/main/ostatussub?profile={uri}"/>
-</XRD>
diff --git a/socialfy-your-domain/xrd/index.php b/socialfy-your-domain/xrd/index.php
deleted file mode 100644 (file)
index 25f1d8b..0000000
+++ /dev/null
@@ -1,41 +0,0 @@
-<?php
-
-/*
- * GNU social
- * Copyright (C) 2010, Free Software Foundation, Inc
- *
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Affero General Public License as published by
- * the Free Software Foundation, either version 3 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU Affero General Public License for more details.
- *
- * You should have received a copy of the GNU Affero General Public License
- * along with this program.  If not, see <http://www.gnu.org/licenses/>.
- */
-
-
-$s = "";
-
-/* this should be a secret */
-
-$u = $_GET['uri'];
-
-$u = substr($u, 5);
-
-$f = $s . $u . ".xml";
-
-if (file_exists($f)) {
-  $fh = fopen($f, 'r');
-  $c = fread($fh, filesize($f));
-  fclose($fh);
-  header('Content-type: text/xml');
-  echo $c;
-}
-
-
-?>
\ No newline at end of file