SessionManager

shiro框架了解

我的未来我决定 提交于 2020-07-28 10:38:36
shiro框架 1.shiro简介 Apache Shiro是Java的一个安全框架。功能强大,使用简单的Java安全框架,它为开发人员提供一个直观而全面的 认证,授权,加密 及 会话管理 的解决方案 2.shiro组成 Authentication :身份认证/登录,验证用户是不是拥有相应的身份; Authorization :授权,即权限验证,验证某个已认证的用户是否拥有某个权限; Session Manager :会话管理,即用户登录后就是一次会话,在没有退出之前,它的所有信息都在会话中; Cryptography :加密,保护数据的安全性,如密码加密存储到数据库,而不是明文存储; 3.shiro结构 3.1shiro外部结构 Subject :主体 SecurityManager :安全管理器 Realm :域 流程: 1、应用代码通过Subject来进行认证和授权,而Subject又委托给SecurityManager; 2、我们需要给Shiro的SecurityManager注入Realm,从而让SecurityManager能得到合法的用户及其 权限进行判断。 3.1shiro内部结构 Subject :主体 SecurityManager :相当于SpringMVC中的DispatcherServlet,它管理着所有Subject、且负责进行认证和授权、及会话

安装SQL server 提示重新启动计算机失败

浪尽此生 提交于 2020-05-02 02:17:28
SQL Server2008是一款功能强大、实用性强的mysql数据库管理系统,因此很多用户都会在Win7系统中安装SQL Server2008,但是不少用户在安装过程中遇到问题,安装SQL Server2008时提示重启计算机失败,这该怎么办呢?下面小编就来介绍下Win7安装SQL Server2008提示重启计算机失败的解决办法。 工具/原料 SQL Server2008 计算机 方法/步骤  解决方法一:   1、同时按下Win7旗舰版电脑键盘上的win+R快捷键打开电脑的运行窗口,在打开的运行窗口中,输入regedit并单击回车,这样就可以打开注册表编辑器窗口了 2、在打开的注册表编辑器窗口中,点击展开左侧菜单中的HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SQL Server; 3、然后在这个Microsoft SQL Server选项上点击鼠标右键,选择删除; 4、再次在左侧菜单中定位到HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager,然后在右侧找到PendingFileRenameOperations,然后点击右键将PendingFileRenameOperations删除就可以了;  解决方法二:   1

Springboot + Vue + shiro 实现前后端分离、权限控制

