个人博客开发总结(二)

1、注册验证码的生成(使用谷歌的Kaptcha验证码工具

先写验证码配置类KaptchaConfig,然后在controller中写验证码生成方法,获得的验证码要存到会话sesiion,以供用户输入时对比

2、表单校验

在控制器AuthController中使用表单验证工具类ValidationUtil(spring-boot-starter-web包里面有hibernate-validator包,不需要引用hibernate validator依赖)校验用户的注册信息

3、登录

使用shiro的api,UsernamePasswordToken是一个包含用户输入的username及password的登录验证token。SecurityUtils.getSubject().login(token)方法的底层实现是通过Realm类,需要自己自定义Realm类

登录验证的过程就是:Subject(用户)执行login方法,传入封装用户登录信息的token,然后SecurityManager将这个login操作委托给内部的登录模块,登录模块就调用Realm去获取安全的用户名和密码,然后对比,一致则登录,不一致则登录失败。最后结合shiro-freemarker的标签(如<@shiro.guest>,<@shiro.user>)将结果写于ftl中

自定义AccountRealm类实现认证授权操作,然后在UserServiceImpl类中实现具体的login业务,最后将AccountRealm注入到配置类ShiroConfig中,并配置拦截器,用于URL的访问控制,控制哪些URL需要权限控制,哪些不需要权限控制,anon是不需要权限,auth是需要

进行 Shiro 的配置主要配置 3 个 Bean :

  • 首先需要提供一个 Realm 的实例。
  • 需要配置一个 SecurityManager,在 SecurityManager 中配置 Realm。
  • 配置一个 ShiroFilterFactoryBean ,在 ShiroFilterFactoryBean 中指定路径拦截规则等。

ShiroFilterFactoryBean 的配置稍微多一些,配置含义如下:

  • setSecurityManager 表示指定 SecurityManager。
  • setLoginUrl 表示指定登录页面。
  • setSuccessUrl 表示指定登录成功页面。
  • 接下来的 Map 中配置了路径拦截规则,注意,要有序。

4、上传头像

在UserController中使用UploadUtil工具类,并写个配置类MvcConfig,为上传的头像新增个保存目录

5、用户信息的修改

修改用户信息到数据库后,但是右上角登录信息没有修改,因为修改后的登录用户信息没有设置到profile

 

6、消息提醒(系统消息、评论文章消息、回复评论消息)

先自定义查询语句,获得当前登录用户的消息信息,然后将未读的消息id存于list集合,并将其批量修改成已读


 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值