2016-10-21 15 views
2

Linuxにejabberd16.09をインストールしました。私は、Androidで新しいユーザーを作成するときに、これらのコードを取得する:ejabberd16.09でのcreate userの例外:ACLによって拒否されました

<iq from='hsoft.com' to='[email protected]/Smack' id='T61DB-59' type='error'>   
    <query xmlns='jabber:iq:register'><username>ddk</username> 
    <password>123456</password><registered/></query><error code='403' type='auth'> 
    <forbidden xmlns='urn:ietf:params:xml:ns:xmpp-stanzas'/><text xmlns='urn:ietf:params:xml:ns:xmpp-stanzas'> 
    Denied by ACL</text></error></iq> 

およびLinuxでの私のファイル 'のconf/ejabberd.ymlを':

## To disable in-band registration, replace 'allow' with 'deny'. 
    register: 
    - allow 
    ## Only allow to register from localhost 
    trusted_network: 
    - allow 
    ## Do not establish S2S connections with bad servers 
    ## s2s: 
    ## - deny: 
    ##  - ip: "XXX.XXX.XXX.XXX/32" 
    ## - deny: 
    ##  - ip: "XXX.XXX.XXX.XXX/32" 
    ## - allow 

私のAndroidのコード:

private void XmppRegister(){ 
     AccountManager account = AccountManager.getInstance(con); 
     account.sensitiveOperationOverInsecureConnection(true); 
     try { 
      account.createAccount("ddk".toLowerCase(), "123456"); 
      Log.d("PushTest", "register successfully"); 
     } catch (SmackException.NoResponseException e) { 
      e.printStackTrace(); 
     } catch (XMPPException.XMPPErrorException e) { 
      e.printStackTrace(); 
     } catch (SmackException.NotConnectedException e) { 
      e.printStackTrace(); 
     } 
    } 

私を助けてください!ありがとうございました!

答えて

0

あなたは新しいユーザーを登録している間、デフォルトの設定に戻す、あなたのACLを無効にする

AccountManager.getInstance(connection) 
       .sensitiveOperationOverInsecureConnection(true); 

を追加する必要があります。

AccountManager.getInstance(connection) 
       .sensitiveOperationOverInsecureConnection(false); 
+0

ありがとうございました!しかし私は自分のコードに追加していましたが、それでも "ACLによって拒否されました"。私はressonをkownしない。 – Guardian

関連する問題