2012-03-09 10 views
1

私はJSP Web開発の初心者です。私は私が達成したいのは、ユーザーが資格情報を提供するとき、標準のログイン制御(例えば、ユーザー名、パスワードのテキストボックス、私のチェックボックスとログインボタンを覚えている)を持っている私のwebapp用のログイン(Login.jsp) Authenticate.jspが呼び出され、資格情報がデータベースと照合されます。正しい場合、そのユーザーのセッションが作成され、資格情報が正しくない場合。私はstatusパラメータは常にチェックされ、それが価値failを与えるとき、私は、このような障害時にユーザーにメッセージUser Name or Password Incorrect!を持っているテキストボックス以下<div>が示されている、login.jspをオンresponse.sendRedirect("./Login.jsp?status=fail");JSPでログインページを実装する優雅な方法

でログインページに戻ってユーザーをリダイレクト。 URLを介してそのようなパラメータを送信することは安全ですか?このようなものを実装するための、より適切な、あるいは標準的な方法は何ですか?また、初めてユーザーがログインページにアクセスしたときに、statusパラメータを検索すると、NullPointerExceptionが送出されます。私は以下のようにパラメータをチェックするためのLogin.jspコード全体を持っています。

try 
    { 
     String stat = request.getParameter("Status"); 
     if(stat.equalsIgnoreCase("fail")) 
      msg = "Invalid Username or Password!"; 
     else 
      msg = " "; 
    } 
    catch(NullPointerException e) 
    { 
     msg = " "; 
    } 
    catch(Exception e) 
    { 
     out.println(e); 
    } 

そして、私が述べたようmsg文字列オブジェクトがその<div>に書いていること。したがって、statusパラメータが見つからない場合は、ユーザーが最初にそのページにアクセスしていると見なされ、間違った資格情報のメッセージは表示されません。

これは実際のシステムではこれがどのように実装されているのかわかりません。

私を訂正します。

ありがとうございました。

注:ウェブ上で同じクエリを検索している間、ほとんどのページでログイン失敗のJSPページが異なっていましたが、そのためには1ページしか保存しません。

答えて

1

専門的な開発を行っている間は、セキュリティフレームワークを使用する方がずっと優れています。 両方Apache Shiro & Spring Securityは、あなたのプロジェクトでセキュリティを実装するための非常に良い候補者です。これまでLogin.jspがアクセスされたとき

+0

私はApache Shiroの概要を調べましたが、間違いなく試してみます。しかし、私はサードパーティ製のフレームワークなしで使用できるソリューションを探しています.Java EE APIだけを使って行うことができます。 – Kushal

+0

フレームワークを使用しないと、実際のアプリケーションで多くの作業を行うことになります –

1

ここにあなたのコード内のString stat = request.getParameter("Status");

statは常にNULLになります。これはこれを実装する正しい方法ではありません。

MVCパターンを提示し、表示する目的でJSPに設定することをお勧めします。要求をリダイレクトするためのServletsとモデルとしてのBeans。ここで

は、いくつかのより詳細な説明の懸念の...

1)分離(SoC)のです。ビュー(jsp)がレンダリングを処理し、Controller(サーブレット)がアプリケーションのフローを処理し、すべての処理を別のクラスセットで処理します。これはMVCの基礎になります。単純なレイアウトのためのウィキペディアの定義を以下に示します。

Model - The model is a collection of Java classes that form a software application 
intended to store, and optionally separate, data. A single front end class that can 
communicate with any user interface (for example: a console, a graphical user interface, 
or a web application). 


View - The view is represented by a Java Server Page, 
with data being transported to the page in the HttpServletRequest or HttpSession. 

Controller - The Controller servlet communicates with the front end of the model and loads the HttpServletRequest or HttpSession with appropriate data, 
before forwarding the HttpServletRequest and Response to the JSP using a RequestDispatcher. 

あなたはLogin.jspから呼び出されるサーブレットを作成する必要があり、その後、あなたがリクエストからパラメータを取得し、credentials.Thenを確認するには、資格情報を確認した後、セッションを維持するなどのタスクを実行します。間違った資格情報が設定されている場合は、サーブレットからLogin.jspにパラメータをリダイレクトするか、ユーザーが認証されると他のページにリダイレクトします。

+0

どのように実装する必要があるのか​​詳しく解説するソースを提供できますか? – Kushal

関連する問題