From 396f1e92ca11c6c5c92a3e65d9fe65da1151783d Mon Sep 17 00:00:00 2001 From: Mikael Nordfeldth Date: Sun, 15 Feb 2015 13:17:04 +0100 Subject: [PATCH] Present http:// alias by default in WebFinger output because it might help us (and especially StatusNet sites) to recognize profiles that have migrated from HTTP to HTTPS! --- plugins/WebFinger/WebFingerPlugin.php | 7 +++++++ plugins/WebFinger/lib/webfingerresource.php | 7 ++++++- 2 files changed, 13 insertions(+), 1 deletion(-) diff --git a/plugins/WebFinger/WebFingerPlugin.php b/plugins/WebFinger/WebFingerPlugin.php index f7e428e54c..e1e6a1b41c 100644 --- a/plugins/WebFinger/WebFingerPlugin.php +++ b/plugins/WebFinger/WebFingerPlugin.php @@ -31,6 +31,13 @@ if (!defined('GNUSOCIAL')) { exit(1); } class WebFingerPlugin extends Plugin { + public $http_alias = true; + + public function initialize() + { + common_config_set('webfinger', 'http_alias', $this->http_alias); + } + public function onRouterInitialized($m) { $m->connect('.well-known/host-meta', array('action' => 'hostmeta')); diff --git a/plugins/WebFinger/lib/webfingerresource.php b/plugins/WebFinger/lib/webfingerresource.php index d473d95628..61b2cc09ad 100644 --- a/plugins/WebFinger/lib/webfingerresource.php +++ b/plugins/WebFinger/lib/webfingerresource.php @@ -34,7 +34,12 @@ abstract class WebFingerResource $aliases = array(); // Add the URI as an identity, this is _not_ necessarily an HTTP url - $aliases[] = $this->object->getUri(); + $uri = $this->object->getUri(); + $aliases[] = $uri; + if (common_config('webfinger', 'http_alias') + && strtolower(parse_url($uri, PHP_URL_SCHEME)) === 'https') { + $aliases[] = preg_replace('/^https:/', 'http:', $uri, 1); + } try { $aliases[] = $this->object->getUrl();