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