1

私は、alfresco-community-4.0.e、OpenCMIS、およびprimefacesをユーザーインターフェイスとして使用してWebアプリケーションを構築しています。

プログラムで屋外でユーザーを作成する必要があります。次のコードを使用してユーザーを作成しようとしました。

Blockquote 
if (!personService.personExists("tuser1")) {
        personService.createPerson(createDefaultProperties("tuser1", "Test", "User1", "tuser1@localhost", "password"));
        if (logger.isDebugEnabled()) logger.debug("Created tuser1 person");
    }

    if (!personService.personExists("tuser1")) {
        personService.createPerson(createDefaultProperties("tuser1", "Test", "User1", "tuser1@localhost", "password"));
        if (logger.isDebugEnabled()) logger.debug("Created tuser1 person");
    } 

Blockquote

しかし、私は認証の問題に直面しています。

openCMISをスローする屋外認証用のクラスを作成しました。これは、カスタムコンテンツやその他のカスタムアクションを作成するために正常に機能します。

プログラムでユーザーを構築するために、ユーザーまたは他のコードの作成と連携している理由はありますか?

4

1 に答える 1

5

コードはほぼそこにありますが、重要な行が1つ欠落しています。個人を作成するだけでなく、関連する認証も作成する必要があります

あなたはおそらく次のようなものが欲しいでしょう

if (this.authenticationService.authenticationExists(userName) == false)
{
   this.authenticationService.createAuthentication(userName, password.toCharArray());

   PropertyMap ppOne = new PropertyMap(4);
   ppOne.put(ContentModel.PROP_USERNAME, userName);
   ppOne.put(ContentModel.PROP_FIRSTNAME, "firstName");
   ppOne.put(ContentModel.PROP_LASTNAME, "lastName");
   ppOne.put(ContentModel.PROP_EMAIL, userName+"@example.com");
   ppOne.put(ContentModel.PROP_JOBTITLE, "jobTitle");

   this.personService.createPerson(ppOne);
}        
于 2012-09-20T13:12:04.093 に答える