0,0 → 1,73 |
package ch.ffhs.webE.action; |
|
import javax.servlet.http.HttpServletRequest; |
|
import org.apache.struts2.components.ActionError; |
import org.apache.struts2.dispatcher.mapper.ActionMapping; |
|
import com.opensymphony.xwork2.ActionSupport; |
|
public class UserForm extends ActionSupport { |
|
private static final long serialVersionUID = 2574972467250197244L; |
|
private String username; |
private String password; |
private String firstname; |
private String lastname; |
private boolean admin; |
|
public void reset(ActionMapping mapping, HttpServletRequest request) { |
this.username = null; |
this.password = null; |
this.firstname = null; |
this.lastname = null; |
this.admin = false; |
} |
|
public void validate() { |
|
} |
|
|
// Getter and setters |
public String getUsername() { |
return username; |
} |
|
public void setUsername(String username) { |
this.username = username; |
} |
|
public String getPassword() { |
return password; |
} |
|
public void setPassword(String password) { |
this.password = password; |
} |
|
public String getFirstname() { |
return firstname; |
} |
|
public void setFirstname(String firstname) { |
this.firstname = firstname; |
} |
|
public String getLastname() { |
return lastname; |
} |
|
public void setLastname(String lastname) { |
this.lastname = lastname; |
} |
|
public boolean isAdmin() { |
return admin; |
} |
|
public void setAdmin(boolean admin) { |
this.admin = admin; |
} |
} |
Property changes: |
Added: svn:mime-type |
## -0,0 +1 ## |
+text/plain |
\ No newline at end of property |
Index: LoginAction.java |
=================================================================== |
--- LoginAction.java (revision 19) |
+++ LoginAction.java (revision 20) |
@@ -1,10 +1,13 @@ |
package ch.ffhs.webE.action; |
|
+import java.util.Map; |
+ |
import ch.ffhs.webE.dao.UserDAO; |
import ch.ffhs.webE.dao.UserDAOImpl; |
import ch.ffhs.webE.domain.User; |
|
+import com.opensymphony.xwork2.ActionContext; |
import com.opensymphony.xwork2.ActionSupport; |
import com.opensymphony.xwork2.ModelDriven; |
|
@@ -14,28 +17,60 @@ |
private User user = new User(); |
private UserDAO userDAO = new UserDAOImpl(); |
|
- |
+ //Form fields |
private String userName ; |
private String pw; |
+ |
+ //Session Object |
+ Map<String, Object> session = ActionContext.getContext().getSession(); |
|
+ |
public LoginAction() { |
} |
|
- public String verifyUser() { |
+ public String doLogin() { |
|
//If password or user name are empty, the login fails. |
if("".equals(getUserName()) || "".equals(getPw()) || getUserName() == null || getPw() == null) { |
return "failed"; |
- } |
+ } |
|
- User u = userDAO.searchUsername(getUserName()); |
+ String verifiedUser = verifyUser(getUserName(), getPw()); |
+ if(verifiedUser.equals("failed")) { |
+ return "failed"; |
+ } else { |
+ |
+ //Put user name, password into session |
+ session.put("username", getUserName()); |
+ session.put("pw", getPw()); |
+ return verifiedUser; |
+ } |
+ } |
+ |
+ public String doLogout() { |
+ //TODO: Kill session content for logout |
+ return SUCCESS; |
+ } |
+ |
+ /** |
+ * Verify user credentials |
+ * @param String username: User name |
+ * @param String password: Password (hashed) |
+ * @return |
+ */ |
+ public String verifyUser(String username, String password) { |
+ //DB Query |
+ User u = userDAO.searchUsername(username); |
|
+ //User does not exist |
if(u == null) |
return "failed"; |
|
- if(!u.getPassword().equals(getPw())) |
+ //User password does not match |
+ if(!u.getPassword().equals(password)) |
return "failed"; |
|
+ //User credentials are fine, check for admin rights |
if(u.isAdmin()) { |
return "admin"; |
} else { |