2012-05-09 7 views
4

は、私はそれはOK限り、私は、ユーザー/パスワードを指定するよう取り組んでいますDotCmis(http://chemistry.apache.org/dotnet/dotcmis.htmlパスワードなしでCmisにアクセスするには?

でCMISを通じてのAlfrescoを照会しようとしています。

パスワードを指定せずにどうすればいいですか?あなたがNTLMのためCmisBindingFactoryを使用することができますが、dotCmisは、私が思うに、それをサポートしていないようだ、私はCurrentIdentityか何かを使用したいのですが、私がすることはできません... Apacheドキュメントを通じて

parameters[SessionParameter.BindingType] = BindingType.AtomPub; 
parameters[SessionParameter.AtomPubUrl] = "http://server/alfresco/service/cmis"; 
parameters[SessionParameter.User] = "user"; 
parameters[SessionParameter.Password] = "password"; 

。 私はjava/apacheについて何も知らないので、ここでは非常に迷っています。

達成できますか?または他の図書館がありますか?

本当に大変ありがとうございます!

+0

匿名(ゲスト)リクエストを実行するか、何らかのシングルサインオンマジックを実行しようとしていますか? – Gagravarr

+1

いくつかの魔法SSO !!! – Vincent

答えて

1

DotCmisにパッチを提出し、最新のビルドがNtlmで動作するようになりました。 これは私の側でAlfrescoでテストされました。

申し訳ありませんが、私はここで答えるのに時間がかかりました。

// Parameters. 
Dictionary<string, string> parameters = new Dictionary<string, string>(); 
parameters[SessionParameter.AtomPubUrl] = "http://yourserver:port/alfresco/cmisatom"; // Change this to yours. 
parameters[SessionParameter.BindingType] = BindingType.AtomPub; 
parameters[SessionParameter.AuthenticationProviderClass] = "DotCMIS.Binding.NtlmAuthenticationProvider"; 

// No need for username and password, thanks to NTLM-based SSO (Single Sign On) 
//parameters[SessionParameter.User] = "<username>"; 
//parameters[SessionParameter.Password] = "<password>"; 

SessionFactory factory = SessionFactory.NewInstance(); 
ISession session = factory.GetRepositories(parameters)[0].CreateSession(); 

// List all children of the root folder. 
IFolder rootFolder = session.GetRootFolder(); 
foreach (ICmisObject cmisObject in rootFolder.GetChildren()) 
{ 
    Console.WriteLine(cmisObject.Name); 
} 

AuthenticationProviderClassラインに注意してください。今:-)

サンプルコードは、アウトオブボックスヴィンセントのおかげで、それが動作するはずですので

+0

パッチのためにたくさん!明確にするために、これはNTLMベースのSSO(Alfresco passthru + ldap-ad)用であり、KerberosベースのSSO用ではありません。 –

0

私はCMISに精通していません。あなたのコードから、パラメータがサーバに渡されないように見えます。パラメータを追加して別の方法で行う必要がありますか?たとえば、WS-Securityの(のUsernameToken)で

parameters.add(value, key....); 
+0

ntlmパラメータが必要です。http://chemistry.apache.org/java/0.7.0/maven/apidocs/org/apache/chemistry/opencmis/client/bindings/CmisBindingFactory。html#NTLM_AUTHENTICATION_PROVIDERしかし、それは私がそれを勉強し、それを追加する方法についての知識を持っていない限り、それはdotCMISで実装されていません – Vincent

0

はデフォルトで有効になっており、ユーザ名 とパスワードが提供されなければなりません。

私はここでそれを確認するCMIS

に精通していないですWS-Securityを無効にしてください。..

https://svn.apache.org/repos/infra/websites/production/chemistry/content/opencmis-client-bindings.html

+0

私はあなたがそれを行うことはできませんと私は手動でwebserviceを介してログインすることはできませんどちらか – Vincent

2

DotCMIS 0.5がリリースされました。
ユーザ名とパスワードを定義しないようにしてください。そうしないと、動作しません。

Full working sample C# solution

関連する問題