diff --git a/apps/remoteStorage/appinfo/webfinger.php b/apps/remoteStorage/appinfo/webfinger.php
index bb3fe1681b..7c0ab84605 100644
--- a/apps/remoteStorage/appinfo/webfinger.php
+++ b/apps/remoteStorage/appinfo/webfinger.php
@@ -1,6 +1,6 @@
+ auth="/apps/remoteStorage/auth.php/">
diff --git a/apps/user_webfinger/appinfo/install.php b/apps/user_webfinger/appinfo/install.php
index 678d57ae8f..c8d9a42742 100644
--- a/apps/user_webfinger/appinfo/install.php
+++ b/apps/user_webfinger/appinfo/install.php
@@ -1,4 +1,8 @@
'*',
+ 'Content-Type' => 'application/xml+xrd'
+);
$appInfoDir = __DIR__;
$thisAppDir = dirname($appInfoDir);
$appsDir = dirname($thisAppDir);
@@ -17,6 +21,7 @@ if(isset($_SERVER['HTTPS'])) {
}
$lrddTmpl .= '://' . $serverName . $webRoot . '/apps/user_webfinger/webfinger.php?q={uri}';
$hostMetaPath = $docRoot . '/.well-known/host-meta';
+$hostMetaDir = $docRoot . '/.well-known';
$hostMetaContents = "
" . $serverName . "
@@ -24,7 +29,7 @@ $hostMetaContents = "
Resource Descriptor
";
-@mkdir(dirname($hostMetaPath));
+@mkdir($hostMetaDir);
$hostMeta = fopen($hostMetaPath, 'w');
if(!$hostMeta) {
die("Could not open " . $hostMetaPath . " for writing, please check permissions!");
@@ -33,3 +38,14 @@ if(!fwrite($hostMeta, $hostMetaContents, strlen($hostMetaContents))) {
die("Could not write to " . $hostMetaPath . ", please check permissions!");
}
fclose($hostMeta);
+
+// write custom headers into .htaccess:
+$htaccess = fopen($hostMetaDir . '/.htaccess', 'w');
+//TODO: check compatibility!
+fwrite($htaccess, "
+\n");
+foreach($hostMetaHeader as $header => $value) {
+ fwrite($htaccess, "Header set " . $header . " \"" . $value . "\"\n");
+}
+fwrite($htaccess, "\n");
+fclose($htaccess);
diff --git a/apps/user_webfinger/webfinger.php b/apps/user_webfinger/webfinger.php
index ecbfeed8e4..9ada473ca8 100644
--- a/apps/user_webfinger/webfinger.php
+++ b/apps/user_webfinger/webfinger.php
@@ -6,13 +6,13 @@ header("Content-Type: application/xrd+xml");
* To include your app in the webfinger XML, add a new script with file name
* 'webfinger.php' to /apps/yourapp/appinfo/, which prints out the XML parts
* to be included. That script can make use of the constants WF_USER (e. g.
- * "user"), WF_ADDRESS ("user@host") and WF_ROOT ("https://host/owncloud").
+ * "user"), WF_ID (user@host) and WF_BASEURL (e. g. https://host/owncloud).
* An example could look like this:
*
*
+ * href="/apps/myApp/profile.php?user=">
*
*
'* but can also use complex database queries to generate the webfinger result
@@ -24,19 +24,25 @@ $SERVERROOT=str_replace("\\",'/',dirname(dirname(dirname(dirname(__FILE__)))));
$SUBURI=substr(realpath($_SERVER["SCRIPT_FILENAME"]),strlen($SERVERROOT));
$WEBROOT=substr($SUBURI,0,-34);
*/
-require_once('../../lib/base.php');
-$id = $_GET['q'];
+require_once('../../lib/base.php');
+$request = urldecode($_GET['q']);
if($_GET['q']) {
- $bits = explode('@', $_GET['q']);
- $userName = $bits[0];
+ $reqParts = explode('@', $request);
+ $userName = $reqParts[0];
+ $hostName = $reqParts[1];
} else {
- $id = '';
$userName = '';
+ $hostName = '';
}
if(substr($userName, 0, 5) == 'acct:') {
$userName = substr($userName, 5);
}
+if($userName == "") {
+ $id = "";
+} else {
+ $id = $userName . '@' . $hostName;
+}
if(isset($_SERVER['HTTPS'])) {
$baseAddress = 'https://';
} else {
@@ -44,22 +50,19 @@ if(isset($_SERVER['HTTPS'])) {
}
$baseAddress .= $_SERVER['SERVER_NAME'].OC::$WEBROOT;
define('WF_USER', $userName);
-define('WF_ADDRESS', $id);
-define('WF_ROOT', $baseAddress);
+define('WF_ID', $id);
+define('WF_BASEURL', $baseAddress);
echo "<";
?>
?xml version="1.0" encoding="UTF-8"?>
-
- acct:
+
+ acct: