postpone Swekey integration
This commit is contained in:
@@ -57,8 +57,6 @@ danbarry
|
||||
+ [interface] Display options; thanks to Dave Grijalva
|
||||
for the idea about showing the display field while browsing
|
||||
- bug #1910621 [display] part 2: do not display a BINARY content as text
|
||||
+ [auth] support SweKey hardware authentication
|
||||
see http://phpmyadmin.net/auth_key
|
||||
+ rfe #1962383 [designer] Option to create a PDF page
|
||||
- patch #2007196, Typos in comments, thanks to knittl - knittl
|
||||
- bug #1982315 [GUI] Comma and quote in ENUM, thanks to Joshua Hogendorn
|
||||
|
@@ -507,28 +507,6 @@ GRANT ALL PRIVILEGES ON user_base.* TO 'real_user'@localhost IDENTIFIED BY 'real
|
||||
one’s router or firewall will suffice (both of which
|
||||
are beyond the scope of this manual but easily searchable with Google).</li>
|
||||
</ul>
|
||||
<h4 id="swekey">Swekey authentication</h4>
|
||||
<p>
|
||||
The Swekey is a low cost authentication USB key that can be used in
|
||||
web applications.<br /><br />
|
||||
When Swekey authentication is activated, phpMyAdmin requires the
|
||||
users's Swekey to be plugged before entering the login page (currently
|
||||
supported for cookie authentication mode only). Swekey Authentication is
|
||||
disabled by default.<br /><br />
|
||||
To enable it, add the following line to <tt>config.inc.php</tt>:
|
||||
</p>
|
||||
<pre>
|
||||
$cfg['Servers'][$i]['auth_swekey_config'] = './swekey.conf';
|
||||
</pre>
|
||||
<p>
|
||||
You then have to create the <tt>swekey.conf</tt> file that will associate
|
||||
each user with their Swekey Id. A self documented sample file is provided
|
||||
in the <tt>contrib</tt> directory. Feel free to use it with your own
|
||||
users' information.<br /><br />
|
||||
If you want to purchase a Swekey please visit
|
||||
<a href="http://phpmyadmin.net/auth_key">http://phpmyadmin.net/auth_key</a>
|
||||
since this link provides funding for phpMyAdmin.
|
||||
</p>
|
||||
<!-- CONFIGURATION -->
|
||||
<h2 id="config">Configuration</h2>
|
||||
|
||||
|
@@ -1,24 +0,0 @@
|
||||
# This is a typical file used to enable Swekey hardware authentication.
|
||||
#
|
||||
# To activate the Swekey authentication add the following line in your config.inc.php file.
|
||||
# $cfg['Servers'][$i]['auth_swekey_config'] = './swekey.conf';
|
||||
# Then rename this file "swekey.conf" and copy it next to your config.inc.php file.
|
||||
# Add all the Swekey ids you want to grant access to in the file.
|
||||
# After each Swekey id put the corresponding user.
|
||||
#
|
||||
# If you don't know the id of a Swekey just go on the http://auth-sample.musbe.com
|
||||
# page while your Swekey is connected.
|
||||
#
|
||||
# If you need to purchase a Swekey please visit http://phpmyadmin.net/auth_key
|
||||
# since this link provides funding to PhpMyAdmin.
|
||||
#
|
||||
|
||||
0000000000000000000000000000763A:root
|
||||
000000000000000000000000000089E4:steve
|
||||
0000000000000000000000000000231E:scott
|
||||
|
||||
# You can also uncomment the following lines if you want to use custom authentication servers
|
||||
|
||||
#SERVER_CHECK=http://auth-check.musbe.net
|
||||
#SERVER_RNDTOKEN=http://auth-rnd-gen.musbe.net
|
||||
#SERVER_STATUS=http://auth-status.musbe.net
|
@@ -1069,10 +1069,6 @@ $strInternalAndForeign = 'An internal relation is not necessary when a correspon
|
||||
$strViewHasAtLeast = 'This view has at least this number of rows. Please refer to %sdocumentation%s.'; //to translate
|
||||
$strRelationalKey = 'Relational key'; //to translate
|
||||
$strRelationalDisplayField = 'Relational display field'; //to translate
|
||||
$strSwekeyNoKey = 'No valid authentication key plugged'; //to translate
|
||||
$strSwekeyNoKeyId = 'File %s does not contain any key id'; //to translate
|
||||
$strSwekeyAuthFailed = 'Hardware authentication failed'; //to translate
|
||||
$strSwekeyAuthenticating = 'Authenticating...'; //to translate
|
||||
$strPBXTIndexCacheSize = 'Index cache size'; //to translate
|
||||
$strPBXTRecordCacheSize = 'Record cache size'; //to translate
|
||||
$strPBXTLogCacheSize = 'Log cache size'; //to translate
|
||||
|
@@ -1068,10 +1068,6 @@ $strInternalAndForeign = 'An internal relation is not necessary when a correspon
|
||||
$strViewHasAtLeast = 'This view has at least this number of rows. Please refer to %sdocumentation%s.'; //to translate
|
||||
$strRelationalKey = 'Relational key'; //to translate
|
||||
$strRelationalDisplayField = 'Relational display field'; //to translate
|
||||
$strSwekeyNoKey = 'No valid authentication key plugged'; //to translate
|
||||
$strSwekeyNoKeyId = 'File %s does not contain any key id'; //to translate
|
||||
$strSwekeyAuthFailed = 'Hardware authentication failed'; //to translate
|
||||
$strSwekeyAuthenticating = 'Authenticating...'; //to translate
|
||||
$strPBXTIndexCacheSize = 'Index cache size'; //to translate
|
||||
$strPBXTRecordCacheSize = 'Record cache size'; //to translate
|
||||
$strPBXTLogCacheSize = 'Log cache size'; //to translate
|
||||
|
@@ -1070,10 +1070,6 @@ $strInternalAndForeign = 'An internal relation is not necessary when a correspon
|
||||
$strViewHasAtLeast = 'This view has at least this number of rows. Please refer to %sdocumentation%s.'; //to translate
|
||||
$strRelationalKey = 'Relational key'; //to translate
|
||||
$strRelationalDisplayField = 'Relational display field'; //to translate
|
||||
$strSwekeyNoKey = 'No valid authentication key plugged'; //to translate
|
||||
$strSwekeyNoKeyId = 'File %s does not contain any key id'; //to translate
|
||||
$strSwekeyAuthFailed = 'Hardware authentication failed'; //to translate
|
||||
$strSwekeyAuthenticating = 'Authenticating...'; //to translate
|
||||
$strPBXTIndexCacheSize = 'Index cache size'; //to translate
|
||||
$strPBXTRecordCacheSize = 'Record cache size'; //to translate
|
||||
$strPBXTLogCacheSize = 'Log cache size'; //to translate
|
||||
|
@@ -1065,10 +1065,6 @@ $strInternalAndForeign = 'An internal relation is not necessary when a correspon
|
||||
$strViewHasAtLeast = 'This view has at least this number of rows. Please refer to %sdocumentation%s.'; //to translate
|
||||
$strRelationalKey = 'Relational key'; //to translate
|
||||
$strRelationalDisplayField = 'Relational display field'; //to translate
|
||||
$strSwekeyNoKey = 'No valid authentication key plugged'; //to translate
|
||||
$strSwekeyNoKeyId = 'File %s does not contain any key id'; //to translate
|
||||
$strSwekeyAuthFailed = 'Hardware authentication failed'; //to translate
|
||||
$strSwekeyAuthenticating = 'Authenticating...'; //to translate
|
||||
$strPBXTIndexCacheSize = 'Index cache size'; //to translate
|
||||
$strPBXTRecordCacheSize = 'Record cache size'; //to translate
|
||||
$strPBXTLogCacheSize = 'Log cache size'; //to translate
|
||||
|
@@ -1044,10 +1044,6 @@ $strInternalAndForeign = 'An internal relation is not necessary when a correspon
|
||||
$strViewHasAtLeast = 'This view has at least this number of rows. Please refer to %sdocumentation%s.'; //to translate
|
||||
$strRelationalKey = 'Relational key'; //to translate
|
||||
$strRelationalDisplayField = 'Relational display field'; //to translate
|
||||
$strSwekeyNoKey = 'No valid authentication key plugged'; //to translate
|
||||
$strSwekeyNoKeyId = 'File %s does not contain any key id'; //to translate
|
||||
$strSwekeyAuthFailed = 'Hardware authentication failed'; //to translate
|
||||
$strSwekeyAuthenticating = 'Authenticating...'; //to translate
|
||||
$strPBXTIndexCacheSize = 'Index cache size'; //to translate
|
||||
$strPBXTRecordCacheSize = 'Record cache size'; //to translate
|
||||
$strPBXTLogCacheSize = 'Log cache size'; //to translate
|
||||
|
@@ -1062,10 +1062,6 @@ $strInternalAndForeign = 'An internal relation is not necessary when a correspon
|
||||
$strViewHasAtLeast = 'This view has at least this number of rows. Please refer to %sdocumentation%s.'; //to translate
|
||||
$strRelationalKey = 'Relational key'; //to translate
|
||||
$strRelationalDisplayField = 'Relational display field'; //to translate
|
||||
$strSwekeyNoKey = 'No valid authentication key plugged'; //to translate
|
||||
$strSwekeyNoKeyId = 'File %s does not contain any key id'; //to translate
|
||||
$strSwekeyAuthFailed = 'Hardware authentication failed'; //to translate
|
||||
$strSwekeyAuthenticating = 'Authenticating...'; //to translate
|
||||
$strPBXTIndexCacheSize = 'Index cache size'; //to translate
|
||||
$strPBXTRecordCacheSize = 'Record cache size'; //to translate
|
||||
$strPBXTLogCacheSize = 'Log cache size'; //to translate
|
||||
|
@@ -1045,10 +1045,6 @@ $strInternalAndForeign = 'Унутраная сувязь не зьяўляец
|
||||
$strViewHasAtLeast = 'Гэты прагляд мае толькі такую колькасьць радкоў. Калі ласка, зьвярніцеся да %sдакумэнтацыі%s.';
|
||||
$strRelationalKey = 'Ключ сувязі';
|
||||
$strRelationalDisplayField = 'Адлюстраванае поле сувязі';
|
||||
$strSwekeyNoKey = 'Дзейны ключ аўтэнтыфікацыі не падключаны';
|
||||
$strSwekeyNoKeyId = 'Файл %s ня ўтрымлівае ніякага ідэнтыфікатара ключа';
|
||||
$strSwekeyAuthFailed = 'Апаратная аўтэнтыфікацыя скончылася няўдала';
|
||||
$strSwekeyAuthenticating = 'Аўтэнтыфікацыя...';
|
||||
$strPBXTIndexCacheSize = 'Памер кэшу індэксаў';
|
||||
$strPBXTRecordCacheSize = 'Памер кэшу запісаў';
|
||||
$strPBXTLogCacheSize = 'Памер кэшу логаў';
|
||||
|
@@ -1053,10 +1053,6 @@ $strInternalAndForeign = 'Unutranaja suviaź nie źjaŭlajecca abaviazkovaj, kal
|
||||
$strViewHasAtLeast = 'Hety prahlad maje tolki takuju kolkaść radkoŭ. Kali łaska, źviarniciesia da %sdakumentacyi%s.';
|
||||
$strRelationalKey = 'Kluč suviazi';
|
||||
$strRelationalDisplayField = 'Adlustravanaje pole suviazi';
|
||||
$strSwekeyNoKey = 'Dziejny kluč aŭtentyfikacyi nie padklučany';
|
||||
$strSwekeyNoKeyId = 'Fajł %s nia ŭtrymlivaje nijakaha identyfikatara kluča';
|
||||
$strSwekeyAuthFailed = 'Aparatnaja aŭtentyfikacyja skončyłasia niaŭdała';
|
||||
$strSwekeyAuthenticating = 'Aŭtentyfikacyja...';
|
||||
$strPBXTIndexCacheSize = 'Pamier kešu indeksaŭ';
|
||||
$strPBXTRecordCacheSize = 'Pamier kešu zapisaŭ';
|
||||
$strPBXTLogCacheSize = 'Pamier kešu łogaŭ';
|
||||
|
@@ -1068,10 +1068,6 @@ $strInternalAndForeign = 'An internal relation is not necessary when a correspon
|
||||
$strViewHasAtLeast = 'This view has at least this number of rows. Please refer to %sdocumentation%s.'; //to translate
|
||||
$strRelationalKey = 'Relational key'; //to translate
|
||||
$strRelationalDisplayField = 'Relational display field'; //to translate
|
||||
$strSwekeyNoKey = 'No valid authentication key plugged'; //to translate
|
||||
$strSwekeyNoKeyId = 'File %s does not contain any key id'; //to translate
|
||||
$strSwekeyAuthFailed = 'Hardware authentication failed'; //to translate
|
||||
$strSwekeyAuthenticating = 'Authenticating...'; //to translate
|
||||
$strPBXTIndexCacheSize = 'Index cache size'; //to translate
|
||||
$strPBXTRecordCacheSize = 'Record cache size'; //to translate
|
||||
$strPBXTLogCacheSize = 'Log cache size'; //to translate
|
||||
|
@@ -1042,10 +1042,6 @@ $strInternalAndForeign = 'An internal relation is not necessary when a correspon
|
||||
$strViewHasAtLeast = 'This view has at least this number of rows. Please refer to %sdocumentation%s.'; //to translate
|
||||
$strRelationalKey = 'Relational key'; //to translate
|
||||
$strRelationalDisplayField = 'Relational display field'; //to translate
|
||||
$strSwekeyNoKey = 'No valid authentication key plugged'; //to translate
|
||||
$strSwekeyNoKeyId = 'File %s does not contain any key id'; //to translate
|
||||
$strSwekeyAuthFailed = 'Hardware authentication failed'; //to translate
|
||||
$strSwekeyAuthenticating = 'Authenticating...'; //to translate
|
||||
$strPBXTIndexCacheSize = 'Index cache size'; //to translate
|
||||
$strPBXTRecordCacheSize = 'Record cache size'; //to translate
|
||||
$strPBXTLogCacheSize = 'Log cache size'; //to translate
|
||||
|
@@ -1065,10 +1065,6 @@ $strInternalAndForeign = 'An internal relation is not necessary when a correspon
|
||||
$strViewHasAtLeast = 'This view has at least this number of rows. Please refer to %sdocumentation%s.'; //to translate
|
||||
$strRelationalKey = 'Relational key'; //to translate
|
||||
$strRelationalDisplayField = 'Relational display field'; //to translate
|
||||
$strSwekeyNoKey = 'No valid authentication key plugged'; //to translate
|
||||
$strSwekeyNoKeyId = 'File %s does not contain any key id'; //to translate
|
||||
$strSwekeyAuthFailed = 'Hardware authentication failed'; //to translate
|
||||
$strSwekeyAuthenticating = 'Authenticating...'; //to translate
|
||||
$strPBXTIndexCacheSize = 'Index cache size'; //to translate
|
||||
$strPBXTRecordCacheSize = 'Record cache size'; //to translate
|
||||
$strPBXTLogCacheSize = 'Log cache size'; //to translate
|
||||
|
@@ -1040,10 +1040,6 @@ $strInternalAndForeign = 'An internal relation is not necessary when a correspon
|
||||
$strViewHasAtLeast = 'This view has at least this number of rows. Please refer to %sdocumentation%s.'; //to translate
|
||||
$strRelationalKey = 'Relational key'; //to translate
|
||||
$strRelationalDisplayField = 'Relational display field'; //to translate
|
||||
$strSwekeyNoKey = 'No valid authentication key plugged'; //to translate
|
||||
$strSwekeyNoKeyId = 'File %s does not contain any key id'; //to translate
|
||||
$strSwekeyAuthFailed = 'Hardware authentication failed'; //to translate
|
||||
$strSwekeyAuthenticating = 'Authenticating...'; //to translate
|
||||
$strPBXTIndexCacheSize = 'Index cache size'; //to translate
|
||||
$strPBXTRecordCacheSize = 'Record cache size'; //to translate
|
||||
$strPBXTLogCacheSize = 'Log cache size'; //to translate
|
||||
|
@@ -1070,10 +1070,6 @@ $strInternalAndForeign = 'An internal relation is not necessary when a correspon
|
||||
$strViewHasAtLeast = 'This view has at least this number of rows. Please refer to %sdocumentation%s.'; //to translate
|
||||
$strRelationalKey = 'Relational key'; //to translate
|
||||
$strRelationalDisplayField = 'Relational display field'; //to translate
|
||||
$strSwekeyNoKey = 'No valid authentication key plugged'; //to translate
|
||||
$strSwekeyNoKeyId = 'File %s does not contain any key id'; //to translate
|
||||
$strSwekeyAuthFailed = 'Hardware authentication failed'; //to translate
|
||||
$strSwekeyAuthenticating = 'Authenticating...'; //to translate
|
||||
$strPBXTIndexCacheSize = 'Index cache size'; //to translate
|
||||
$strPBXTRecordCacheSize = 'Record cache size'; //to translate
|
||||
$strPBXTLogCacheSize = 'Log cache size'; //to translate
|
||||
|
@@ -1049,10 +1049,6 @@ $strInternalAndForeign = 'An internal relation is not necessary when a correspon
|
||||
$strViewHasAtLeast = 'This view has at least this number of rows. Please refer to %sdocumentation%s.'; //to translate
|
||||
$strRelationalKey = 'Relational key'; //to translate
|
||||
$strRelationalDisplayField = 'Relational display field'; //to translate
|
||||
$strSwekeyNoKey = 'No valid authentication key plugged'; //to translate
|
||||
$strSwekeyNoKeyId = 'File %s does not contain any key id'; //to translate
|
||||
$strSwekeyAuthFailed = 'Hardware authentication failed'; //to translate
|
||||
$strSwekeyAuthenticating = 'Authenticating...'; //to translate
|
||||
$strPBXTIndexCacheSize = 'Index cache size'; //to translate
|
||||
$strPBXTRecordCacheSize = 'Record cache size'; //to translate
|
||||
$strPBXTLogCacheSize = 'Log cache size'; //to translate
|
||||
|
@@ -1043,10 +1043,6 @@ $strInternalAndForeign = 'An internal relation is not necessary when a correspon
|
||||
$strViewHasAtLeast = 'This view has at least this number of rows. Please refer to %sdocumentation%s.'; //to translate
|
||||
$strRelationalKey = 'Relational key'; //to translate
|
||||
$strRelationalDisplayField = 'Relational display field'; //to translate
|
||||
$strSwekeyNoKey = 'No valid authentication key plugged'; //to translate
|
||||
$strSwekeyNoKeyId = 'File %s does not contain any key id'; //to translate
|
||||
$strSwekeyAuthFailed = 'Hardware authentication failed'; //to translate
|
||||
$strSwekeyAuthenticating = 'Authenticating...'; //to translate
|
||||
$strPBXTIndexCacheSize = 'Index cache size'; //to translate
|
||||
$strPBXTRecordCacheSize = 'Record cache size'; //to translate
|
||||
$strPBXTLogCacheSize = 'Log cache size'; //to translate
|
||||
|
@@ -919,10 +919,6 @@ $strSuccess = 'Váš SQL-dotaz byl úspěšně vykonán';
|
||||
$strSuhosin = 'Server používá Suhosin. Prosím podívejte se do %sdokumentace%s pro popis problémů, které tím mohou být způsobeny.';
|
||||
$strSum = 'Celkem';
|
||||
$strSwedish = 'Švédština';
|
||||
$strSwekeyAuthenticating = 'Authentizuji...';
|
||||
$strSwekeyAuthFailed = 'Hardwarová autentizace selhala';
|
||||
$strSwekeyNoKeyId = 'Soubor %s neobsahuje ID klíče';
|
||||
$strSwekeyNoKey = 'Nebyl připojen autentizační klíč';
|
||||
$strSwitchToDatabase = 'Přepnout na zkopírovanou databázi';
|
||||
$strSwitchToTable = 'Přepnout na zkopírovanou tabulku';
|
||||
|
||||
|
@@ -1044,10 +1044,6 @@ $strInternalAndForeign = 'An internal relation is not necessary when a correspon
|
||||
$strViewHasAtLeast = 'This view has at least this number of rows. Please refer to %sdocumentation%s.'; //to translate
|
||||
$strRelationalKey = 'Relational key'; //to translate
|
||||
$strRelationalDisplayField = 'Relational display field'; //to translate
|
||||
$strSwekeyNoKey = 'No valid authentication key plugged'; //to translate
|
||||
$strSwekeyNoKeyId = 'File %s does not contain any key id'; //to translate
|
||||
$strSwekeyAuthFailed = 'Hardware authentication failed'; //to translate
|
||||
$strSwekeyAuthenticating = 'Authenticating...'; //to translate
|
||||
$strPBXTIndexCacheSize = 'Index cache size'; //to translate
|
||||
$strPBXTRecordCacheSize = 'Record cache size'; //to translate
|
||||
$strPBXTLogCacheSize = 'Log cache size'; //to translate
|
||||
|
@@ -1066,10 +1066,6 @@ $strInternalAndForeign = 'An internal relation is not necessary when a correspon
|
||||
$strViewHasAtLeast = 'This view has at least this number of rows. Please refer to %sdocumentation%s.'; //to translate
|
||||
$strRelationalKey = 'Relational key'; //to translate
|
||||
$strRelationalDisplayField = 'Relational display field'; //to translate
|
||||
$strSwekeyNoKey = 'No valid authentication key plugged'; //to translate
|
||||
$strSwekeyNoKeyId = 'File %s does not contain any key id'; //to translate
|
||||
$strSwekeyAuthFailed = 'Hardware authentication failed'; //to translate
|
||||
$strSwekeyAuthenticating = 'Authenticating...'; //to translate
|
||||
$strPBXTIndexCacheSize = 'Index cache size'; //to translate
|
||||
$strPBXTRecordCacheSize = 'Record cache size'; //to translate
|
||||
$strPBXTLogCacheSize = 'Log cache size'; //to translate
|
||||
|
@@ -939,10 +939,6 @@ $strSuccess = 'Your SQL query has been executed successfully';
|
||||
$strSuhosin = 'Server running with Suhosin. Please refer to %sdocumentation%s for possible issues.';
|
||||
$strSum = 'Sum';
|
||||
$strSwedish = 'Swedish';
|
||||
$strSwekeyAuthenticating = 'Authenticating...';
|
||||
$strSwekeyAuthFailed = 'Hardware authentication failed';
|
||||
$strSwekeyNoKeyId = 'File %s does not contain any key id';
|
||||
$strSwekeyNoKey = 'No valid authentication key plugged';
|
||||
$strSwitchToDatabase = 'Switch to copied database';
|
||||
$strSwitchToTable = 'Switch to copied table';
|
||||
|
||||
|
@@ -1050,10 +1050,6 @@ $strInternalAndForeign = 'An internal relation is not necessary when a correspon
|
||||
$strViewHasAtLeast = 'This view has at least this number of rows. Please refer to %sdocumentation%s.'; //to translate
|
||||
$strRelationalKey = 'Relational key'; //to translate
|
||||
$strRelationalDisplayField = 'Relational display field'; //to translate
|
||||
$strSwekeyNoKey = 'No valid authentication key plugged'; //to translate
|
||||
$strSwekeyNoKeyId = 'File %s does not contain any key id'; //to translate
|
||||
$strSwekeyAuthFailed = 'Hardware authentication failed'; //to translate
|
||||
$strSwekeyAuthenticating = 'Authenticating...'; //to translate
|
||||
$strPBXTIndexCacheSize = 'Index cache size'; //to translate
|
||||
$strPBXTRecordCacheSize = 'Record cache size'; //to translate
|
||||
$strPBXTLogCacheSize = 'Log cache size'; //to translate
|
||||
|
@@ -1044,10 +1044,6 @@ $strInternalAndForeign = 'An internal relation is not necessary when a correspon
|
||||
$strViewHasAtLeast = 'This view has at least this number of rows. Please refer to %sdocumentation%s.'; //to translate
|
||||
$strRelationalKey = 'Relational key'; //to translate
|
||||
$strRelationalDisplayField = 'Relational display field'; //to translate
|
||||
$strSwekeyNoKey = 'No valid authentication key plugged'; //to translate
|
||||
$strSwekeyNoKeyId = 'File %s does not contain any key id'; //to translate
|
||||
$strSwekeyAuthFailed = 'Hardware authentication failed'; //to translate
|
||||
$strSwekeyAuthenticating = 'Authenticating...'; //to translate
|
||||
$strPBXTIndexCacheSize = 'Index cache size'; //to translate
|
||||
$strPBXTRecordCacheSize = 'Record cache size'; //to translate
|
||||
$strPBXTLogCacheSize = 'Log cache size'; //to translate
|
||||
|
@@ -936,10 +936,6 @@ $strSuccess = 'Votre requête SQL a été exécutée avec succès';
|
||||
$strSuhosin = 'Ce serveur utilise Suhosin. Veuillez vous référer à la %sdocumentation%s pour en connaître les conséquences possibles.';
|
||||
$strSum = 'Somme';
|
||||
$strSwedish = 'suédois';
|
||||
$strSwekeyAuthenticating = 'Authentification en cours...';
|
||||
$strSwekeyAuthFailed = 'L\'authentification matérielle a échoué';
|
||||
$strSwekeyNoKeyId = 'Le fichier %s ne contient pas d\'identifiant de clé';
|
||||
$strSwekeyNoKey = 'La clé d\'authentification n\'est pas branchée';
|
||||
$strSwitchToDatabase = 'Aller à la base de données copiée';
|
||||
$strSwitchToTable = 'Aller à la table copiée';
|
||||
|
||||
|
@@ -1043,10 +1043,6 @@ $strZip = 'comprimido no formato "zip"';
|
||||
|
||||
$strRelationalKey = 'Relational key'; //to translate
|
||||
$strRelationalDisplayField = 'Relational display field'; //to translate
|
||||
$strSwekeyNoKey = 'No valid authentication key plugged'; //to translate
|
||||
$strSwekeyNoKeyId = 'File %s does not contain any key id'; //to translate
|
||||
$strSwekeyAuthFailed = 'Hardware authentication failed'; //to translate
|
||||
$strSwekeyAuthenticating = 'Authenticating...'; //to translate
|
||||
$strPBXTIndexCacheSize = 'Index cache size'; //to translate
|
||||
$strPBXTRecordCacheSize = 'Record cache size'; //to translate
|
||||
$strPBXTLogCacheSize = 'Log cache size'; //to translate
|
||||
|
@@ -1070,10 +1070,6 @@ $strInternalAndForeign = 'An internal relation is not necessary when a correspon
|
||||
$strViewHasAtLeast = 'This view has at least this number of rows. Please refer to %sdocumentation%s.'; //to translate
|
||||
$strRelationalKey = 'Relational key'; //to translate
|
||||
$strRelationalDisplayField = 'Relational display field'; //to translate
|
||||
$strSwekeyNoKey = 'No valid authentication key plugged'; //to translate
|
||||
$strSwekeyNoKeyId = 'File %s does not contain any key id'; //to translate
|
||||
$strSwekeyAuthFailed = 'Hardware authentication failed'; //to translate
|
||||
$strSwekeyAuthenticating = 'Authenticating...'; //to translate
|
||||
$strPBXTIndexCacheSize = 'Index cache size'; //to translate
|
||||
$strPBXTRecordCacheSize = 'Record cache size'; //to translate
|
||||
$strPBXTLogCacheSize = 'Log cache size'; //to translate
|
||||
|
@@ -1050,10 +1050,6 @@ $strInternalAndForeign = 'An internal relation is not necessary when a correspon
|
||||
$strViewHasAtLeast = 'This view has at least this number of rows. Please refer to %sdocumentation%s.'; //to translate
|
||||
$strRelationalKey = 'Relational key'; //to translate
|
||||
$strRelationalDisplayField = 'Relational display field'; //to translate
|
||||
$strSwekeyNoKey = 'No valid authentication key plugged'; //to translate
|
||||
$strSwekeyNoKeyId = 'File %s does not contain any key id'; //to translate
|
||||
$strSwekeyAuthFailed = 'Hardware authentication failed'; //to translate
|
||||
$strSwekeyAuthenticating = 'Authenticating...'; //to translate
|
||||
$strPBXTIndexCacheSize = 'Index cache size'; //to translate
|
||||
$strPBXTRecordCacheSize = 'Record cache size'; //to translate
|
||||
$strPBXTLogCacheSize = 'Log cache size'; //to translate
|
||||
|
@@ -1067,10 +1067,6 @@ $strInternalAndForeign = 'An internal relation is not necessary when a correspon
|
||||
$strViewHasAtLeast = 'This view has at least this number of rows. Please refer to %sdocumentation%s.'; //to translate
|
||||
$strRelationalKey = 'Relational key'; //to translate
|
||||
$strRelationalDisplayField = 'Relational display field'; //to translate
|
||||
$strSwekeyNoKey = 'No valid authentication key plugged'; //to translate
|
||||
$strSwekeyNoKeyId = 'File %s does not contain any key id'; //to translate
|
||||
$strSwekeyAuthFailed = 'Hardware authentication failed'; //to translate
|
||||
$strSwekeyAuthenticating = 'Authenticating...'; //to translate
|
||||
$strPBXTIndexCacheSize = 'Index cache size'; //to translate
|
||||
$strPBXTRecordCacheSize = 'Record cache size'; //to translate
|
||||
$strPBXTLogCacheSize = 'Log cache size'; //to translate
|
||||
|
@@ -1062,10 +1062,6 @@ $strInternalAndForeign = 'An internal relation is not necessary when a correspon
|
||||
$strViewHasAtLeast = 'This view has at least this number of rows. Please refer to %sdocumentation%s.'; //to translate
|
||||
$strRelationalKey = 'Relational key'; //to translate
|
||||
$strRelationalDisplayField = 'Relational display field'; //to translate
|
||||
$strSwekeyNoKey = 'No valid authentication key plugged'; //to translate
|
||||
$strSwekeyNoKeyId = 'File %s does not contain any key id'; //to translate
|
||||
$strSwekeyAuthFailed = 'Hardware authentication failed'; //to translate
|
||||
$strSwekeyAuthenticating = 'Authenticating...'; //to translate
|
||||
$strPBXTIndexCacheSize = 'Index cache size'; //to translate
|
||||
$strPBXTRecordCacheSize = 'Record cache size'; //to translate
|
||||
$strPBXTLogCacheSize = 'Log cache size'; //to translate
|
||||
|
@@ -1070,10 +1070,6 @@ $strInternalAndForeign = 'An internal relation is not necessary when a correspon
|
||||
$strViewHasAtLeast = 'This view has at least this number of rows. Please refer to %sdocumentation%s.'; //to translate
|
||||
$strRelationalKey = 'Relational key'; //to translate
|
||||
$strRelationalDisplayField = 'Relational display field'; //to translate
|
||||
$strSwekeyNoKey = 'No valid authentication key plugged'; //to translate
|
||||
$strSwekeyNoKeyId = 'File %s does not contain any key id'; //to translate
|
||||
$strSwekeyAuthFailed = 'Hardware authentication failed'; //to translate
|
||||
$strSwekeyAuthenticating = 'Authenticating...'; //to translate
|
||||
$strPBXTIndexCacheSize = 'Index cache size'; //to translate
|
||||
$strPBXTRecordCacheSize = 'Record cache size'; //to translate
|
||||
$strPBXTLogCacheSize = 'Log cache size'; //to translate
|
||||
|
@@ -1061,10 +1061,6 @@ $strInternalAndForeign = 'An internal relation is not necessary when a correspon
|
||||
$strViewHasAtLeast = 'This view has at least this number of rows. Please refer to %sdocumentation%s.'; //to translate
|
||||
$strRelationalKey = 'Relational key'; //to translate
|
||||
$strRelationalDisplayField = 'Relational display field'; //to translate
|
||||
$strSwekeyNoKey = 'No valid authentication key plugged'; //to translate
|
||||
$strSwekeyNoKeyId = 'File %s does not contain any key id'; //to translate
|
||||
$strSwekeyAuthFailed = 'Hardware authentication failed'; //to translate
|
||||
$strSwekeyAuthenticating = 'Authenticating...'; //to translate
|
||||
$strPBXTIndexCacheSize = 'Index cache size'; //to translate
|
||||
$strPBXTRecordCacheSize = 'Record cache size'; //to translate
|
||||
$strPBXTLogCacheSize = 'Log cache size'; //to translate
|
||||
|
@@ -1060,10 +1060,6 @@ $strInternalAndForeign = 'An internal relation is not necessary when a correspon
|
||||
$strViewHasAtLeast = 'This view has at least this number of rows. Please refer to %sdocumentation%s.'; //to translate
|
||||
$strRelationalKey = 'Relational key'; //to translate
|
||||
$strRelationalDisplayField = 'Relational display field'; //to translate
|
||||
$strSwekeyNoKey = 'No valid authentication key plugged'; //to translate
|
||||
$strSwekeyNoKeyId = 'File %s does not contain any key id'; //to translate
|
||||
$strSwekeyAuthFailed = 'Hardware authentication failed'; //to translate
|
||||
$strSwekeyAuthenticating = 'Authenticating...'; //to translate
|
||||
$strPBXTIndexCacheSize = 'Index cache size'; //to translate
|
||||
$strPBXTRecordCacheSize = 'Record cache size'; //to translate
|
||||
$strPBXTLogCacheSize = 'Log cache size'; //to translate
|
||||
|
@@ -939,10 +939,6 @@ $strSuccess = 'La query è stata eseguita con successo';
|
||||
$strSuhosin = 'Sul server è in esecuzione Suhosin. Controlla la documentazione: %sdocumentation%s per possibili problemi.';
|
||||
$strSum = 'Totali';
|
||||
$strSwedish = 'Svedese';
|
||||
$strSwekeyAuthenticating = 'Autenticazione in corso...';
|
||||
$strSwekeyAuthFailed = 'Autenticazione hardware fallita';
|
||||
$strSwekeyNoKeyId = 'Il file %s non contiene nessuna chiave ID';
|
||||
$strSwekeyNoKey = 'Nessuna chiave di autenticazione valida inserita';
|
||||
$strSwitchToDatabase = 'Passare al Database copiato';
|
||||
$strSwitchToTable = 'Passa alla tabella copiata';
|
||||
|
||||
|
@@ -1061,10 +1061,6 @@ $strInternalAndForeign = 'An internal relation is not necessary when a correspon
|
||||
$strViewHasAtLeast = 'This view has at least this number of rows. Please refer to %sdocumentation%s.'; //to translate
|
||||
$strRelationalKey = 'Relational key'; //to translate
|
||||
$strRelationalDisplayField = 'Relational display field'; //to translate
|
||||
$strSwekeyNoKey = 'No valid authentication key plugged'; //to translate
|
||||
$strSwekeyNoKeyId = 'File %s does not contain any key id'; //to translate
|
||||
$strSwekeyAuthFailed = 'Hardware authentication failed'; //to translate
|
||||
$strSwekeyAuthenticating = 'Authenticating...'; //to translate
|
||||
$strPBXTIndexCacheSize = 'Index cache size'; //to translate
|
||||
$strPBXTRecordCacheSize = 'Record cache size'; //to translate
|
||||
$strPBXTLogCacheSize = 'Log cache size'; //to translate
|
||||
|
@@ -1065,10 +1065,6 @@ $strInternalAndForeign = 'An internal relation is not necessary when a correspon
|
||||
$strViewHasAtLeast = 'This view has at least this number of rows. Please refer to %sdocumentation%s.'; //to translate
|
||||
$strRelationalKey = 'Relational key'; //to translate
|
||||
$strRelationalDisplayField = 'Relational display field'; //to translate
|
||||
$strSwekeyNoKey = 'No valid authentication key plugged'; //to translate
|
||||
$strSwekeyNoKeyId = 'File %s does not contain any key id'; //to translate
|
||||
$strSwekeyAuthFailed = 'Hardware authentication failed'; //to translate
|
||||
$strSwekeyAuthenticating = 'Authenticating...'; //to translate
|
||||
$strPBXTIndexCacheSize = 'Index cache size'; //to translate
|
||||
$strPBXTRecordCacheSize = 'Record cache size'; //to translate
|
||||
$strPBXTLogCacheSize = 'Log cache size'; //to translate
|
||||
|
@@ -1067,10 +1067,6 @@ $strInternalAndForeign = 'An internal relation is not necessary when a correspon
|
||||
$strViewHasAtLeast = 'This view has at least this number of rows. Please refer to %sdocumentation%s.'; //to translate
|
||||
$strRelationalKey = 'Relational key'; //to translate
|
||||
$strRelationalDisplayField = 'Relational display field'; //to translate
|
||||
$strSwekeyNoKey = 'No valid authentication key plugged'; //to translate
|
||||
$strSwekeyNoKeyId = 'File %s does not contain any key id'; //to translate
|
||||
$strSwekeyAuthFailed = 'Hardware authentication failed'; //to translate
|
||||
$strSwekeyAuthenticating = 'Authenticating...'; //to translate
|
||||
$strPBXTIndexCacheSize = 'Index cache size'; //to translate
|
||||
$strPBXTRecordCacheSize = 'Record cache size'; //to translate
|
||||
$strPBXTLogCacheSize = 'Log cache size'; //to translate
|
||||
|
@@ -1060,10 +1060,6 @@ $strInternalAndForeign = 'An internal relation is not necessary when a correspon
|
||||
$strViewHasAtLeast = 'This view has at least this number of rows. Please refer to %sdocumentation%s.'; //to translate
|
||||
$strRelationalKey = 'Relational key'; //to translate
|
||||
$strRelationalDisplayField = 'Relational display field'; //to translate
|
||||
$strSwekeyNoKey = 'No valid authentication key plugged'; //to translate
|
||||
$strSwekeyNoKeyId = 'File %s does not contain any key id'; //to translate
|
||||
$strSwekeyAuthFailed = 'Hardware authentication failed'; //to translate
|
||||
$strSwekeyAuthenticating = 'Authenticating...'; //to translate
|
||||
$strPBXTIndexCacheSize = 'Index cache size'; //to translate
|
||||
$strPBXTRecordCacheSize = 'Record cache size'; //to translate
|
||||
$strPBXTLogCacheSize = 'Log cache size'; //to translate
|
||||
|
@@ -1045,10 +1045,6 @@ $strInternalAndForeign = 'An internal relation is not necessary when a correspon
|
||||
$strViewHasAtLeast = 'This view has at least this number of rows. Please refer to %sdocumentation%s.'; //to translate
|
||||
$strRelationalKey = 'Relational key'; //to translate
|
||||
$strRelationalDisplayField = 'Relational display field'; //to translate
|
||||
$strSwekeyNoKey = 'No valid authentication key plugged'; //to translate
|
||||
$strSwekeyNoKeyId = 'File %s does not contain any key id'; //to translate
|
||||
$strSwekeyAuthFailed = 'Hardware authentication failed'; //to translate
|
||||
$strSwekeyAuthenticating = 'Authenticating...'; //to translate
|
||||
$strPBXTIndexCacheSize = 'Index cache size'; //to translate
|
||||
$strPBXTRecordCacheSize = 'Record cache size'; //to translate
|
||||
$strPBXTLogCacheSize = 'Log cache size'; //to translate
|
||||
|
@@ -1082,10 +1082,6 @@ $strInternalAndForeign = 'An internal relation is not necessary when a correspon
|
||||
$strViewHasAtLeast = 'This view has at least this number of rows. Please refer to %sdocumentation%s.'; //to translate
|
||||
$strRelationalKey = 'Relational key'; //to translate
|
||||
$strRelationalDisplayField = 'Relational display field'; //to translate
|
||||
$strSwekeyNoKey = 'No valid authentication key plugged'; //to translate
|
||||
$strSwekeyNoKeyId = 'File %s does not contain any key id'; //to translate
|
||||
$strSwekeyAuthFailed = 'Hardware authentication failed'; //to translate
|
||||
$strSwekeyAuthenticating = 'Authenticating...'; //to translate
|
||||
$strPBXTIndexCacheSize = 'Index cache size'; //to translate
|
||||
$strPBXTRecordCacheSize = 'Record cache size'; //to translate
|
||||
$strPBXTLogCacheSize = 'Log cache size'; //to translate
|
||||
|
@@ -1065,10 +1065,6 @@ $strInternalAndForeign = 'An internal relation is not necessary when a correspon
|
||||
$strViewHasAtLeast = 'This view has at least this number of rows. Please refer to %sdocumentation%s.'; //to translate
|
||||
$strRelationalKey = 'Relational key'; //to translate
|
||||
$strRelationalDisplayField = 'Relational display field'; //to translate
|
||||
$strSwekeyNoKey = 'No valid authentication key plugged'; //to translate
|
||||
$strSwekeyNoKeyId = 'File %s does not contain any key id'; //to translate
|
||||
$strSwekeyAuthFailed = 'Hardware authentication failed'; //to translate
|
||||
$strSwekeyAuthenticating = 'Authenticating...'; //to translate
|
||||
$strPBXTIndexCacheSize = 'Index cache size'; //to translate
|
||||
$strPBXTRecordCacheSize = 'Record cache size'; //to translate
|
||||
$strPBXTLogCacheSize = 'Log cache size'; //to translate
|
||||
|
@@ -937,10 +937,6 @@ $strSuccess = 'Kommandoen/spørringen er utført';
|
||||
$strSuhosin = 'Tjeneren kjører med Suhosin. Sjekk %sdokumentasjonen%s for potensielle problemer.';
|
||||
$strSum = 'Sum';
|
||||
$strSwedish = 'svensk';
|
||||
$strSwekeyAuthenticating = 'Autentiserer...';
|
||||
$strSwekeyAuthFailed = 'Maskinvaregodkjenning mislyktes';
|
||||
$strSwekeyNoKey = 'Ingen gyldig autentiseringsnøkkel plugget';
|
||||
$strSwekeyNoKeyId = 'Fila %s inneholder ingen nøkkel id';
|
||||
$strSwitchToDatabase = 'Bytt til kopiert database';
|
||||
$strSwitchToTable = 'Bytt til kopiert tabell';
|
||||
|
||||
|
@@ -1067,10 +1067,6 @@ $strInternalAndForeign = 'An internal relation is not necessary when a correspon
|
||||
$strViewHasAtLeast = 'This view has at least this number of rows. Please refer to %sdocumentation%s.'; //to translate
|
||||
$strRelationalKey = 'Relational key'; //to translate
|
||||
$strRelationalDisplayField = 'Relational display field'; //to translate
|
||||
$strSwekeyNoKey = 'No valid authentication key plugged'; //to translate
|
||||
$strSwekeyNoKeyId = 'File %s does not contain any key id'; //to translate
|
||||
$strSwekeyAuthFailed = 'Hardware authentication failed'; //to translate
|
||||
$strSwekeyAuthenticating = 'Authenticating...'; //to translate
|
||||
$strPBXTIndexCacheSize = 'Index cache size'; //to translate
|
||||
$strPBXTRecordCacheSize = 'Record cache size'; //to translate
|
||||
$strPBXTLogCacheSize = 'Log cache size'; //to translate
|
||||
|
@@ -1038,10 +1038,6 @@ $strInternalAndForeign = 'An internal relation is not necessary when a correspon
|
||||
$strViewHasAtLeast = 'This view has at least this number of rows. Please refer to %sdocumentation%s.'; //to translate
|
||||
$strRelationalKey = 'Relational key'; //to translate
|
||||
$strRelationalDisplayField = 'Relational display field'; //to translate
|
||||
$strSwekeyNoKey = 'No valid authentication key plugged'; //to translate
|
||||
$strSwekeyNoKeyId = 'File %s does not contain any key id'; //to translate
|
||||
$strSwekeyAuthFailed = 'Hardware authentication failed'; //to translate
|
||||
$strSwekeyAuthenticating = 'Authenticating...'; //to translate
|
||||
$strPBXTIndexCacheSize = 'Index cache size'; //to translate
|
||||
$strPBXTRecordCacheSize = 'Record cache size'; //to translate
|
||||
$strPBXTLogCacheSize = 'Log cache size'; //to translate
|
||||
|
@@ -1071,10 +1071,6 @@ $strInternalAndForeign = 'An internal relation is not necessary when a correspon
|
||||
$strViewHasAtLeast = 'This view has at least this number of rows. Please refer to %sdocumentation%s.'; //to translate
|
||||
$strRelationalKey = 'Relational key'; //to translate
|
||||
$strRelationalDisplayField = 'Relational display field'; //to translate
|
||||
$strSwekeyNoKey = 'No valid authentication key plugged'; //to translate
|
||||
$strSwekeyNoKeyId = 'File %s does not contain any key id'; //to translate
|
||||
$strSwekeyAuthFailed = 'Hardware authentication failed'; //to translate
|
||||
$strSwekeyAuthenticating = 'Authenticating...'; //to translate
|
||||
$strPBXTIndexCacheSize = 'Index cache size'; //to translate
|
||||
$strPBXTRecordCacheSize = 'Record cache size'; //to translate
|
||||
$strPBXTLogCacheSize = 'Log cache size'; //to translate
|
||||
|
@@ -1059,10 +1059,6 @@ $strInternalAndForeign = 'An internal relation is not necessary when a correspon
|
||||
$strViewHasAtLeast = 'This view has at least this number of rows. Please refer to %sdocumentation%s.'; //to translate
|
||||
$strRelationalKey = 'Relational key'; //to translate
|
||||
$strRelationalDisplayField = 'Relational display field'; //to translate
|
||||
$strSwekeyNoKey = 'No valid authentication key plugged'; //to translate
|
||||
$strSwekeyNoKeyId = 'File %s does not contain any key id'; //to translate
|
||||
$strSwekeyAuthFailed = 'Hardware authentication failed'; //to translate
|
||||
$strSwekeyAuthenticating = 'Authenticating...'; //to translate
|
||||
$strPBXTIndexCacheSize = 'Index cache size'; //to translate
|
||||
$strPBXTRecordCacheSize = 'Record cache size'; //to translate
|
||||
$strPBXTLogCacheSize = 'Log cache size'; //to translate
|
||||
|
@@ -1046,10 +1046,6 @@ $strInternalAndForeign = 'An internal relation is not necessary when a correspon
|
||||
$strViewHasAtLeast = 'This view has at least this number of rows. Please refer to %sdocumentation%s.'; //to translate
|
||||
$strRelationalKey = 'Relational key'; //to translate
|
||||
$strRelationalDisplayField = 'Relational display field'; //to translate
|
||||
$strSwekeyNoKey = 'No valid authentication key plugged'; //to translate
|
||||
$strSwekeyNoKeyId = 'File %s does not contain any key id'; //to translate
|
||||
$strSwekeyAuthFailed = 'Hardware authentication failed'; //to translate
|
||||
$strSwekeyAuthenticating = 'Authenticating...'; //to translate
|
||||
$strPBXTIndexCacheSize = 'Index cache size'; //to translate
|
||||
$strPBXTRecordCacheSize = 'Record cache size'; //to translate
|
||||
$strPBXTLogCacheSize = 'Log cache size'; //to translate
|
||||
|
@@ -1044,10 +1044,6 @@ $strInternalAndForeign = 'An internal relation is not necessary when a correspon
|
||||
$strViewHasAtLeast = 'This view has at least this number of rows. Please refer to %sdocumentation%s.'; //to translate
|
||||
$strRelationalKey = 'Relational key'; //to translate
|
||||
$strRelationalDisplayField = 'Relational display field'; //to translate
|
||||
$strSwekeyNoKey = 'No valid authentication key plugged'; //to translate
|
||||
$strSwekeyNoKeyId = 'File %s does not contain any key id'; //to translate
|
||||
$strSwekeyAuthFailed = 'Hardware authentication failed'; //to translate
|
||||
$strSwekeyAuthenticating = 'Authenticating...'; //to translate
|
||||
$strPBXTIndexCacheSize = 'Index cache size'; //to translate
|
||||
$strPBXTRecordCacheSize = 'Record cache size'; //to translate
|
||||
$strPBXTLogCacheSize = 'Log cache size'; //to translate
|
||||
|
@@ -1044,10 +1044,6 @@ $strInternalAndForeign = 'An internal relation is not necessary when a correspon
|
||||
$strViewHasAtLeast = 'This view has at least this number of rows. Please refer to %sdocumentation%s.'; //to translate
|
||||
$strRelationalKey = 'Relational key'; //to translate
|
||||
$strRelationalDisplayField = 'Relational display field'; //to translate
|
||||
$strSwekeyNoKey = 'No valid authentication key plugged'; //to translate
|
||||
$strSwekeyNoKeyId = 'File %s does not contain any key id'; //to translate
|
||||
$strSwekeyAuthFailed = 'Hardware authentication failed'; //to translate
|
||||
$strSwekeyAuthenticating = 'Authenticating...'; //to translate
|
||||
$strPBXTIndexCacheSize = 'Index cache size'; //to translate
|
||||
$strPBXTRecordCacheSize = 'Record cache size'; //to translate
|
||||
$strPBXTLogCacheSize = 'Log cache size'; //to translate
|
||||
|
@@ -1047,10 +1047,6 @@ $strInternalAndForeign = 'An internal relation is not necessary when a correspon
|
||||
$strViewHasAtLeast = 'This view has at least this number of rows. Please refer to %sdocumentation%s.'; //to translate
|
||||
$strRelationalKey = 'Relational key'; //to translate
|
||||
$strRelationalDisplayField = 'Relational display field'; //to translate
|
||||
$strSwekeyNoKey = 'No valid authentication key plugged'; //to translate
|
||||
$strSwekeyNoKeyId = 'File %s does not contain any key id'; //to translate
|
||||
$strSwekeyAuthFailed = 'Hardware authentication failed'; //to translate
|
||||
$strSwekeyAuthenticating = 'Authenticating...'; //to translate
|
||||
$strPBXTIndexCacheSize = 'Index cache size'; //to translate
|
||||
$strPBXTRecordCacheSize = 'Record cache size'; //to translate
|
||||
$strPBXTLogCacheSize = 'Log cache size'; //to translate
|
||||
|
@@ -1045,10 +1045,6 @@ $strInternalAndForeign = 'An internal relation is not necessary when a correspon
|
||||
$strViewHasAtLeast = 'This view has at least this number of rows. Please refer to %sdocumentation%s.'; //to translate
|
||||
$strRelationalKey = 'Relational key'; //to translate
|
||||
$strRelationalDisplayField = 'Relational display field'; //to translate
|
||||
$strSwekeyNoKey = 'No valid authentication key plugged'; //to translate
|
||||
$strSwekeyNoKeyId = 'File %s does not contain any key id'; //to translate
|
||||
$strSwekeyAuthFailed = 'Hardware authentication failed'; //to translate
|
||||
$strSwekeyAuthenticating = 'Authenticating...'; //to translate
|
||||
$strPBXTIndexCacheSize = 'Index cache size'; //to translate
|
||||
$strPBXTRecordCacheSize = 'Record cache size'; //to translate
|
||||
$strPBXTLogCacheSize = 'Log cache size'; //to translate
|
||||
|
@@ -1064,10 +1064,6 @@ $strInternalAndForeign = 'An internal relation is not necessary when a correspon
|
||||
$strViewHasAtLeast = 'This view has at least this number of rows. Please refer to %sdocumentation%s.'; //to translate
|
||||
$strRelationalKey = 'Relational key'; //to translate
|
||||
$strRelationalDisplayField = 'Relational display field'; //to translate
|
||||
$strSwekeyNoKey = 'No valid authentication key plugged'; //to translate
|
||||
$strSwekeyNoKeyId = 'File %s does not contain any key id'; //to translate
|
||||
$strSwekeyAuthFailed = 'Hardware authentication failed'; //to translate
|
||||
$strSwekeyAuthenticating = 'Authenticating...'; //to translate
|
||||
$strPBXTIndexCacheSize = 'Index cache size'; //to translate
|
||||
$strPBXTRecordCacheSize = 'Record cache size'; //to translate
|
||||
$strPBXTLogCacheSize = 'Log cache size'; //to translate
|
||||
|
@@ -1040,10 +1040,6 @@ $strInternalAndForeign = 'An internal relation is not necessary when a correspon
|
||||
$strViewHasAtLeast = 'This view has at least this number of rows. Please refer to %sdocumentation%s.'; //to translate
|
||||
$strRelationalKey = 'Relational key'; //to translate
|
||||
$strRelationalDisplayField = 'Relational display field'; //to translate
|
||||
$strSwekeyNoKey = 'No valid authentication key plugged'; //to translate
|
||||
$strSwekeyNoKeyId = 'File %s does not contain any key id'; //to translate
|
||||
$strSwekeyAuthFailed = 'Hardware authentication failed'; //to translate
|
||||
$strSwekeyAuthenticating = 'Authenticating...'; //to translate
|
||||
$strPBXTIndexCacheSize = 'Index cache size'; //to translate
|
||||
$strPBXTRecordCacheSize = 'Record cache size'; //to translate
|
||||
$strPBXTLogCacheSize = 'Log cache size'; //to translate
|
||||
|
@@ -937,10 +937,6 @@ $strSuccess = 'Din SQL-fråga utfördes korrekt';
|
||||
$strSuhosin = 'Server körs med Suhosin. Se %sdokumentation%s för möjliga frågor.';
|
||||
$strSum = 'Summa';
|
||||
$strSwedish = 'Svensk';
|
||||
$strSwekeyAuthenticating = 'Autenticiering pågår...';
|
||||
$strSwekeyAuthFailed = 'Hårdvaruautenticiering misslyckades';
|
||||
$strSwekeyNoKeyId = 'Filen %s innehåller inget nyckelid';
|
||||
$strSwekeyNoKey = 'Giltig autenticieringsnyckel saknas';
|
||||
$strSwitchToDatabase = 'Byt till kopierad databas';
|
||||
$strSwitchToTable = 'Byt till kopierad tabell';
|
||||
|
||||
|
@@ -1056,10 +1056,6 @@ $strInternalAndForeign = 'An internal relation is not necessary when a correspon
|
||||
$strViewHasAtLeast = 'This view has at least this number of rows. Please refer to %sdocumentation%s.'; //to translate
|
||||
$strRelationalKey = 'Relational key'; //to translate
|
||||
$strRelationalDisplayField = 'Relational display field'; //to translate
|
||||
$strSwekeyNoKey = 'No valid authentication key plugged'; //to translate
|
||||
$strSwekeyNoKeyId = 'File %s does not contain any key id'; //to translate
|
||||
$strSwekeyAuthFailed = 'Hardware authentication failed'; //to translate
|
||||
$strSwekeyAuthenticating = 'Authenticating...'; //to translate
|
||||
$strPBXTIndexCacheSize = 'Index cache size'; //to translate
|
||||
$strPBXTRecordCacheSize = 'Record cache size'; //to translate
|
||||
$strPBXTLogCacheSize = 'Log cache size'; //to translate
|
||||
|
@@ -1066,10 +1066,6 @@ $strInternalAndForeign = 'An internal relation is not necessary when a correspon
|
||||
$strViewHasAtLeast = 'This view has at least this number of rows. Please refer to %sdocumentation%s.'; //to translate
|
||||
$strRelationalKey = 'Relational key'; //to translate
|
||||
$strRelationalDisplayField = 'Relational display field'; //to translate
|
||||
$strSwekeyNoKey = 'No valid authentication key plugged'; //to translate
|
||||
$strSwekeyNoKeyId = 'File %s does not contain any key id'; //to translate
|
||||
$strSwekeyAuthFailed = 'Hardware authentication failed'; //to translate
|
||||
$strSwekeyAuthenticating = 'Authenticating...'; //to translate
|
||||
$strPBXTIndexCacheSize = 'Index cache size'; //to translate
|
||||
$strPBXTRecordCacheSize = 'Record cache size'; //to translate
|
||||
$strPBXTLogCacheSize = 'Log cache size'; //to translate
|
||||
|
@@ -1050,10 +1050,6 @@ $strInternalAndForeign = 'An internal relation is not necessary when a correspon
|
||||
$strViewHasAtLeast = 'This view has at least this number of rows. Please refer to %sdocumentation%s.'; //to translate
|
||||
$strRelationalKey = 'Relational key'; //to translate
|
||||
$strRelationalDisplayField = 'Relational display field'; //to translate
|
||||
$strSwekeyNoKey = 'No valid authentication key plugged'; //to translate
|
||||
$strSwekeyNoKeyId = 'File %s does not contain any key id'; //to translate
|
||||
$strSwekeyAuthFailed = 'Hardware authentication failed'; //to translate
|
||||
$strSwekeyAuthenticating = 'Authenticating...'; //to translate
|
||||
$strPBXTIndexCacheSize = 'Index cache size'; //to translate
|
||||
$strPBXTRecordCacheSize = 'Record cache size'; //to translate
|
||||
$strPBXTLogCacheSize = 'Log cache size'; //to translate
|
||||
|
@@ -1064,10 +1064,6 @@ $strInternalAndForeign = 'An internal relation is not necessary when a correspon
|
||||
$strViewHasAtLeast = 'This view has at least this number of rows. Please refer to %sdocumentation%s.'; //to translate
|
||||
$strRelationalKey = 'Relational key'; //to translate
|
||||
$strRelationalDisplayField = 'Relational display field'; //to translate
|
||||
$strSwekeyNoKey = 'No valid authentication key plugged'; //to translate
|
||||
$strSwekeyNoKeyId = 'File %s does not contain any key id'; //to translate
|
||||
$strSwekeyAuthFailed = 'Hardware authentication failed'; //to translate
|
||||
$strSwekeyAuthenticating = 'Authenticating...'; //to translate
|
||||
$strPBXTIndexCacheSize = 'Index cache size'; //to translate
|
||||
$strPBXTRecordCacheSize = 'Record cache size'; //to translate
|
||||
$strPBXTLogCacheSize = 'Log cache size'; //to translate
|
||||
|
@@ -12,8 +12,6 @@ if (! defined('PHPMYADMIN')) {
|
||||
exit;
|
||||
}
|
||||
|
||||
require './libraries/auth/swekey/swekey.auth.lib.php';
|
||||
|
||||
if (function_exists('mcrypt_encrypt') || PMA_dl('mcrypt')) {
|
||||
/**
|
||||
* Uses faster mcrypt library if available
|
||||
@@ -218,32 +216,6 @@ if (top != self) {
|
||||
echo '</body></html>';
|
||||
exit;
|
||||
}
|
||||
|
||||
// BEGIN Swekey Integration
|
||||
$swekeyErr = Swekey_auth_error();
|
||||
if ($swekeyErr != null) {
|
||||
PMA_Message::error($swekeyErr)->display();
|
||||
if ($GLOBALS['error_handler']->hasDisplayErrors()) {
|
||||
echo '<div>';
|
||||
$GLOBALS['error_handler']->dispErrors();
|
||||
echo '</div>';
|
||||
}
|
||||
echo '</div>' . "\n";
|
||||
if (file_exists('./config.footer.inc.php')) {
|
||||
require './config.footer.inc.php';
|
||||
}
|
||||
echo '</body></html>';
|
||||
exit;
|
||||
}
|
||||
|
||||
if (isset($_SESSION['PHP_AUTH_FORCE_USER'])) {
|
||||
$default_user = $_SESSION['PHP_AUTH_FORCE_USER'];
|
||||
$user_input_disabled = 'readonly="readonly"';
|
||||
}
|
||||
else
|
||||
$user_input_disabled = '';
|
||||
// END Swekey Integration
|
||||
|
||||
?>
|
||||
<br />
|
||||
<!-- Login form -->
|
||||
@@ -265,7 +237,7 @@ if (top != self) {
|
||||
<?php } ?>
|
||||
<div class="item">
|
||||
<label for="input_username"><?php echo $GLOBALS['strLogUsername']; ?></label>
|
||||
<input type="text" name="pma_username" id="input_username" value="<?php echo htmlspecialchars($default_user); ?>" size="24" class="textfield" <?php echo $user_input_disabled; ?>/>
|
||||
<input type="text" name="pma_username" id="input_username" value="<?php echo htmlspecialchars($default_user); ?>" size="24" class="textfield" />
|
||||
</div>
|
||||
<div class="item">
|
||||
<label for="input_password"><?php echo $GLOBALS['strLogPassword']; ?></label>
|
||||
@@ -411,11 +383,6 @@ function PMA_auth_check()
|
||||
return false;
|
||||
}
|
||||
|
||||
// BEGIN Swekey Integration
|
||||
if (! Swekey_auth_check())
|
||||
return false;
|
||||
// END Swekey Integration
|
||||
|
||||
if (defined('PMA_CLEAR_COOKIES')) {
|
||||
foreach($GLOBALS['cfg']['Servers'] as $key => $val) {
|
||||
PMA_removeCookie('pmaPass-' . $key);
|
||||
|
@@ -1,115 +0,0 @@
|
||||
<?php
|
||||
|
||||
|
||||
?>
|
||||
<embed type="application/fbauth-plugin" width=1 height=1 hidden="true" id="fbauth"><br>
|
||||
<script>
|
||||
var glob_SwekeyPlugin = document.embeds["fbauth"];
|
||||
var glob_ValidSwekeyId;
|
||||
var glob_ValidSwekeyOtp;
|
||||
|
||||
// -------------------------------------------------------------------
|
||||
// List the id of the Swekey connected to the PC
|
||||
// Returns a string containing comma separated Swekey Ids
|
||||
// A Swekey id is a 32 char hexadecimal value.
|
||||
function Swekey_ListKeyIds()
|
||||
{
|
||||
try
|
||||
{
|
||||
if (window.ActiveXObject)
|
||||
{
|
||||
var x = new ActiveXObject("FbAuthAx.FbAuthCtl");
|
||||
return x.list();
|
||||
}
|
||||
else
|
||||
return glob_SwekeyPlugin.list();
|
||||
}
|
||||
catch (e)
|
||||
{
|
||||
// alert("Swekey_ListKeyIds" + e);
|
||||
}
|
||||
return "";
|
||||
}
|
||||
|
||||
// -------------------------------------------------------------------
|
||||
// Ask the Connected Swekey to generate an OTP
|
||||
// fbid: The id of the connected Swekey (returne by Swekey_ListKeyIds())
|
||||
// rt: A random token
|
||||
// return: The calculated OTP encoded in a 64 chars hexadecimal value.
|
||||
function Swekey_GetOtp(fbid, rt)
|
||||
{
|
||||
try
|
||||
{
|
||||
if (window.ActiveXObject)
|
||||
{
|
||||
var x = new ActiveXObject("FbAuthAx.FbAuthCtl");
|
||||
return x.getotp(fbid, rt);
|
||||
}
|
||||
else
|
||||
return glob_SwekeyPlugin.getotp(fbid, rt);
|
||||
}
|
||||
catch (e)
|
||||
{
|
||||
// alert("Swekey_GetOtp " + e);
|
||||
}
|
||||
return "";
|
||||
}
|
||||
|
||||
// -------------------------------------------------------------------
|
||||
// Set a unplug handler (url) to the specified connected swekey
|
||||
// fbid: The id of the connected Swekey (returne by Swekey_ListKeyIds())
|
||||
// key: The key that index that url, (aplhanumeric values only)
|
||||
// url: The url that will be launched ("" deletes the url)
|
||||
function Swekey_SetUnplugUrl(fbid, key, url)
|
||||
{
|
||||
try
|
||||
{
|
||||
if (window.ActiveXObject)
|
||||
{
|
||||
var x = new ActiveXObject("FbAuthAx.FbAuthCtl");
|
||||
return x.setunplugurl(fbid, key, url);
|
||||
}
|
||||
else
|
||||
return glob_SwekeyPlugin.setunplugurl(fbid, key, url);
|
||||
}
|
||||
catch (e)
|
||||
{
|
||||
// alert("Swekey_SetUnplugUrl " + e);
|
||||
}
|
||||
}
|
||||
|
||||
// -------------------------------------------------------------------
|
||||
// Return a valid connected key id
|
||||
function Swekey_GetValidKey()
|
||||
{
|
||||
var valids = <?php echo '"'.$_SESSION['PHP_AUTH_VALID_SWEKEYS'].'"';?>;
|
||||
var connected_keys = Swekey_ListKeyIds().split(",");
|
||||
for (i in connected_keys)
|
||||
if (connected_keys[i] != null && connected_keys[i].length == 32)
|
||||
if (valids.indexOf(connected_keys[i]) >= 0)
|
||||
return connected_keys[i];
|
||||
|
||||
return "none";
|
||||
}
|
||||
|
||||
// -------------------------------------------------------------------
|
||||
// Return a valid connected key id
|
||||
function Swekey_GetOtpFromValidKey()
|
||||
{
|
||||
var key = Swekey_GetValidKey();
|
||||
if (key.length != 32)
|
||||
return "";
|
||||
|
||||
var url = "" + window.location;
|
||||
|
||||
if (url.indexOf("?") > 0)
|
||||
url = url.substr(0, url.indexOf("?"));
|
||||
|
||||
if (url.lastIndexOf("/") > 0)
|
||||
url = url.substr(0, url.lastIndexOf("/"));
|
||||
|
||||
Swekey_SetUnplugUrl(key, "pma_login", url + "/libraries/auth/swekey/unplugged.php?session_to_unset=<?php echo session_id();?>");
|
||||
|
||||
return Swekey_GetOtp(key, <?php echo '"'.$_SESSION['PHP_AUTH_SWEKEY_RND_TOKEN'].'"';?>);
|
||||
}
|
||||
</script>
|
@@ -1,122 +0,0 @@
|
||||
<?php
|
||||
|
||||
function Swekey_auth_check()
|
||||
{
|
||||
// Load the swekey.conf file the first time
|
||||
if (empty($_SESSION['PHP_AUTH_REQUIRED_SWEKEY'])) {
|
||||
global $cfg;
|
||||
$confFile = $cfg['Server']['auth_swekey_config'];
|
||||
$_SESSION['PHP_AUTH_REQUIRES_SWEKEY'] = (! empty($confFile) && file_exists($confFile));
|
||||
if ($_SESSION['PHP_AUTH_REQUIRES_SWEKEY']) {
|
||||
$_SESSION['PHP_AUTH_VALID_SWEKEYS'] = "";
|
||||
$_SESSION['PHP_AUTH_SERVER_CHECK'] = "";
|
||||
$_SESSION['PHP_AUTH_SERVER_RNDTOKEN'] = "";
|
||||
$_SESSION['PHP_AUTH_SERVER_STATUS'] = "";
|
||||
$valid_swekeys = split("\n",@file_get_contents($confFile));
|
||||
foreach ($valid_swekeys as $line) {
|
||||
if (ereg("^[0-9A-F]{32}:.+$", $line) != false)
|
||||
$_SESSION['PHP_AUTH_VALID_SWEKEYS'] .= trim($line) . ",";
|
||||
else if (ereg("^SERVER_[A-Z]+=.*$", $line) != false) {
|
||||
$items = explode("=", $line);
|
||||
$_SESSION['PHP_AUTH_'.trim($items[0])] = trim($items[1]);
|
||||
}
|
||||
}
|
||||
}
|
||||
else
|
||||
unset($_SESSION['PHP_AUTH_VALID_SWEKEYS']);
|
||||
}
|
||||
|
||||
// check if a web key has been authenticated
|
||||
if ($_SESSION['PHP_AUTH_REQUIRES_SWEKEY']) {
|
||||
if (empty($_SESSION['PHP_AUTH_AUTHENTICATED_SWEKEY']))
|
||||
return false;
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
|
||||
function Swekey_auth_error()
|
||||
{
|
||||
if (! $_SESSION['PHP_AUTH_REQUIRES_SWEKEY'])
|
||||
return null;
|
||||
|
||||
if (! empty($_SESSION['PHP_AUTH_AUTHENTICATED_SWEKEY']))
|
||||
return null;
|
||||
|
||||
if (empty($_SESSION['PHP_AUTH_VALID_SWEKEYS']))
|
||||
return sprintf($GLOBALS['strSwekeyNoKeyId'], $GLOBALS['cfg']['Server']['auth_swekey_config']);
|
||||
|
||||
require_once "./libraries/auth/swekey/swekey.php";
|
||||
|
||||
Swekey_SetCheckServer($_SESSION['PHP_AUTH_SERVER_CHECK']);
|
||||
Swekey_SetRndTokenServer($_SESSION['PHP_AUTH_SERVER_RNDTOKEN']);
|
||||
Swekey_SetStatusServer($_SESSION['PHP_AUTH_SERVER_STATUS']);
|
||||
|
||||
$result = null;
|
||||
parse_str($_SERVER['QUERY_STRING']);
|
||||
if (isset($swekey_id)) {
|
||||
unset($_SESSION['PHP_AUTH_AUTHENTICATED_SWEKEY']);
|
||||
if (! isset($_SESSION['PHP_AUTH_SWEKEY_RND_TOKEN'])) {
|
||||
unset($swekey_id);
|
||||
}
|
||||
else {
|
||||
if (strlen($swekey_id) == 32) {
|
||||
$res = Swekey_CheckOtp($swekey_id, $_SESSION['PHP_AUTH_SWEKEY_RND_TOKEN'], $swekey_otp);
|
||||
unset($_SESSION['PHP_AUTH_SWEKEY_RND_TOKEN']);
|
||||
if (! $res) {
|
||||
$result = $GLOBALS['strSwekeyAuthFailed'] . ' (' . Swekey_GetLastError() . ')';
|
||||
}
|
||||
else {
|
||||
$_SESSION['PHP_AUTH_AUTHENTICATED_SWEKEY'] = $swekey_id;
|
||||
unset($_SESSION['PHP_AUTH_FORCE_USER']);
|
||||
$valid_swekeys = split(",",$_SESSION['PHP_AUTH_VALID_SWEKEYS']);
|
||||
foreach ($valid_swekeys as $line) {
|
||||
if (substr($line,0,32) == $swekey_id) {
|
||||
$_SESSION['PHP_AUTH_FORCE_USER'] = substr($line,33);
|
||||
break;
|
||||
}
|
||||
}
|
||||
return null;
|
||||
}
|
||||
}
|
||||
else {
|
||||
$result = $GLOBALS['strSwekeyNoKey'];
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
$_SESSION['PHP_AUTH_SWEKEY_RND_TOKEN'] = Swekey_GetFastRndToken();
|
||||
if (strlen($_SESSION['PHP_AUTH_SWEKEY_RND_TOKEN']) != 64) {
|
||||
$result = $GLOBALS['strSwekeyAuthFailed'] . ' (' . Swekey_GetLastError() . ')';
|
||||
}
|
||||
|
||||
require_once './libraries/auth/swekey/authentication.inc.php';
|
||||
|
||||
if (! isset($swekey_id)) {
|
||||
?>
|
||||
<script>
|
||||
window.location.search="?swekey_id=" + Swekey_GetValidKey() + "&swekey_otp=" + Swekey_GetOtpFromValidKey();
|
||||
</script>
|
||||
<?php
|
||||
return $GLOBALS['strSwekeyAuthenticating'];
|
||||
}
|
||||
|
||||
?>
|
||||
<script>
|
||||
var key = Swekey_GetValidKey();
|
||||
function timedCheck()
|
||||
{
|
||||
if (key != Swekey_GetValidKey())
|
||||
window.location.search="";
|
||||
|
||||
setTimeout("timedCheck()",1000);
|
||||
}
|
||||
timedCheck();
|
||||
</script>
|
||||
<?php
|
||||
|
||||
return $result;
|
||||
}
|
||||
|
||||
?>
|
@@ -1,397 +0,0 @@
|
||||
<?php
|
||||
/**
|
||||
* Library that provides common functions that are used to help integrating Swekey Authentication in a PHP web site
|
||||
* Version 1.0
|
||||
*
|
||||
* History:
|
||||
* 1.1 Added Swekey_HttpGet function that support faulty servers
|
||||
* Support for custom servers
|
||||
* 1.0 First release
|
||||
*
|
||||
*/
|
||||
|
||||
|
||||
/**
|
||||
* Errors codes
|
||||
*/
|
||||
define ("SWEKEY_ERR_INVALID_DEV_STATUS",901); // The satus of the device is not SWEKEY_STATUS_OK
|
||||
define ("SWEKEY_ERR_INTERNAL",902); // Should never occurd
|
||||
define ("SWEKEY_ERR_OUTDATED_RND_TOKEN",910); // You random token is too old
|
||||
define ("SWEKEY_ERR_INVALID_OTP",911); // The otp was not correct
|
||||
|
||||
/**
|
||||
* Those errors are considered as an attack and your site will be blacklisted during one minute
|
||||
* if you receive one of those errors
|
||||
*/
|
||||
define ("SWEKEY_ERR_BADLY_ENCODED_REQUEST",920);
|
||||
define ("SWEKEY_ERR_INVALID_RND_TOKEN",921);
|
||||
define ("SWEKEY_ERR_DEV_NOT_FOUND",922);
|
||||
|
||||
/**
|
||||
* The last error of an operation is alway put in this global var
|
||||
*/
|
||||
|
||||
global $gSwekeyLastError;
|
||||
$gSwekeyLastError = 0;
|
||||
|
||||
global $gSwekeyLastResult;
|
||||
$gSwekeyLastResult = "<not set>";
|
||||
|
||||
/**
|
||||
* Servers addresses
|
||||
* Use the Swekey_SetXxxServer($server) functions to set them
|
||||
*/
|
||||
|
||||
global $gSwekeyCheckServer;
|
||||
if (! isset($gSwekeyCheckServer))
|
||||
$gSwekeyCheckServer = 'http://auth-check.musbe.net';
|
||||
|
||||
global $gSwekeyRndTokenServer;
|
||||
if (! isset($gSwekeyRndTokenServer))
|
||||
$gSwekeyRndTokenServer = 'http://auth-rnd-gen.musbe.net';
|
||||
|
||||
global $gSwekeyStatusServer;
|
||||
if (! isset($gSwekeyStatusServer))
|
||||
$gSwekeyStatusServer = 'http://auth-status.musbe.net';
|
||||
|
||||
/**
|
||||
* Change the address of the Check server.
|
||||
* If $server is empty the default value 'http://auth-check.musbe.net' will be used
|
||||
*
|
||||
* @param server The protocol and hostname to use
|
||||
* @access public
|
||||
*/
|
||||
function Swekey_SetCheckServer($server)
|
||||
{
|
||||
global $gSwekeyCheckServer;
|
||||
if (empty($server))
|
||||
$gSwekeyCheckServer = 'http://auth-check.musbe.net';
|
||||
else
|
||||
$gSwekeyCheckServer = $server;
|
||||
}
|
||||
|
||||
/**
|
||||
* Change the address of the Random Token Generator server.
|
||||
* If $server is empty the default value 'http://auth-rnd-gen.musbe.net' will be used
|
||||
*
|
||||
* @param server The protocol and hostname to use
|
||||
* @access public
|
||||
*/
|
||||
function Swekey_SetRndTokenServer($server)
|
||||
{
|
||||
global $gSwekeyRndTokenServer;
|
||||
if (empty($server))
|
||||
$gSwekeyRndTokenServer = 'http://auth-rnd-gen.musbe.net';
|
||||
else
|
||||
$gSwekeyRndTokenServer = $server;
|
||||
}
|
||||
|
||||
/**
|
||||
* Change the address of the Satus server.
|
||||
* If $server is empty the default value 'http://auth-status.musbe.net' will be used
|
||||
*
|
||||
* @param server The protocol and hostname to use
|
||||
* @access public
|
||||
*/
|
||||
function Swekey_SetStatusServer($server)
|
||||
{
|
||||
global $gSwekeyStatusServer;
|
||||
if (empty($server))
|
||||
$gSwekeyStatusServer = 'http://auth-status.musbe.net';
|
||||
else
|
||||
$gSwekeyStatusServer = $server;
|
||||
}
|
||||
|
||||
/**
|
||||
* Return the last error.
|
||||
*
|
||||
* @return The Last Error
|
||||
* @access public
|
||||
*/
|
||||
function Swekey_GetLastError()
|
||||
{
|
||||
global $gSwekeyLastError;
|
||||
return $gSwekeyLastError;
|
||||
}
|
||||
|
||||
/**
|
||||
* Return the last result.
|
||||
*
|
||||
* @return The Last Error
|
||||
* @access public
|
||||
*/
|
||||
function Swekey_GetLastResult()
|
||||
{
|
||||
global $gSwekeyLastResult;
|
||||
return $gSwekeyLastResult;
|
||||
}
|
||||
|
||||
/**
|
||||
* Send a synchronous request to the server.
|
||||
* This function manages timeout then will not block if one of the server is down
|
||||
*
|
||||
* @param url The url to get
|
||||
* @param response_code The response code
|
||||
* @return The body of the response or "" in case of error
|
||||
* @access private
|
||||
*/
|
||||
function Swekey_HttpGet($url, &$response_code)
|
||||
{
|
||||
global $gSwekeyLastError;
|
||||
$gSwekeyLastError = 0;
|
||||
global $gSwekeyLastResult;
|
||||
$gSwekeyLastResult = "<not set>";
|
||||
|
||||
// you should install the pecl_http to be able to handle timeouts
|
||||
if (class_exists('HttpRequest'))
|
||||
{
|
||||
// retry if one of the server is down
|
||||
for ($num=1; $num <= 3; $num++ )
|
||||
{
|
||||
$r = new HttpRequest($url);
|
||||
$options = array('timeout' => '3');
|
||||
|
||||
if (substr($url,0, 6) == "https:")
|
||||
{
|
||||
$sslOptions = array();
|
||||
$sslOptions['verifypeer'] = true;
|
||||
|
||||
$capath = __FILE__;
|
||||
$name = strrchr($capath, '/');
|
||||
if (empty($name)) // windows
|
||||
$name = strrchr($capath, '\\');
|
||||
$capath = substr($capath, 0, strlen($capath) - strlen($name) + 1).'musbe-ca.crt';
|
||||
|
||||
if (file_exists($capath))
|
||||
$sslOptions['capath'] = $capath;
|
||||
|
||||
$options['ssl'] = $sslOptions;
|
||||
}
|
||||
|
||||
$r->setOptions($options);
|
||||
|
||||
// try
|
||||
{
|
||||
$reply = $r->send();
|
||||
$res = $reply->getBody();
|
||||
$info = $r->getResponseInfo();
|
||||
$response_code = $info['response_code'];
|
||||
if ($response_code != 200)
|
||||
{
|
||||
$gSwekeyLastError = $response_code;
|
||||
error_log("SWEKEY_ERROR:Error ".$gSwekeyLastError." getting ".$url);
|
||||
return "";
|
||||
}
|
||||
|
||||
|
||||
$gSwekeyLastResult = $res;
|
||||
return $res;
|
||||
}
|
||||
// catch (HttpException $e)
|
||||
// {
|
||||
// error_log("SWEKEY_WARNING:HttpException ".$e." getting ".$url);
|
||||
// }
|
||||
}
|
||||
|
||||
$response_code = 408; // Request Timeout
|
||||
$gSwekeyLastError = $response_code;
|
||||
error_log("SWEKEY_ERROR:Error ".$gSwekeyLastError." getting ".$url);
|
||||
return "";
|
||||
}
|
||||
|
||||
global $http_response_header;
|
||||
$res = @file_get_contents($url);
|
||||
$response_code = substr($http_response_header[0], 9, 3); //HTTP/1.0
|
||||
if ($response_code == 200)
|
||||
{
|
||||
$gSwekeyLastResult = $res;
|
||||
return $res;
|
||||
}
|
||||
|
||||
$gSwekeyLastError = $response_code;
|
||||
error_log("SWEKEY_ERROR:Error ".$response_code." getting ".$url);
|
||||
return "";
|
||||
}
|
||||
|
||||
/**
|
||||
* Get a Random Token from a Token Server
|
||||
* The RT is a 64 vhars hexadecimal value
|
||||
* You should better use Swekey_GetFastRndToken() for performance
|
||||
* @access public
|
||||
*/
|
||||
function Swekey_GetRndToken()
|
||||
{
|
||||
global $gSwekeyRndTokenServer;
|
||||
return Swekey_HttpGet($gSwekeyRndTokenServer.'/FULL-RND-TOKEN', $response_code);
|
||||
}
|
||||
|
||||
/**
|
||||
* Get a Half Random Token from a Token Server
|
||||
* The RT is a 64 vhars hexadecimal value
|
||||
* Use this value if you want to make your own Swekey_GetFastRndToken()
|
||||
* @access public
|
||||
*/
|
||||
function Swekey_GetHalfRndToken()
|
||||
{
|
||||
global $gSwekeyRndTokenServer;
|
||||
return Swekey_HttpGet($gSwekeyRndTokenServer.'/HALF-RND-TOKEN', $response_code);
|
||||
}
|
||||
|
||||
/**
|
||||
* Get a Half Random Token
|
||||
* The RT is a 64 vhars hexadecimal value
|
||||
* This function get a new random token and reuse it.
|
||||
* Token are refetched from the server only once every 30 seconds.
|
||||
* You should always use this function to get half random token.
|
||||
* @access public
|
||||
*/
|
||||
function Swekey_GetFastHalfRndToken()
|
||||
{
|
||||
$res = "";
|
||||
|
||||
// We check if we have a valid RT is the session
|
||||
if (isset($_SESSION['rnd-token-date']))
|
||||
if (time() - $_SESSION['rnd-token-date'] < 30)
|
||||
$res = $_SESSION['rnd-token'];
|
||||
|
||||
// If not we try to get it from a temp file (PHP >= 5.2.1 only)
|
||||
if (strlen($res) != 32)
|
||||
{
|
||||
if (function_exists('sys_get_temp_dir') )
|
||||
{
|
||||
$tempdir = sys_get_temp_dir();
|
||||
$modif = filemtime($tempdir."/swekey-rnd-token");
|
||||
if ($modif != false)
|
||||
if (time() - $modif < 30)
|
||||
{
|
||||
$res = @file_get_contents($tempdir."/swekey-rnd-token");
|
||||
if (strlen($res) != 32)
|
||||
$res = "";
|
||||
else
|
||||
{
|
||||
$_SESSION['rnd-token'] = $res;
|
||||
$_SESSION['rnd-token-date'] = $modif;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// If we don't have a valid RT here we have to get it from the server
|
||||
if (strlen($res) != 32)
|
||||
{
|
||||
$res = substr(Swekey_GetHalfRndToken(), 0, 32);
|
||||
$_SESSION['rnd-token'] = $res;
|
||||
$_SESSION['rnd-token-date'] = time();
|
||||
if (isset($tempdir))
|
||||
{
|
||||
$file = fopen ($tempdir."/swekey-rnd-token" , "w");
|
||||
@fwrite($file, $res);
|
||||
@fclose($file);
|
||||
}
|
||||
}
|
||||
|
||||
return $res."00000000000000000000000000000000";
|
||||
}
|
||||
|
||||
/**
|
||||
* Get a Random Token
|
||||
* The RT is a 64 vhars hexadecimal value
|
||||
* This function generates a unique random token for each call but call the
|
||||
* server only once every 30 seconds.
|
||||
* You should always use this function to get random token.
|
||||
* @access public
|
||||
*/
|
||||
function Swekey_GetFastRndToken()
|
||||
{
|
||||
$res = Swekey_GetFastHalfRndToken();
|
||||
if (strlen($res) == 64)
|
||||
return substr($res, 0, 32).strtoupper(md5("Musbe Authentication Key" + mt_rand() + date(DATE_ATOM)));
|
||||
|
||||
return "";
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Checks that an OTP generated by a Swekey is valid
|
||||
*
|
||||
* @param id The id of the swekey
|
||||
* @param rt The random token used to generate the otp
|
||||
* @param otp The otp generated by the swekey
|
||||
* @return true or false
|
||||
* @access public
|
||||
*/
|
||||
function Swekey_CheckOtp($id, $rt, $otp)
|
||||
{
|
||||
global $gSwekeyCheckServer;
|
||||
$res = Swekey_HttpGet($gSwekeyCheckServer.'/CHECK-OTP/'.$id.'/'.$rt.'/'.$otp, $response_code);
|
||||
return $response_code == 200 && $res == "OK";
|
||||
}
|
||||
|
||||
/**
|
||||
* Values that are associated with a key.
|
||||
* The following values can be returned by the Swekey_GetStatus() function
|
||||
*/
|
||||
define ("SWEKEY_STATUS_OK",0);
|
||||
define ("SWEKEY_STATUS_NOT_FOUND",1); // The key does not exist in the db
|
||||
define ("SWEKEY_STATUS_INACTIVE",2); // The key has never been activated
|
||||
define ("SWEKEY_STATUS_LOST",3); // The user has lost his key
|
||||
define ("SWEKEY_STATUS_STOLLEN",4); // The key was stolen (typo kept for backward comp)
|
||||
define ("SWEKEY_STATUS_STOLEN",4); // The key was stolen
|
||||
define ("SWEKEY_STATUS_FEE_DUE",5); // The annual fee was not paid
|
||||
define ("SWEKEY_STATUS_OBSOLETE",6); // The hardware is no longer supported
|
||||
define ("SWEKEY_STATUS_UNKOWN",201); // We could not connect to the authentication server
|
||||
|
||||
/**
|
||||
* Values that are associated with a key.
|
||||
* The Javascript Api can also return the following values
|
||||
*/
|
||||
define ("SWEKEY_STATUS_REPLACED",100); // This key has been replaced by a backup key
|
||||
define ("SWEKEY_STATUS_BACKUP_KEY",101); // This key is a backup key that is not activated yet
|
||||
define ("SWEKEY_STATUS_NOTPLUGGED",200); // This key is not plugged in the computer
|
||||
|
||||
|
||||
/**
|
||||
* Return the text corresponding to the integer status of a key
|
||||
*
|
||||
* @param status The status
|
||||
* @return The text corresponding to the status
|
||||
* @access public
|
||||
*/
|
||||
function Swekey_GetStatusStr($status)
|
||||
{
|
||||
switch($status)
|
||||
{
|
||||
case SWEKEY_STATUS_OK : return 'OK';
|
||||
case SWEKEY_STATUS_NOT_FOUND : return 'Key does not exist in the db';
|
||||
case SWEKEY_STATUS_INACTIVE : return 'Key not activated';
|
||||
case SWEKEY_STATUS_LOST : return 'Key was lost';
|
||||
case SWEKEY_STATUS_STOLLEN : return 'Key was stollen';
|
||||
case SWEKEY_STATUS_FEE_DUE : return 'The annual fee was not paid';
|
||||
case SWEKEY_STATUS_OBSOLETE : return 'Key no longer supported';
|
||||
case SWEKEY_STATUS_REPLACED : return 'This key has been replaced by a backup key';
|
||||
case SWEKEY_STATUS_BACKUP_KEY : return 'This key is a backup key that is not activated yet';
|
||||
case SWEKEY_STATUS_NOTPLUGGED : return 'This key is not plugged in the computer';
|
||||
case SWEKEY_STATUS_UNKOWN : return 'Unknow Status, could not connect to the authentication server';
|
||||
}
|
||||
return 'unknown status '.$status;
|
||||
}
|
||||
|
||||
/**
|
||||
* If your web site requires a key to login you should check that the key
|
||||
* is still valid (has not been lost or stolen) before requiring it.
|
||||
* A key can be authenticated only if its status is SWEKEY_STATUS_OK
|
||||
* @param id The id of the swekey
|
||||
* @return The status of the swekey
|
||||
* @access public
|
||||
*/
|
||||
function Swekey_GetStatus($id)
|
||||
{
|
||||
global $gSwekeyStatusServer;
|
||||
$res = Swekey_HttpGet($gSwekeyStatusServer.'/GET-STATUS/'.$id, $response_code);
|
||||
if ($response_code == 200)
|
||||
return intval($res);
|
||||
|
||||
return SWEKEY_STATUS_UNKOWN;
|
||||
}
|
||||
|
||||
?>
|
@@ -1,9 +0,0 @@
|
||||
<?php
|
||||
|
||||
// This url is triggered when a swekey is unplugged
|
||||
|
||||
parse_str($_SERVER['QUERY_STRING']);
|
||||
session_id($session_to_unset);
|
||||
session_start();
|
||||
session_unset();
|
||||
?>
|
@@ -161,14 +161,6 @@ $cfg['Servers'][$i]['controlpass'] = '';
|
||||
*/
|
||||
$cfg['Servers'][$i]['auth_type'] = 'config';
|
||||
|
||||
/**
|
||||
* File containing Swekey ids and login names (see /contrib);
|
||||
* leave empty to deactivate Swekey hardware authentication
|
||||
*
|
||||
* @global string $cfg['Servers'][$i]['auth_swekey_config']
|
||||
*/
|
||||
$cfg['Servers'][$i]['auth_swekey_config'] = '';
|
||||
|
||||
/**
|
||||
* MySQL user
|
||||
*
|
||||
|
Reference in New Issue
Block a user