الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

كيف أصل إلى الـ session objects من خلال هذا الـفورم؟

بدأه JavaPorgrammer في 10 ديسمبر 2010 · 4 رد · 573 مشاهدة · في JavaEE
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

السلام عليكم ورحمة الله..

كما هو واضح في عنوان الموضوع : كيف أصل إلى الـ session objects خلال هذا الفورم!

صفحة تسجيل الدخول ، مرتبطة في السيرفر tomcat ، وعملها تفحص المستخدم والصلاحيات المسندة إليه من خلال Realm المعرفة في السيرفر مسبقا!

"الإجراء هنا جاهز ومرتبط بالسيرفر ، أعني أن لا أكتب الإجراء برمجيا .. : j_security_check تفي بالغرض"

<form id="login" onsubmit="return validate_form ( );" method="POST" action="j_security_check">
 <table width="443px" height="316px" border="0" cellpadding="2" cellspacing="2" background="../styleImg/border.jpg">
    <tr>
      <td height="47"><div align="center"><span class="style16">user name or email : </span></div></td>
    </tr>
    <tr>
      <td height="34" align="center"><label>
              <input id="username" align="center" name="j_username" type="text" size="40" />
      </label></td>
    </tr>
    <tr>
      <td height="50"><div align="center"><span class="style16">password : </span></div></td>
    </tr>
    <tr>
      <td height="47" align="center"><input align="center" name="j_password" type="password" size="40" /></td>
    </tr>
    <tr>
      <td height="23" align="center"><div align="center"><span class="style14">forgot password? | sign up </span></div></td>
    </tr>
    <tr>
      <td align="center">
        <label>
            <input type="reset" name="reset" value="Reset" style="width: 120px;" />
          </label>
          <input type="submit" name="submit" value="Login" style="width: 120px;" />
        <label></label>

      </td>
    </tr>
  </table>

      </form>

والصفحة الهدف :

<c:out value="${param.username}"/>

النتيجة هي : null

:wacko:

عفواً أحبتي انقطاعي بسبب الدراسة دعواتكم بالتوفيق..

{ لا ينال العلم مستحٍ ولا مستكبر }

#2

ماذا تريد بالتحديد من ال session ؟؟

هل تريج بعدما يتم تسجيل الدخول حفظ أسم المستخدم في ال session للإستخدام لاحقا؟؟؟؟؟

#3

نعم

عفواً أحبتي انقطاعي بسبب الدراسة دعواتكم بالتوفيق..

{ لا ينال العلم مستحٍ ولا مستكبر }

#4

حقيقه لم أواجه مثل هذا السيناريو من قبل ....

لكن قمت بالبحث على الإنترنت و وجد الرابط التالي:

http://markmail.org/message/ufkw4p46sfm3ooer#query:extend%20j_security_check+page:1+mid:5dwmilnbhopiotip+state:results

و ملخصه كالتالي:

من المفترض أنك لو إستدعيد الداله:

HttpServletReuqest.getUserPrincipal

قبل عملية ال authentication ... فإنها سترجع NULL أما بعد عملية الauthentication ... فإنها سترجع object ملئ ببيانات المستخدم ..

إذن فلو قمت بعمل Filter على كل ال Servlets ... يقوم بعمل التالي:

1- يفحص ال session يبحث عن user .. إن وجده كان بها .. وإلا فإنه ينظر إلى ناتج الداله بالأعلى

2- إن وجدت NULL ... فمعنها أنه لم يتم علمية authentication ... و إلا .. فمعناه أنه تمت عملية ال auth بنجاح .. فبناء على ذلك يقوم بتخزين المستخدم في ال session ... و يقوم بإكمال معالجة الطلب ..

و كما في الرابط بالأعلى ... فإن السائل لا يريد أن يضع filter على كل ال Servlets .. لأن هذا شئ سئ جدا ... و يسائل .. هل يمكن وضع Filter حول ال j_security_check Servlet فقط؟

حقيقه أنا لا أعلم .....

1
#5

الأخ هويدي ،، أشكرك جزيل الشكر على تفاعلك معي ، ودائما تحرجنا بكرمك زادك الله من فضله :blush:

بحمد الله تم حل المشكلة ، من خلال هذا الأمر تستطيع الوصول إلى اسم المستخدم :

   <%=
request.getUserPrincipal().getName()
   %>

المصدر كتاب :

code notes for

J2EE

EJB, JDBC, JSP, and Servlets

Edited by Gregor y B r i l l

تحياتي للجميع

عفواً أحبتي انقطاعي بسبب الدراسة دعواتكم بالتوفيق..

{ لا ينال العلم مستحٍ ولا مستكبر }

مواضيع مشابهة