Openfire サーバーに接続する XMPP と Smack API に基づいてチャット サーバーを開発しています (私と一緒にこれを開発している友人がホストしています)。
そこで、ほんの数日前にプログラミングを開始し (OS X 10.8 の Netbeans)、今日は接続とログインの側面に取り掛かりました。
ユーザー名 + パスワード :P の正しい選択で完全にログインできますが、無効なログイン試行を処理してアプリにメッセージを表示させ、ユーザーが再試行できるようにする方法がわかりません。
ユーザーがSwing JFormでボタンを押した後に起動する私のコードは次のとおりです。
(注: XMPPConnection オブジェクトは既に別のクラスで作成されており、サーバーへの接続が確立されています。別のクラスからオブジェクトを呼び出していることがわかります)
private void btnIniciarSesionActionPerformed(java.awt.event.ActionEvent evt) {
String Usuario = txtUsuario.getText();
String Password = new String (pwdContrasena.getPassword());
if (Usuario.equals("") || Password.equals("")){
// Missing data
JOptionPane.showMessageDialog(null, "Missing data");
}
else{
//Try to login
try{
Proyecto_chat.conexion.login(Usuario, Password, "x");
}
catch (XMPPException ex){
Logger.getLogger(Ventana_login.class.getName()).log(Level.SEVERE, null, ex);
// Problem
}
if (Proyecto_chat.conexion.isAuthenticated() == true){ //Login has been successful
jLabel1.setVisible(false);
System.out.println("Authenticated as " + Usuario);
JOptionPane.showMessageDialog(null, "Authenticated as " + Usuario);
//Exit login window and carry on
}
else{
JOptionPane.showMessageDialog(null, "login error");
}
}
}
私が得ているその例外で遊ぶべきですか?->
SEVERE: null
SASL authentication DIGEST-MD5 failed: not-authorized:
at org.jivesoftware.smack.SASLAuthentication.authenticate(SASLAuthentication.java:337)
at org.jivesoftware.smack.XMPPConnection.login(XMPPConnection.java:203)
at proyecto_chat.Ventana_login.btnIniciarSesionActionPerformed(Ventana_login.java:159)
at proyecto_chat.Ventana_login.access$100(Ventana_login.java:15)
at proyecto_chat.Ventana_login$2.actionPerformed(Ventana_login.java:73)
at javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:2018)
(...) more lines that I think are not critical for this
アプリケーション内からパスワードを簡単に変更できるように、パスワードはプレーン テキスト (大学のプロジェクトなので問題ありません) で保存されるため、クライアント コンピューターからデータベース (リモート サーバーの PostgreSQL) に接続し、パスワードを確認するだけで済みます。 user&pass が一致する場合は 'conexion.login' を実行しますが、それは... わかります... 間違っています
うまくいかずにウェブを見回した後、私はここに向かい、質問し、寝て、翌朝起きていくつかの提案をすることにしました;)助けていただければ幸いです