Subversion Repositories WebE

Rev

Rev 26 | Rev 33 | Go to most recent revision | Only display areas with differences | Ignore 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