تم النشر منذ 19 Jun 2014 (معدل) مرحبا أبحث عن كود مكتوب بالـ JSF اقدر عن طريقه عمل log in انه اذا كانت اسم المستخدم وكلمة المرور صحيحة فانه يحولني الى الصفحة المطلوبة هل يعرف احد كيف تم تعديل 19 Jun 2014 بواسطه ahmadoovic 0 شارك هذا الرد رابط المشاركة شارك الرد من خلال المواقع ادناه
0 قام بالرد منذ 19 Jun 2014 المسألة هنا ليست JSF أو غيرها انما الجهد الحقيقي هو كود الجافا الذي يعمل مقارنة بين اسم المستخدم وكلمة المرور فاذا كانا صحيحين سيمررك للصفحة والا فسيطلب منك التحقق منهما 1 شارك هذا الرد رابط المشاركة شارك الرد من خلال المواقع ادناه
0 قام بالرد منذ 21 Jun 2014 هل لديك أخي طريقة الحل 0 شارك هذا الرد رابط المشاركة شارك الرد من خلال المواقع ادناه
0 قام بالرد منذ 21 Jun 2014 سوف أكتب الكود واقدمه لك قريبا 0 شارك هذا الرد رابط المشاركة شارك الرد من خلال المواقع ادناه
0 قام بالرد منذ 21 Jun 2014 http://programming-simplified.com/ دى مجموعه كورسات فى منها مجانى. سوف تجد ,ejb,jba jsf مجانى . اول ثلاث محاضرات فى jsf سيمكنك من عمل ما تطلبه 0 شارك هذا الرد رابط المشاركة شارك الرد من خلال المواقع ادناه
0 قام بالرد منذ 23 Jun 2014 (معدل) في البداية ننشا صنف جافا ليتحكم بالبيانات التي سيقوم المستخدم باداخالها (اسم المستخدم وكلمة المرور) حيث سيقوم بفحصهم ومقارنتهم باسم المستخدم وكلمة المرور الخاصة به في قاعدة البيانات.فاذا كانت كلمة المرور واسم المستخدم صحيحين عندئذ سيتم تحويلي الى الصفحة التي اريدهاimport java.sql.Connection;import java.sql.DriverManager;import java.sql.ResultSet;import java.sql.SQLException;import java.sql.Statement;import java.util.logging.Level;import java.util.logging.Logger;import javax.faces.application.FacesMessage;import javax.faces.bean.ManagedBean;import javax.faces.bean.RequestScoped;import javax.faces.context.FacesContext;/**** @author ralmoued*/@ManagedBean(name = "admin")@RequestScopedpublic class Administrator {private static final long serialVersionUID = 1L;private transient Connection con;private String username;private String password;private String message;/*** Initialisiert Mysql-Verbindung*/public Administrator() {try {Class.forName("com.mysql.jdbc.Driver");} catch (SQLException ex) {Logger.getLogger(Administrator.class.getName()).log(Level.SEVERE, null, ex);} catch (ClassNotFoundException ex) {Logger.getLogger(Administrator.class.getName()).log(Level.SEVERE, null, ex);}}public String getUsername() {return username;}public void setUsernamee(String username) {this.username= username;}public String getPassword() {return password;}public void setPassword(String password) {this.password = password;}public String getMessage() {return message;}public void setMessage(String message) {this.message = message;}/*** check if the username and password are correct.* you must have a table (administrator )in database (dbase)* with tow attribute Username and Password.* @return true if die login done successfully.*/public boolean checkLogin() {boolean login = false;try (Statement stmt = con.createStatement() [;)] {String sql = "SELECT * FROM dbase.administrator "+ "Where Username='" + username + "' "+ "AND Password='" + password + "' ";ResultSet result = stmt.executeQuery(sql);// If this user already existif (result.next()) {System.out.println("Hello " + username);login = true;} else {System.out.println("Error");setMessage("username or Password is not correct ");}} catch (SQLException e) {e.printStackTrace();}return login;}/*** If username and password both are correct* @return Bearbeitungsseite.*/public String bearbeitungsseite() {boolean check = checkLogin();while (check) {return "myPage?faces-redirect=true";}return null;}}ننشأ صفحة نسميها login.xhtml<?xml version='1.0' encoding='UTF-8' ?><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml" xmlns:h="http://java.sun.com/jsf/html" xmlns:p="http://primefaces.org/ui" xmlns:ui="http://xmlns.jcp.org/jsf/facelets" xmlns:f="http://xmlns.jcp.org/jsf/core"> <h:head> <title>Login</title> </h:head> <h:body> <div style="width:1100px; border-width:1.5px; border-color:black; border-radius: 20px; border-style:solid; margin-bottom: 20px; margin-top: 20px; margin-left: 50px; margin-right: 50px; background-color: #D2B48C"> <h:form id="form" style="margin-left: 50px; margin-right: 50px; margin-top: 20px; margin-bottom: 20px"> <h2>Please enter the user name and password</h2> <table> <tr> <td>Username:</td> <td><p:inputText id="userName" required="true" label="userName" size="23" value="#{admin.username}" requiredMessage=" Username is required" validatorMessage=" username must be at least 3 characters"> <f:validateRegex for="userName" pattern="(([0-9a-zA-Z]*).{3,})"/> </p:inputText> <p:watermark for="userName" value="Username *" /> <h:message for="userName" style="color:red" /></td> </tr> <tr> <td>Password:</td> <td><p:password id="pwd" value="#{admin.password}" label="Password" size="23" required="true" requiredMessage=" Password is required"> </p:password> <p:watermark for="pwd" value="Password *" /> <h:message for="pwd" style="color:red" /><br/></td> </tr> </table> <table> <tr> <td><p:commandButton value="Log in" action="#{admin.bearbeitungsseite()}" update="@form" style="margin-top: 10px; margin-left: 125px"/></td> </tr> <tr> <tr></tr> <tr></tr> <td><h:outputText value="#{admin.message}" style="color: red;margin-left: 125px"/></td> </tr> </table> </h:form> </h:body></html>بالتوفيق تم تعديل 24 Jun 2014 بواسطه vector_ever 1 شارك هذا الرد رابط المشاركة شارك الرد من خلال المواقع ادناه
0 قام بالرد منذ 13 Jul 2014 في البداية ننشا صنف جافا ليتحكم بالبيانات التي سيقوم المستخدم باداخالها (اسم المستخدم وكلمة المرور) حيث سيقوم بفحصهم ومقارنتهم باسم المستخدم وكلمة المرور الخاصة به في قاعدة البيانات.فاذا كانت كلمة المرور واسم المستخدم صحيحين عندئذ سيتم تحويلي الى الصفحة التي اريدهاimport java.sql.Connection;import java.sql.DriverManager;import java.sql.ResultSet;import java.sql.SQLException;import java.sql.Statement;import java.util.logging.Level;import java.util.logging.Logger;import javax.faces.application.FacesMessage;import javax.faces.bean.ManagedBean;import javax.faces.bean.RequestScoped;import javax.faces.context.FacesContext;/**** @author ralmoued*/@ManagedBean(name = "admin")@RequestScopedpublic class Administrator {private static final long serialVersionUID = 1L;private transient Connection con;private String username;private String password;private String message;/*** Initialisiert Mysql-Verbindung*/public Administrator() {try {Class.forName("com.mysql.jdbc.Driver");} catch (SQLException ex) {Logger.getLogger(Administrator.class.getName()).log(Level.SEVERE, null, ex);} catch (ClassNotFoundException ex) {Logger.getLogger(Administrator.class.getName()).log(Level.SEVERE, null, ex);}}public String getUsername() {return username;}public void setUsernamee(String username) {this.username= username;}public String getPassword() {return password;}public void setPassword(String password) {this.password = password;}public String getMessage() {return message;}public void setMessage(String message) {this.message = message;}/*** check if the username and password are correct.* you must have a table (administrator )in database (dbase)* with tow attribute Username and Password.* @return true if die login done successfully.*/public boolean checkLogin() {boolean login = false;try (Statement stmt = con.createStatement() [;)] {String sql = "SELECT * FROM dbase.administrator "+ "Where Username='" + username + "' "+ "AND Password='" + password + "' ";ResultSet result = stmt.executeQuery(sql);// If this user already existif (result.next()) {System.out.println("Hello " + username);login = true;} else {System.out.println("Error");setMessage("username or Password is not correct ");}} catch (SQLException e) {e.printStackTrace();}return login;}/*** If username and password both are correct* @return Bearbeitungsseite.*/public String bearbeitungsseite() {boolean check = checkLogin();while (check) {return "myPage?faces-redirect=true";}return null;}}ننشأ صفحة نسميها login.xhtml<?xml version='1.0' encoding='UTF-8' ?><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml" xmlns:h="http://java.sun.com/jsf/html" xmlns:p="http://primefaces.org/ui" xmlns:ui="http://xmlns.jcp.org/jsf/facelets" xmlns:f="http://xmlns.jcp.org/jsf/core"> <h:head> <title>Login</title> </h:head> <h:body> <div style="width:1100px; border-width:1.5px; border-color:black; border-radius: 20px; border-style:solid; margin-bottom: 20px; margin-top: 20px; margin-left: 50px; margin-right: 50px; background-color: #D2B48C"> <h:form id="form" style="margin-left: 50px; margin-right: 50px; margin-top: 20px; margin-bottom: 20px"> <h2>Please enter the user name and password</h2> <table> <tr> <td>Username:</td> <td><p:inputText id="userName" required="true" label="userName" size="23" value="#{admin.username}" requiredMessage=" Username is required" validatorMessage=" username must be at least 3 characters"> <f:validateRegex for="userName" pattern="(([0-9a-zA-Z]*).{3,})"/> </p:inputText> <p:watermark for="userName" value="Username *" /> <h:message for="userName" style="color:red" /></td> </tr> <tr> <td>Password:</td> <td><p:password id="pwd" value="#{admin.password}" label="Password" size="23" required="true" requiredMessage=" Password is required"> </p:password> <p:watermark for="pwd" value="Password *" /> <h:message for="pwd" style="color:red" /><br/></td> </tr> </table> <table> <tr> <td><p:commandButton value="Log in" action="#{admin.bearbeitungsseite()}" update="@form" style="margin-top: 10px; margin-left: 125px"/></td> </tr> <tr> <tr></tr> <tr></tr> <td><h:outputText value="#{admin.message}" style="color: red;margin-left: 125px"/></td> </tr> </table> </h:form> </h:body></html>بالتوفيقلكن ماذا اذا ادخل المستخدم الرابط "myPage" بدون المرور عبر الـlogin.xhmlt ؟كيف اتحقق من تسجيل دخول قبل فتح الصفح؟ 0 شارك هذا الرد رابط المشاركة شارك الرد من خلال المواقع ادناه
0 قام بالرد منذ 13 Jul 2014 لكن ماذا اذا ادخل المستخدم الرابط "myPage" بدون المرور عبر الـlogin.xhmlt ؟كيف اتحقق من تسجيل دخول قبل فتح الصفح؟في هذه الحالة نستعمل filter 0 شارك هذا الرد رابط المشاركة شارك الرد من خلال المواقع ادناه
0 قام بالرد منذ 14 Jul 2014 هذى كود filter وايظا ارسلت لك الكود الكاملا import java.io.IOException;import javax.servlet.Filter;import javax.servlet.FilterChain;import javax.servlet.FilterConfig;import javax.servlet.ServletException;import javax.servlet.ServletRequest;import javax.servlet.ServletResponse;import javax.servlet.annotation.WebFilter;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletResponse; /* * To change this license header, choose License Headers in Project Properties. * To change this template file, choose Tools | Templates * and open the template in the editor. *//** * * @author revo */@WebFilter(filterName = "filter", urlPatterns = {"*.xhtml"})public class filter implements Filter { @Override public void init(FilterConfig filterConfig) throws ServletException { } @Override public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException { HttpServletRequest request1 = (HttpServletRequest) request; HttpServletResponse response1 = (HttpServletResponse) response; String url = request1.getRequestURI(); System.out.println(url); user u = (user) request1.getSession().getAttribute("user"); if (u == null && url.contains("home.xhtml")) { System.out.println("1"); response1.sendRedirect("index.xhtml"); } else if (u != null&&!u.isIsLog() && url.contains("home.xhtml")) { System.out.println("2"); response1.sendRedirect("index.xhtml"); } else if (u != null&&u.isIsLog() && (url.contains("index.xhtml")||url.equals("/Filter/"))) { System.out.println("3"); response1.sendRedirect("home.xhtml"); } else { System.out.println("4"); chain.doFilter(request, response); } } @Override public void destroy() { } } Filter.rar 1 شارك هذا الرد رابط المشاركة شارك الرد من خلال المواقع ادناه
0 قام بالرد منذ 18 Jul 2014 (معدل) لكن ماذا اذا ادخل المستخدم الرابط "myPage" بدون المرور عبر الـlogin.xhmlt ؟كيف اتحقق من تسجيل دخول قبل فتح الصفح؟نعم حينئذ تحتاج عمل Filter لكن أيضا يجب اضافة اخرى لملف الـ web.xml تم تعديل 19 Jul 2014 بواسطه vector_ever 1 شارك هذا الرد رابط المشاركة شارك الرد من خلال المواقع ادناه
0 قام بالرد منذ 19 Jul 2014 (معدل) هذه الشيفرة المصدرية للحيلولة دون قدرة السمتحدم على الولوج الى الصفحة المحمية myPage بدون ان يعمل log in يعني حتى لو طلب myPage عن طريق الـ URL مباشرة فانه لن ينجح وسيتم اعادته الى صفحة التسجيل loginpackage packageName;import java.io.IOException;import javax.servlet.Filter;import javax.servlet.FilterChain;import javax.servlet.FilterConfig;import javax.servlet.ServletException;import javax.servlet.ServletRequest;import javax.servlet.ServletResponse;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletResponse;/** * * @author ralmoued */public class LoginFilter implements Filter { @Override public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException { // Get the loginBean from session attribute Login loginBean = (Login)((HttpServletRequest)request).getSession().getAttribute("admin"); // System.out.println("loginBean value: " + loginBean); if (loginBean == null || !loginBean.isLoggedIn()) { String contextPath = ((HttpServletRequest)request).getContextPath(); ((HttpServletResponse)response).sendRedirect(contextPath + "/login.xhtml"); } chain.doFilter(request, response); } @Override public void init(FilterConfig config) throws ServletException { } @Override public void destroy() { } } نذهب لملف web.xml ونقوم باضافة مايلي:<!-- Login filter --> <filter> <filter-name>LoginFilter</filter-name> <filter-class>packageName.LoginFilter</filter-class> </filter> <!-- Set the login filter to secure all the pages in the /mySecurePage/* path of the application --> <filter-mapping> <filter-name>LoginFilter</filter-name> <url-pattern>/mySecurePage/*</url-pattern> <dispatcher>REQUEST</dispatcher> <dispatcher>FORWARD</dispatcher> </filter-mapping>mySecurePages الموجودة في <url-pattern>/mySecurePage/*</url-pattern> هو عبارة عن المجلد الذي يجوي كل الصفحات التي أستطيع المحمية التي لا أستطيع الولوج اليها بدون تسجيل Log in تم تعديل 19 Jul 2014 بواسطه vector_ever 1 شارك هذا الرد رابط المشاركة شارك الرد من خلال المواقع ادناه
0 قام بالرد منذ 19 Jul 2014 (معدل) الفخ الآخر الذي يقع فيه الكثيرون هو انه حتى لو كان لدي فلتر يمنعني من الوصولو المباشر عن طريق الـ URL للصفحة المحمية myPage هو انني لو قمت بتسجيل الخروج log out وتم تحويلي بشكل اوتوماتيكي الى اي صفحة ثانية فانه يمكنني بكل سهولة العودة الى myPage عن طريق زر back الموجود في متصفح الانترنت وقتها تصبح عملية تسجيل الخروج غير مفيدة ويبقى العملية كلها غير مؤمنة. الحل هو ازالة الكاش وقتها لن يكون بمقدار زر back ان يعود بنا الى حيث كنا وهذا هو المطلوبpackage packageName;import java.io.IOException;import javax.servlet.ServletException;import javax.servlet.ServletResponse;import javax.servlet.ServletRequest;import javax.servlet.Filter;import javax.servlet.FilterConfig;import javax.servlet.FilterChain;import javax.servlet.http.HttpServletResponse;/** * * @author ralmoued */public class NoCacheFilter implements Filter { private FilterConfig filterConfig = null; @Override public void init(FilterConfig filterConfig) { this.filterConfig = filterConfig; } @Override public void destroy() { this.filterConfig = null; } /*The real work happens in doFilter(). The reference to the response object is of type ServletResponse, so we need to cast it to HttpServletResponse: */ @Override public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException { HttpServletResponse httpResponse = (HttpServletResponse) response; /*Then we just set the appropriate headers and invoke the next filter in the chain: */ httpResponse.setHeader("Cache-Control", "no-cache"); httpResponse.setDateHeader("Expires", 0); httpResponse.setHeader("Pragma", "No-cache"); chain.doFilter(request, response); /* this method calls other filters in the order they are written in web.xml */ }}بعد ذلك يجب تعريف هذا الكود في ملف الـ web.xml حيث نقوم باضافة مايلي<!-- Cahe filter --> <filter> <display-name>NoCacheFilter</display-name> <filter-name>NoCacheFilter</filter-name> <filter-class>packageName.NoCacheFilter</filter-class> </filter> <filter-mapping> <filter-name>NoCacheFilter</filter-name> <url-pattern>/mySecurePages/*</url-pattern> <dispatcher>REQUEST</dispatcher> <dispatcher>FORWARD</dispatcher> </filter-mapping>من الضروري والمهم جدا معرفة ان هذه العملية حساسة ويجب ان تتم بدقة والا فاننا سنقوم بحذف الكاش من كل الصفحات وهذا ما لا نريده...نحن نريد حذف الكاش فقط من صفحات معينة بعد عملية تسجيل الخروجوهذا يتم عن طريق الأمر التالي الموجود في ملف الـ web.xml <url-pattern>/mySecurePages/*</url-pattern>حيث حددنا كل الصفحات الموجودة تحت المسار mySecurePages سوف يتم حذف الكاش منها ولن تكون قادرا على العودة اليها بعد تسجيل الخروج حتى لو استعملت زرة العودة للخلف back في متصفح الانترنت تم تعديل 19 Jul 2014 بواسطه vector_ever 1 شارك هذا الرد رابط المشاركة شارك الرد من خلال المواقع ادناه
0 قام بالرد منذ 19 Jul 2014 حل أكثر من رائع ما شاء اللهشكراً لك أخي على الايضاح 0 شارك هذا الرد رابط المشاركة شارك الرد من خلال المواقع ادناه
تم النشر منذ (معدل)
مرحبا
أبحث عن كود مكتوب بالـ JSF اقدر عن طريقه عمل log in انه اذا كانت اسم المستخدم وكلمة المرور صحيحة فانه يحولني الى الصفحة المطلوبة
هل يعرف احد كيف
تم تعديل بواسطه ahmadoovicشارك هذا الرد
رابط المشاركة
شارك الرد من خلال المواقع ادناه