2011-01-19 19 views
1

私はMISプロジェクトに取り組んでいますが、現在私はログインシステムを作成しています。 私はサーバー側でサーブレットを使用しています。クライアント側でjqueryを使用してajax呼び出しを行っています。ログインしたユーザーのみプライベートページにアクセスすることを許可します

これはajax呼び出しによってログイン状態を最初に確認するログインページです。ユーザーがすでにログインしている場合は、ページの場所が 'services.html'に変更されます。

ときservices.html負荷が私は再びログインステータスをチェックしていますし、ユーザーが ログインしていないならば、私は、コードは次のようになり
document.location='Login.html';

を使用して「login.htmlと」にページの場所を変更しています

$(document).ready(function() { 
$("#login").hide(); 
    $.post("checkLogin",function(xml) { 
    var status = $(xml).find("result").text(); 
    if (status == "yes") { 
     document.location='Login.html'; 
    } 
    else{ 
     // Do Nothing. 
    } 
}); 

今services.htmlページでの問題は、完全なページがブラウザにロードされた後、それは、ログイン状態をチェックすることです。

ログインしていないユーザーが「services.html」ページにアクセスするのを制限する良い方法はありません。このプロジェクトはかなり規模が大きいので、私は 'services.html'のような多くのプライベートページを作成する必要があります。学生情報などにアクセスするための 'stuInfo.html'のように。

誰でも教えてください。

答えて

3

に役立ちます願っています。 JavaScriptはクライアント側で動作し、ディスエーブル、ハッキング、スプーフィングが可能です。あなたのアプリケーションは弱いものであることは望ましくありません。

すべての制限付きページを一部のフォルダに入れます。 /securedを入力し、<url-pattern>/secured/*にマップされたFilterを作成し、doFilter()メソッドでログインしているユーザーの存在を確認します。

例はservlet-filters tag info pageにあります。

+0

ありがとう....本当に役立ちます.... –

0

Spring Securityを参照してください。

ほとんどの場合、フォームベースの認証を使用していますが、HTTP authenticationもサポートしています。

0

認証は、アプリケーションサーバーまたはフレームワークレベルで最も効果的です。 J2EEのコンテナとフレームワーク(上記のSpringのような)は脚の仕事をするので、認証された領域の外にあるページとどのページが存在するかを設定するだけです。

通常のサーブレットは認証などに使用できますが、アプリを拡張する際に問題が発生することに注意してください。サーブレットを使用してそれを行う1つの方法は、すべての特権ページを/loggedin/services.htmlの背後に置くことです。

次に、/ loggedin/...のために定義されたサーブレットがあります。このサーブレットは、セッションで認証パラメータが見つからない場合、またはリクエストを行っている場合にログインページにリダイレクトされます。

あなたは、サーバー側ではなく、クライアント側でこれを確認する必要があり

関連する問題