0

我有一个 zk 登录名,这是我的登录名:

<zk>
<window id="Mnos" border="normal" width="320px"
        apply="org.zkoss.bind.BindComposer"
        viewModel="@id('vm') @init('login.Login')">

    Username: <textbox value="@save(vm.username)"/>
    Password: <textbox value="@save(vm.password)" type="password" />
    <button label="submit" onClick="@command('login')" />

</window>
</zk>

这是我的模型:

public class Login {

String username;
String password;

public void setUsername(String username) {
    this.username = username;
}

public void setPassword(String password) {
    this.password = password;
}


@Command
@NotifyChange({"username", "password"})
public void login() {

    Users user = UsersDAO.getUserByEmail(username);
    if(user != null && md5function.MD5(password).equals(user.getPassword())){
            Executions.sendRedirect("/mainWindow.zul");
            Sessions.getCurrent().setAttribute("sessionUser", user.getIdUser());
            boolean role = false;
            if(user.getIdRole().getTypeRole().equals("ADMINISTRATOR")){
                role=true;
            }
            Sessions.getCurrent().setAttribute("sessionRole", role);
    }else
        Messagebox.show("email or password incorrect");
}


}

问题是我没有安全登录,用户无需登录即可转到另一个页面。

我的登录只验证用户和用户的密码是否存在于数据库中,我不知道如何将安全性集成到我的页面中。

我有两个角色:

Administrator
User

如果用户是管理员,我会保存一个sessionVariable呼叫:sessionRole 为 true,但是,如果角色为 true,我会在某些选项卡中查看:可见 = true,我不知道它是否正常。

有人可以帮助我吗?

我在读:

http://books.zkoss.org/wiki/ZK%20Spring%20Essentials/Working%20with%20ZK%20Spring/Working%20with%20ZK%20Spring%20Security/Add%20Page%20Based%20Security%20Using%20Authorized%20Roles

但我不太了解配置

和其他例子使用maven,而我的项目没有使用maven =S

4

1 回答 1

0

您的代码看起来不错,只需将其自定义版本添加到您的配置中

<http auto-config="true">
    <intercept-url pattern="/secure/**" access="Administrator" />
    <form-login login-page="/login.zul"
        authentication-failure-url="/login.zul?login_error=1" />
    <logout logout-success-url="/home.zul"/>
</http>
于 2013-10-22T16:58:15.480 回答