孤者浪人 提交于 2020-04-29 15:35:50
本文总结自实习中对项目对重构。原先项目采用Springboot+freemarker模版,开发过程中觉得前端逻辑写的实在恶心,后端Controller层还必须返回Freemarker模版的ModelAndView,逐渐有了前后端分离的想法,由于之前比没有接触过,主要参考的还是网上的一些博客教程等,初步完成了前后端分离,在此记录必备查阅。 一、前后端分离思想 前端从后端剥离,形成一个前端工程,前端只利用Json来和后端进行交互,后端不返回页面,只返回Json数据。前后端之间完全通过public API约定。 二、后端 Springboot Springboot就不再赘述了,Controller层返回Json数据。 @RequestMapping(value = "/add", method = RequestMethod.POST) @ResponseBody public JSONResult addClient(@RequestBody String param) { JSONObject jsonObject = JSON.parseObject(param); String task = jsonObject.getString("task" ); List <Object> list = jsonObject.getJSONArray("attributes" );

参与 Seata 社区到 go 与 Seata 的邂逅

百般思念 提交于 2020-04-28 12:44:03
  众所周知,这几年微服务、云原生提得很火热。2017年,当时公司的领导刘巍,敏锐得提出公司转型微服务。那时,提到微服务大家一头雾水,经过两年的实践,逐渐有了一些心得。但有个问题始终萦绕在微服务开发者的头上,分布式事务到底如何解决,有没有比较完美的方案?二阶段提交、柔性事务、最终一致性?   2019 年,我注意到阿里巴巴的同学在社区调研分布式事务需求,立即加入了社区群。在 seata 0.2 版本的时候,当时还不叫 seata,叫 fescar,我看到 seata 代码仓库里只有 dubbo 结合 seata 的 sample,随即在博客园写了一篇 spring boot 如何结合 seata 的博文 Spring Boot微服务如何集成seata解决分布式事务问题? ,这篇文章后来被收录到 seata wiki 里面,收获到了 18000+ 的阅读量,是我阅读量最高的一篇博客。   后来,由于工作比较忙,屡次想参与 seata 贡献,发现了几个 bug,本来想修改来着,结果看社区里边已经有人在做了😂。   由于接触微服务,自然而然接触到 k8s 技术,接触到云原生,接触到 golang。个人对 golang 比较感兴趣,比较看好它的未来。看到社区里面也有关于 seata go client 的呼声,遂萌生了打造 golang 版 seata 的想法。   有人问:喂,同学

iOS网络请求-AFNetworking源码解析

。_饼干妹妹 提交于 2020-04-24 17:47:45
趁着端午节日,自己没有什么过多的安排,准备花4-5天左右,针对网络请求源码AFNetworking和YTKNetwork进行解析以及这两年多iOS实际开发经验(其实YTKNetwork也是对AFNetworking的深度封装),结合多个实际项目,分别针对这两个网络框架,进行封装使用(可以直接使用)。本篇主要讲解AFNetworking源码解析,都是自己亲自看AFNetworking源码以及心得体会,大约看下来需要20-30分钟。欢迎指正!!! AFNetworking源码地址: https://github.com/AFNetworking/AFNetworking 针对AFNetworking封装: https://www.cnblogs.com/guohai-stronger/p/9193465.html YTKNetwork的源码详解: https://www.cnblogs.com/guohai-stronger/p/9194519.html 一.AFNetworking的代码结构: 新的代码结构将AFNetworking.h放到了Supporting Files里面。 自从AFNetworking结构更改以后,结构可能不够清晰,以前的版本是这样的: 其实没有多少改变,从这张图可以看出:除去Support Files,可以看到AF分为如下5个功能模块: 网络通信模块(最核心

HashSF

六眼飞鱼酱① 提交于 2020-04-18 12:08:03
HashSF 程序编写总结 前言   HashSF 是我用 Batch 写的较为完整(符合程序设计)的一个项目。虽然功能简单,但模拟一个完整的程序流程并不容易。因为 Batch 语法和正规的C/CPP 语法相比显得十分简陋,所以编写时有很多在 C/CPP 中可以很容易就实现的功能,在 Batch 中却显得十分繁琐。但 Batch 并不是完全没有优势,在文件处理、注册表操作和用户账户操作等一些调用系统API的操作上,批处理的简单程度不是任何一门语言可以媲美的!毕竟,这一切在 Batch 中只需要几句简单的 CMD 命令就可以完成了!   所以,我认为 Batch 被用来辅助程序的开发将是一个事半功倍的优秀选择!而且,Batch 是兼容 Windows 和 Linux 系统的。但是,值得注意的是: 由于 Windows 操作系统会有一些自己独有的 CMD 命令,所以在 Windows 平台编写 Batch 程序时需要注意 Windows 平台特有的那些命令,这些命令是无法被 Linux 兼容的! 知识点总结索引 遍历文件内容 利用echo改变局部区域的字体颜色及背景色 关于程序的结束与退出 自定义“pause”的输出文字 判断变量是否为空 判断注册表项是否存在 窗口修饰 添加环境变量 知识点总结 遍历文件内容 源代码 for /f "tokens=*" %%i in (demo.txt

Windows中是否有命令从命令提示符刷新环境变量?

柔情痞子 提交于 2020-02-27 15:17:37
如果修改或添加环境变量,则必须重新启动命令提示符。 我是否可以执行一个无需重启CMD即可执行的命令? #1楼 我想到的最好的方法是只执行一个注册表查询。 这是我的例子。 在我的示例中,我使用添加了新环境变量的批处理文件进行了安装。 安装完成后,我需要立即执行此操作,但是无法使用这些新变量生成新进程。 我测试了生成另一个浏览器窗口并调用cmd.exe的方法,此方法可以正常工作,但在Vista和Windows 7上,资源管理器仅作为单个实例运行,并且通常以登录用户身份运行。由于我需要管理员权限才能自动执行操作,因此失败无论从本地系统运行还是以管理员身份运行,都可以执行此操作。 这样做的局限性在于它不能处理路径之类的问题,只能用于简单的环境变量。 这使我可以使用批处理转到目录(包含空格)并复制运行.exes等文件。这是今天从stackoverflow.com上的may资源编写的 对新批次的原始批次调用: testenvget.cmd SDROOT(或任何变量) @ECHO OFF setlocal ENABLEEXTENSIONS set keyname=HKLM\System\CurrentControlSet\Control\Session Manager\Environment set value=%1 SET ERRKEY=0 REG QUERY "%KEYNAME%" /v "

Jetty源码学习11-Session

别来无恙 提交于 2019-12-19 00:30:21
【推荐】2019 Java 开发者跳槽指南.pdf(吐血整理) >>> 引言 本文主要的内容有:解析session原理;总结jetty中的session体系;屡清session、sessionManager、sessionIdManager、sessionHandler之间的联系。 Session模型 SessionManager有多种实现,Jetty提供了HashSessionManage和JDBCSessionManager的实现,本文仅分析HashSessionManager体系。 1、SessionHandler的作用上文已经介绍过了,简单地说就是给request设置SessionMananger,供其在应用中使用,最后恢复request中的SessionManager,主要用在跨app的转发。 2、SessionManager如其名,起着管理app域session的作用,因此它必须依赖:Session(meta data)、Timer(定时器)、SessionIdManager(保证整个Jetty中sessionId的唯一性) 3、Session:一个k-v结构储存用户信息的类。 4、Timer:定时器,主要负责Session的过期处理和定时持久化Session的功能。 5、SessionIdManager:session的key即返回给客户端保存的JESSIONID

网易云音乐ubuntu 18.04下无法打开的解决办法

有些话、适合烂在心里 提交于 2019-12-10 02:38:46
网易云音乐ubuntu 18.04下无法打开的解决办法 网易云音乐在ubuntu18.04下无法打开,即显示不了界面,主要是因为环境变量SESSION_MANAGER的值问题。只要修改/usr/share/applications/netease-cloud-music.desktop文件中Exec的值即可。修改后的结果如下: 解决思路很简单,无非是删除环境变量SESSION_MANAGER然后打开网易云音乐。 来源: oschina 链接: https://my.oschina.net/u/2941195/blog/2998279

Shiro学习(一)之理论知识篇

試著忘記壹切 提交于 2019-12-04 19:09:22
一:Shiro简介 Apache Shiro 是 Java 的一个安全框架。功能强大,使用简单的Java安全框架,它为开发人员提供一个直观而全面的认证,授权,加密及会话管理的解决方案。 Authentication : 身份认证/登录,验证用户是不是拥有相应的身份; Authorization : 授权,即权限验证,验证某个已认证的用户是否拥有某个权限;即判断用户是否能做事情,常见的如:验证某个用户是否拥有某个角色。或者细粒度的验证某个用户对某个资源是否具有某个权限; Session Manager : 会话管理,即用户登录后就是一次会话,在没有退出之前,它的所有信息都在会话中;会话可以是普通JavaSE环境的,也可以是如Web环境的; Cryptography : 加密,保护数据的安全性,如密码加密存储到数据库,而不是明文存储; Web Support : Web支持,可以非常容易的集成到Web环境; Caching:缓存,比如用户登录后,其用户信息、拥有的角色/权限不必每次去查,这样可以提高效率; Concurrency : shiro支持多线程应用的并发验证,即如在一个线程中开启另一个线程,能把权限自动传播过去; Testing : 提供测试支持; Run As : 允许一个用户假装为另一个用户(如果他们允许)的身份进行访问; Remember Me : 记住我