Updated : January 2011
DekiWiki Trusted Authentication
Single Sign Onのために「Trusted Authntiaction」の仕組みを利用しようとしたが、うまく動作しない。
当該ページの以下のコメントと同様の現象
hashinp says:
I tried to login to deki using the correct api key and without a passoword using the
Plug class in dream.php. This is not working,throws http status 401.
$result = $wgDekiPlug->At('users', 'authenticate')->With('apikey','v6sMyQAHqpNiLuv0Cp
UpLpfXG83KeOHI')->With('authprovider', 1)->WithCredentials('admin', '')->Post();
Posted 06:11, 22 Oct 2008
方式
ユーザ名とAPIキーでの認証
現象
401(認証失敗)となる
<?xml-stylesheet type='text/xsl' href='/@api/host/resources/error.xslt'?>
<error>
<status>401</status>
<title>Unauthorized</title>
<message>認証失敗</message>
<uri>http://dekiwiki/@api/deki/users/authenticate</uri>
</error>
ログ
2008-12-03 16:46:59,109 [8] TRACE DekiWikiService_default - POST:users/authenticate(Aut
henticating (POST:users/authenticate) Username: 'testuser' pw: '')
2008-12-03 16:46:59,171 [8] INFO DekiWikiService_default - Feature [/deki/users/authen
ticate] executed in 106ms
2008-12-03 16:46:59,187 [8] TRACE MindTouch.Dream.Http.HttpTransport - ResponseHandler:
Status(Unauthorized,POST,http://localhost:8081/deki/users/authenticate)「Authenticate」(AuthBL.cs)で、ユーザ名がみつからないということでエラーとなっている(110行目)ようである。
UserDA.RetrieveUserByname(userName)(104行目)で発行されているSQL文
Query /* UserDA::RetrieveUserByName */
SELECT *
FROM users
WHERE user_name = 'testuser'登録されていないユーザの場合は、新規に作成する仕様かと思うのだが.....?
エラーにせずにそのまま次を実行すれば、問題ないように思うが、C#のビルド環境がないので、未確認。