shiro开发的另一种方式(代码片段)

Qiao_Zhi Qiao_Zhi     2022-11-12     800

关键词:

  

  今天在学习shiro的时候使用另一种shiro验证的方式。

  总体的思路是:

     (1)先在自己的方法中进行身份的验证以及给出提示信息。

     (2)当验证成功之后到Shiro中认证以及授权一下即可。当然,在自己验证成功之后需要向session中存入所需要的数据。

     (3)验证成功之后向前台返回登录成功,此时也已经在shiro中授权,后台可以请求后台地址。如果后台地址不确定的时候需要在验证成功向前台反馈的时候携带一个成功之后的地址。

 

 

其大致流程如下:

(1)配置静态资源可以匿名访问
(2)shiro配置loginUrl认证提交地址,login.do。(此方法只是简单的将页面的地址转发到login.jsp)
(3)登录的地址: userLogin.do   处理登录流程的controller
    (1)正常登录
    (2)登录成功之后进行shiro权限认证
    (3)登录失败提示失败信息

Service登录获取登录信息,该用户所有的权限信息,该用户所有的权限码,返回到Controller
controller根据登录信息判断是否进行shiro认证。

如果登录信息是登录成功:
    将当前用户对象存到session中,将当前用户的菜单存到session中
前台根据返回的信息判断是否进行页面跳转(登录成功跳转到index.jsp)
如果登录失败:啥都不做

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

(1)配置静态资源可以匿名访问

(2)shiro配置loginUrl认证提交地址,login.do(此方法只是简单的将页面的地址转发到login.jsp)

(3)登录的地址: userLogin.do   处理登录流程的controller

         (1)正常登录

         (2)登录成功之后进行shiro权限认证

         (3)登录失败提示失败信息

 

Service登录获取登录信息,该用户所有的权限信息,该用户所有的权限码,返回到Controller

controller根据登录信息判断是否进行shiro认证。

 

如果登录信息是登录成功:

         将当前用户对象存到session中,将当前用户的菜单存到session

前台根据返回的信息判断是否进行页面跳转(登录成功跳转到index.jsp)

如果登录失败:啥都不做

 

windows下硬件信息的另一种方式获取(代码片段)

通过命令方式TCHARszFetCmd[]=_T("wmicbaseboardgetserialnumber");可以有:查找主板厂商和型号wmicBaseBoardgetManufacturerwmicBaseBoardgetProduct先决条件:a.启动WindowsManagementInstrumentation服务,开放TCP135端口。b.本地安全策略的“网络访问:本地... 查看详情

接口测试的另一种方式–接口测试平台

...的加密解密处理,那么,在日常的测试工作中,难免需要开发为我们提供加解密的工具或者我们自己编写小工具进行测试。随着接口数量的增多,我们为每一个项目开发的小工具也越来越多,每个小工具的使用方法也不太相 查看详情

小玩意-json快速克隆的另一种形式(代码片段)

