Rev 33 | Details | Compare with Previous | Last modification | View Log | RSS feed
Rev | Author | Line No. | Line |
---|---|---|---|
18 | moos | 1 | package ch.ffhs.webE.action; |
2 | |||
20 | moos | 3 | import java.util.Map; |
4 | |||
37 | PointedEar | 5 | import ch.ffhs.webE.dao.UserDAO; |
19 | moos | 6 | import ch.ffhs.webE.domain.User; |
7 | |||
33 | PointedEar | 8 | import com.opensymphony.xwork2.Action; |
20 | moos | 9 | import com.opensymphony.xwork2.ActionContext; |
18 | moos | 10 | import com.opensymphony.xwork2.ActionSupport; |
19 | moos | 11 | import com.opensymphony.xwork2.ModelDriven; |
18 | moos | 12 | |
26 | moos | 13 | public class LoginAction extends ActionSupport implements ModelDriven<User> |
14 | { |
||
20 | moos | 15 | |
33 | PointedEar | 16 | private static final long serialVersionUID = 1799753056277211344L; |
17 | private final User user = new User(); |
||
37 | PointedEar | 18 | private final UserDAO userDAO = new UserDAO(); |
18 | moos | 19 | |
33 | PointedEar | 20 | /* Form fields */ |
21 | private String userName; |
||
22 | private String pw; |
||
18 | moos | 23 | |
33 | PointedEar | 24 | /** |
25 | * JSP session object |
||
26 | */ |
||
27 | Map<String, Object> session = ActionContext.getContext().getSession(); |
||
19 | moos | 28 | |
33 | PointedEar | 29 | /** |
30 | * |
||
31 | */ |
||
32 | public LoginAction() |
||
33 | { |
||
34 | } |
||
26 | moos | 35 | |
33 | PointedEar | 36 | public String doLogin() |
37 | { |
||
38 | |||
39 | // If password or user name are empty, the login fails. |
||
40 | if ("".equals(this.getUserName()) || "".equals(this.getPw()) |
||
41 | || this.getUserName() == null || this.getPw() == null) |
||
26 | moos | 42 | { |
33 | PointedEar | 43 | this.addFieldError("userName", "Falscher Username oder Passwort"); |
44 | return Action.ERROR; |
||
26 | moos | 45 | } |
46 | |||
33 | PointedEar | 47 | String verifiedUser = this.verifyUser(this.getUserName(), this.getPw()); |
48 | if (verifiedUser.equals("failed")) |
||
26 | moos | 49 | { |
33 | PointedEar | 50 | this.addFieldError("userName", "Falscher Username oder Passwort"); |
51 | return Action.ERROR; |
||
26 | moos | 52 | } |
33 | PointedEar | 53 | else |
26 | moos | 54 | { |
55 | |||
33 | PointedEar | 56 | // Put user name, password into session |
57 | this.session.put("username", this.getUserName()); |
||
58 | this.session.put("pw", this.getPw()); |
||
59 | return verifiedUser; |
||
60 | } |
||
61 | } |
||
26 | moos | 62 | |
33 | PointedEar | 63 | /** |
64 | * Logout ausf�hren. Zerst�rt die Daten in der Session |
||
65 | * |
||
66 | * @return String |
||
67 | */ |
||
68 | public String doLogout() |
||
69 | { |
||
70 | // Kill Session content |
||
71 | ActionContext.getContext().getSession().clear(); |
||
72 | return Action.SUCCESS; |
||
73 | } |
||
26 | moos | 74 | |
33 | PointedEar | 75 | /** |
76 | * Verify user credentials |
||
77 | * |
||
78 | * @param String |
||
79 | * username: User name |
||
80 | * @param String |
||
81 | * password: Password (hashed) |
||
82 | * @return |
||
83 | */ |
||
84 | public String verifyUser(String username, String password) |
||
85 | { |
||
86 | // DB Query |
||
37 | PointedEar | 87 | User u = this.userDAO.getByUsername(username); |
26 | moos | 88 | |
33 | PointedEar | 89 | // User does not exist |
90 | if (u == null) |
||
26 | moos | 91 | { |
33 | PointedEar | 92 | return Action.ERROR; |
26 | moos | 93 | } |
94 | |||
33 | PointedEar | 95 | // User password does not match |
96 | if (!u.getPassword().equals(password)) |
||
26 | moos | 97 | { |
33 | PointedEar | 98 | return Action.ERROR; |
26 | moos | 99 | } |
100 | |||
33 | PointedEar | 101 | // User credentials are fine, check for admin rights |
102 | if (u.isAdmin()) |
||
26 | moos | 103 | { |
33 | PointedEar | 104 | return "admin"; |
26 | moos | 105 | } |
33 | PointedEar | 106 | else |
26 | moos | 107 | { |
33 | PointedEar | 108 | return "user"; |
26 | moos | 109 | } |
33 | PointedEar | 110 | } |
26 | moos | 111 | |
33 | PointedEar | 112 | public String getUserName() |
113 | { |
||
114 | return this.userName; |
||
115 | } |
||
116 | |||
117 | public void setUserName(String userName) |
||
118 | { |
||
119 | this.userName = userName; |
||
120 | } |
||
121 | |||
122 | public String getPw() |
||
123 | { |
||
124 | return this.pw; |
||
125 | } |
||
126 | |||
127 | public void setPw(String pw) |
||
128 | { |
||
129 | this.pw = pw; |
||
130 | } |
||
131 | |||
132 | @Override |
||
133 | public User getModel() |
||
134 | { |
||
135 | return this.user; |
||
136 | } |
||
18 | moos | 137 | } |