用户不应使用查询字符串登录

时间:2015-06-12 13:12:49

标签: struts2

我使用登录应用程序,如果userName和密码为空,则验证表单。 现在我发送这样的userName和密码 http://localhost:8080/LoginApp/loginAction.action?userName=jagannath&password=123然后也成功登录,而不是填写login.jsp表单页面。在这种情况下,用户不应该登录。如何使用Struts2来避免它。

1 个答案:

答案 0 :(得分:0)

客户端有两种类型的验证(Html / javascript_和服务器端(Java代码))。 截至目前,您只进行客户端验证。您需要服务器端验证,因为url param不调用javascript验证 - 即您在输入时进行的验证。当传递param时,您需要检查java代码是否有效。下面的示例代码

public class LoginAction extends ActionSupport {

    private String userName;
    private String password;

    public String execute() {
        return SUCCESS;
    }


    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 void validate() {
        if (getUserName().length() == 0) {
            addFieldError("userName", "UserName.required");
        } else if (!getUserName().equals("Arpit")) {
            addFieldError("userName", "Invalid User");
        }
        if (getPassword().length() == 0) {
            addFieldError("password", getText("password.required"));
        }
    }
}

更多详情here