起始节点-数组“[]”  起始节点-对象“”importcom.alibaba.fastjson.JSON;importcom.alibaba.fastjson.JSONArray;importcom.alibaba.fastjson.JSONObject;importcom.alibaba.fastjson.serializer.SerializerFeature;/***@author 查看详情

小玩意-json快速克隆的另一种形式(代码片段)

起始节点-数组“[]”  起始节点-对象“”importcom.alibaba.fastjson.JSON;importcom.alibaba.fastjson.JSONArray;importcom.alibaba.fastjson.JSONObject;importcom.alibaba.fastjson.serializer.SerializerFeature;/***@author 查看详情

创建线程的另一种方法:通过类创建(28-1)(代码片段)

 能够让CPU运行起来的就是线程!importthreadingimporttimeclassMyThread(threading.Thread):  def__init__(self,num):    threading.Thread.__init__(self)    self.num=num    defrun(self):    #定义每个线程要执行的函数    print("r 查看详情

将图片发送到 Gmail 的另一种方式

】将图片发送到Gmail的另一种方式【英文标题】:AnotherwaytosendpicturetoGmail【发布时间】:2015-07-1617:10:19【问题描述】:默认情况下,如果图片来自其他网站,Gmail会隐藏这些图片。Outlook等软件如何将签名图片发送到Gmail而不被隐... 查看详情

javaviewholder的另一种写法。只需一个类通用好了,适配器里不用额外写...(代码片段)

查看详情

insertinto的另一种添加插入新行方式

语法1插入一行insertintotable(field1,field2.....)selectvalue1,value2........;  2插入多行insertintotable(field1,field2.....)selectvalue1,value2........unionselectvalue1,value2........   实例createtablebank(cus 查看详情

闭包的另一种形式?(说法待确定)(代码片段)

defgen_rand_data(tensor_arg):rand_func="randint":__gen_rand_randintfunc=rand_func[tensor_arg]returnfunc(tensor_arg)def__gen_rand_randint(arg):returnargprint(gen_rand_data("randint"))print(type(gen_rand_data("randint")))returnfunc(tensor_arg)实际返回的是"实例化"之后的返回值string类型... 查看详情

在>=win1017134枚举驱动的另一种方法(代码片段)

首先枚举驱动的方法很多,这里不做过多介绍,此文仅简单说明x64系统,x86结构和偏移需重新收集.在17134版本中,MI_SYSTEM_IMAGE_STATE结构新增了一个成员即以下的最后一个成员ImageTree,此树保存驱动LdrSection题外话:MI_SYSTEM_IMAGE_STATE是_MI_SYST... 查看详情

spring监听的另一种写法(代码片段)

@EventListener在哪里解析的?org.springframework.beans.factory.support.DefaultListableBeanFactory#preInstantiateSingletons   org.springframework.context.event.EventListenerMethodProcessor#processBean遍历所有bean里面的所有加了@EventListener注解的方法找到后开... 查看详情

stm32f103按键操作的另一种实现——状态机(代码片段)

#ifndef_KEY_H_#define_KEY_H_#include"HAL_gpio.h"//换成STM32F103对应的GPIO库#include"type.h"//type.h主要是一些类型的重命名#defineKEY_UP_GRPGPIOA#defineKEY_UP_IDXGPIO_Pin_9#defineKEY_UP_IS_DOWN()GPIO_Rea 查看详情

mycat登录报错host'xxx'isblockedbecauseofmanyconnectionerrors的另一种解决思路(代码片段)

报错时机使用了mycat,而不是单纯使用了mysql。报错信息ERROR1129(HY000):Host‘1.23.22.18‘isblockedbecauseofmanyconnectionerrors;unblockwith‘mysqladminflush-hosts‘解决思路网上搜索一大把解决方法,大同小异,都是flushhost等等。比如2013年的cnblogs但... 查看详情

单元测试框架处理多组数据的另一种写法:基于构造函数和超继承(代码片段)

众所周知,在单元测试框架中引入ddt,可以将一组数据分解为多组数据,从而实现一条数据对应一个测试用例。但是除此之外,有没有别的办法来实现这个目的呢?一.代码部分1.创建一个被测函数math_method.pyclassMethMethod():defadd_tes... 查看详情

mybatis基础_resultmap(代码片段)

...以很方便的使用resultType进行查询结果映射,但是在实际开发中很有可能会遇到实体类的成员变量名和实际查询的字段名称不符。这时就可以使用mybatis的另一种映射方式resultMap。使用resultType进行开发1、实体类   publicclassOrderi... 查看详情

关于如何在sublime下安装插件(代码片段)

...经在Sublime中安装过PackageControl(如果没有安装,请参考我的另一篇文章《Sublime-Text的packagec 查看详情

与计算机之间的另一种沟通方式——“手势识别”

手势是无声的语言。人们在生活中借用手势,来表达各种各样的感情。现在,人还可以与计算机之间进行手势互动。  与人之间的手势互动很容易理解,与计算机之间是怎么实现的呢?  手势分割  想要使计算机识别人的... 查看详情

jwt使用的另一种声音(代码片段)

讲真,别再使用JWT了! 把本应该session中保存的数据去除敏感字段保留到客户端  在Web应用中,使用JWT替代session并不是个好主意适合JWT的使用场景抱歉,当了回标题党。我并不否认JWT的价值,只是它经常被误用。什么... 查看详情