shiro 权限控制框架 入门级实例(二)注册加密
来源:互联网 发布:刘丹青 知乎 编辑:程序博客网 时间:2024/06/05 15:52
shiro 权限控制框架 入门级实例 注册加密
上文完成了基本的加密登录验证,那么接下来我们来看下注册模块。
ps:写在代码之前:
登录、注册两大模块基本是贯穿了我们学习技术的过程,从最开始的jdbc+servlet+jsp开发登录注册demo,一直到各种各样的框架搭建整合开发登录注册模块。从最开始单用户明文登录,一直到现在的多用户加密登录验证,这期间我读过无数博文、走过无数弯路,在一次次跌倒与爬起的过程当中,我成长了很多、也改变了很多(不得不承认debug真的是很磨炼一个人的性格),也算是在我个人的技术的道路上跨出了历史性第一步。即便如此目前我的技术水平在大神的眼中还很“稚嫩”,但是我相信凭借我的努力,终有一天可以成功。
废话说完了,上代码:
一、mapper.xml
<insert id="insertTUser" parameterType="com.grs.domain.TUser">
insert into t_user set password = #{password},us_id = #{us_id},salt = #{salt}
</insert>
insert into t_user set password = #{password},us_id = #{us_id},salt = #{salt}
</insert>
<insert id="insertTUsername" parameterType="com.grs.domain.TUsername" keyProperty="us_id" useGeneratedKeys="true">
insert into t_username set phonenumber = #{phonenumber},e_mail=#{e_mail}
</insert>
<select id="selectSalt" parameterType="java.lang.String" resultType="java.lang.String">
select salt
from
t_user as user,
t_username as us
where
user.us_id = us.us_id
and
(us.phonenumber=#{_parameter} or us.e_mail=#{_parameter})
</select>
二、dao层
int insertTUser(TUser user);
void insertTUsername(TUsername uss);
String selectSalt(String username);
三、service
void insertTUser(TResiger rs);
String selectSalt(String username);
String selectSalt(String username);
impl
@Override
public void insertTUser(TResiger rs) {
public void insertTUser(TResiger rs) {
String hashAlgorithmName = "MD5";
String credentials = rs.getPassword();
int hashIterations = 1024;
String s = UUID.randomUUID().toString();
ByteSource credentialsSalt = ByteSource.Util.bytes(s);
String obj = new SimpleHash(hashAlgorithmName, credentials, credentialsSalt, hashIterations).toHex();
if (rs.getId()==1) {
ts.setPhonenumber(rs.getUsername());
um.insertTUsername(ts);
int us_id = ts.getUs_id();
user.setUs_id(us_id);
user.setPassword(obj);
user.setSalt(s);
um.insertTUser(user);
}else {
ts.setE_mail(rs.getUsername());
um.insertTUsername(ts);
int us_id = ts.getUs_id();
user.setUs_id(us_id);
user.setPassword(obj);
user.setSalt(s);
um.insertTUser(user);
lst.add(rs.getUsername());
// Map<String,String> message = new HashMap<>();
// message.put("content", "欢迎注册我公司,请您快速激活");
// message.put("title", "测试邮件");
// try {
// TestSend ts = new TestSend(lst, message);
// } catch (Exception e) {
// e.printStackTrace();
// }
}
}
@Override
public String selectSalt(String username) {
return um.selectSalt(username);
}
四、action层
@ResponseBody
@RequestMapping("insertTUser.do")
public String insertTUser(TResiger rs){
us.insertTUser(rs);
return "success";
}
@RequestMapping("insertTUser.do")
public String insertTUser(TResiger rs){
us.insertTUser(rs);
return "success";
}
注:与上文重复的代码以直接省略
阅读全文
0 0
- shiro 权限控制框架 入门级实例(二)注册加密
- shiro 权限控制框架 入门级实例(一)加密、登录验证
- 权限控制框架 shiro
- Shiro 权限控制框架
- 权限控制框架-shiro
- shiro-权限控制框架
- 权限控制框架-shiro
- 权限控制框架-shiro
- 权限控制框架-shiro
- 权限控制框架-shiro
- Shiro权限控制 ---base64加密、MD5加密
- Shiro权限控制 ---base64加密、MD5加密
- 权限验证框架Shiro学习(二)
- shiro---认识权限控制框架
- java权限控制框架shiro
- shiro框架的权限控制(Spring整合)
- shiro权限框架简单快速入门
- shiro权限框架简单快速入门
- Quartz的cron表达式
- Unity 访问组件(一)
- hdu 3594(强连通&判环)
- Java垃圾回收并发和并行
- 迷瘴
- shiro 权限控制框架 入门级实例(二)注册加密
- SQL语法学习20170804
- 51. N-Queens
- 禁止表情输入和长度限制
- 小规划
- u-boot执行顺序start_armboot
- 一个“.java”文件中是否允许多个类(不是内部类)存在
- html,css,js防止浏览器缓存,导致不加载新页面。
- FreeRTOS系列学习笔记一---FreeRTOS编码标准及风格指南