基础功能

注册

注册有两种方式,一种是用开发者帐号登录Fort后台管理,创建可登录的用户,另一种是通过Fort SDK中的FortCrudClient实现注册用户

使用FortCrudClient注册用户

使用FortCrudClient注册的用户拥有的角色是$fort.user.default-roles,用户所属组是$fort.user.default-groups

@Autowired
private FortCrudClient crudClient;

public void signUp(String username, String password) {
    SecurityUser user = new SecurityUser();
    user.setLogin(username);
    user.setPasswordHash(password);
    try{
        crudClient.signUp(user);    
    } catch (FortCrudException | IOException e) {
        // if error call this block
        e.printStackTrace();
    }
}

如果创建用户时想使用给定的角色和组,可以使用signUp(SecurityUser user, String[] roles, String[] groups)方法

登录

登录请求由SecurityHttpFilter拦截并处理,登录请求的请求地址是$fort.authentication.login.url(只支持POST请求),用户名的参数名是f_username, 密码的参数名是f_password. 推荐使用post请求

<form action="$fort.authentication.login.url" method="post">
    <div>
        用户名: <input type="text" name="f_username">
    </div>
    <div>
        密码: <input type="password" name="f_password">
    </div>
    <button type="submit" name="button">注册</button>
</form>

登出

登出请求由SecurityHttpFilter拦截并处理,登出请求的请求地址是$fort.authentication.logout.url; 登出时清除FUSERTOKEN并将服务器上的TOKEN设置为过期,登出成功

<a href="$fort.authentication.logout.url">登出</a>

重置用户密码

重置用户密码有两种方式,一种是用开发者帐号登录Fort后台管理,重置密码,另一种是通过Fort SDK中的FortCrudClient实现密码重置

使用FortCrudClient重置密码

重置密码时无需验证,如果应用自己需要发送短信验证码等验证,请自己编写相应逻辑

@Autowired
private FortCrudClient crudClient;

public void resetPassword(String username, String newPassword) {
    SecurityUser user = new SecurityUser();
    user.setLogin(username);
    user.setPasswordHash(newPassword);
    try{
        crudClient.resetPassword(user);
    } catch (FortCrudException | IOException e) {
        // if error call this block
        e.printStackTrace();
    }
}

重置当前登录用户密码使用crudClient.changeCurrentUserPassword(String newPassword)

导航栏权限控制

使用SecurityUtils获得

SecurityUtils.getCurrentUserTreeSecurityNavs();

权限控制图解

用户的权限信息的唯一标识保存在Cookie中,属性名为FUSERTOKEN,有效期为7天.

access-ctrl