0
点赞
收藏
分享

微信扫一扫

(狂神)SpringBoot笔记--------16

zidea 2022-01-09 阅读 105

Shiro实现登录拦截

我们之前的页面能跳了,现在我们想让一些用户能访问,一些用户不能。

我们在ShiroConfig类中添加:

运行一下:

 

 

 

我们进不去了,说明已经拦截成功。

但是正常的逻辑来说,我们如果登录不上去,应该去跳转到登录页面,所以我们还要做一个登录的页面:

 

我们写完这个登录页面,还要去写这个页面登录后要跳转到哪个页面:

 

当我们去访问这个地址时,controller会给我们跳转到这个登录页面。

接下来我们就是要去在配置类中增加限制:

我们设置我们的登录地址:运行:

我们可以看到刚才如果被成功拦截会自动跳转到login.jsp,但是我们这个Shiro不会自动给我们写登录页面,所以我们就需要手动去编写。

 

 

 

 

我们对add和update这两个页面的拦截作用是一样的,那我们能不能把他们两个的拦截代码集成在一起呢?

 

我们用通配符把拦截的文件锁定为user下的所有文件。

运行:

 

 

 

 

如果我们把上一个笔记里的内容,也就是把Shiro和SpringBoot整合好,那么我们做拦截功能其实就写了4行代码在配置类里就实现了。还是挺方便的。

Shiro实现用户验证:

 我们之前已经做完了拦截功能,我们现在去实现以下用户验证:

我们在我们的controller中写下验证用户的代码,我们核心就是获取用户,封装信息,然后用login方法去验证成功就跳转到Index反之就跳转到login页面。

 

然后在前端页面加上msg提示语句。

我们取运行一下:

 

 

 

 

现在,我们已经执行了我们的 

UserRealm类中的方法。我们发现Shiro比较难弄的就是,我们的ShiroConfig配置类和UserRealm类表面上没有直接性的联系。但是其实他们之间是存在互相调用的关系的。

但是我们现在并没有用户名和密码的数据。所以这部分就要在我们的UserRealm中去做一个添加:

 

 运行一下:

 

 

 

 

 

 

我们可以发现,使用Shiro我们很多代码都没有去写,都是自动封装好的,我们的验证也是比较全的。Shiro好用,但是不好理解,因为它本身自己封装的东西太多,我们如果不深挖源码是看不到的。 

 

举报

相关推荐

0 条评论