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