2012-04-12 15 views
2

に認証を追加する私はネッティーおよびJavaに全く新しいですが、今日の午後は私がネッティーのtelnetのサンプルに基づいて、チャットサーバを作成するために管理しています。それは素晴らしい作品と私​​は/ 'スラッシュコマンドは、人々が私は現在ctx-> setAttachment(名前)に格納する彼らの名前を設定するようなことを行うことができるように働いている。ネッティーのtelnet例

私はので、私はこのよう自分の名前を得ることができるとそれらを接続するバックエンドデータベースサーバーを持っているが、私は最初の認証に各ユーザーを追加する必要があります。私はもっ​​とスラッシュコマンドでそれを行うことができることを知っている。しかし、イベントチェーンでハンドラを使用してそれを実行できるかどうかを確認したいと思っていました。ユーザーが認証されているかどうかをチェックし、認証されていない場合は認証するロジックを実行するハンドラーを用意します。そして、どういうわけか彼らは認証されて格納します。そして、それらが認証されれば、それは私の現在のチャットハンドラが代わりにその仕事をすることができます。

誰でもこれを行うためのリンクやヒントを提供していただけますか? Nettyの私の知識は今非常に非常に基本的です。前もって感謝します。

答えて

4

本当に依存しています。たとえば、認証を処理し、完了したら削除するカスタムSimpleChannelUpstreamHandlerを持つことができます。このような

何か:

public class AuthHandler extends SimpleChannelUpstreamHandler { 

    @Override 
    public void messageReceived(ChannelHandlerContext ctx, MessageEvent e) throws Exception { 
     if (auth(e)) { 
      // remove handler after auth was done 
      ctx.getPipeline().remove(this); 
     } 
    } 

    // Returns true if auth was successfully 
    private boolean auth(MessageEvent e) { 
     .... 
    } 
} 
+0

が魅力を働きました。私はSimpleChannelHandlerを拡張したハンドラを使用しようとしましたが、メインハンドラへの接続呼び出しを停止しました。それで、私はユーザーセッションの作成を止めました。私はそれを回避するコードを書いていましたが、これはずっと簡単です。どうもありがとう! – mmopy