基础功能
注册
注册有两种方式,一种是用开发者帐号登录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请求
- 登录成功重定向到$fort.authentication.login.success-return, 登录的时候可以发送success_return参数来临时改变这个地址
- 登录失败重定向到$fort.authentication.login.error-return, 登录的时候可以发送error_return参数来临时改变这个地址
<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设置为过期,登出成功
- 登录成功重定向到$fort.authentication.logout.success-return, 登录的时候可以发送success_return参数来临时改变这个地址
<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天.