springboot之shiro十分钟从入门到熟悉
原文:https://blog.csdn.net/weixin_38132621/article/details/80216056
最近搞了下 Shiro 安全框架,找了一些网上的博客文章,但是一到自己实现的时候就遇到了各种坑,需要各种查资料看源码以及各种测试。
那么这篇文章就教大家如何将 Shiro 整合到 SpringBoot 中,并避开一些小坑,这次实现了基本的登陆以及角色权限,往后的文章也讲解了其他的功能,如 《教你 Shiro + SpringBoot 整合 JWT》附上源码:https://github.com/HowieYuan/shiro
依赖包
<dependency><groupId>org.apache.shiro</groupId><artifactId>shiro-spring</artifactId><version>1.3.2</version>
</dependency>
数据库表
一切从简,用户 user 表,以及角色 role 表
Shiro 相关类
Shiro 配置类
@Configuration
public class ShiroConfig {@Beanpublic ShiroFilterFactoryBean shirFilter(SecurityManager securityManager) {ShiroFilterFactoryBean shiroFilterFactoryBean = new ShiroFilterFactoryBean();// 必须设置 SecurityManagershiroFilterFactoryBean.setSecurityManager(securityManager);// setLoginUrl 如果不设置值,默认会自动寻找Web工程根目录下的"/login.jsp"页面 或 "/login" 映射shiroFilterFactoryBean.setLoginUrl("/notLogin");// 设置无权限时跳转的 url;shiroFilterFactoryBean.setUnauthorizedUrl("/notRole");// 设置拦截器Map<String, String> filterChainDefinitionMap = new LinkedHashMap<>();//游客,开发权限filterChainDefinitionMap.put("/guest/**", "anon");//用户,需要角色权限 “user”filterChainDefinitionMap.put("/user/**", "roles[user]");//管理员,需要角色权限 “admin”filterChainDefinitionMap.put("/admin/**", "roles[admin]");//开放登陆接口filterChainDefinitionMap.put("/login", "anon");//其余接口一律拦截//主要这行代码必须放在所有权限设置的最后,不然会导致所有 url 都被拦截filterChainDefinitionMap.put("/**", "authc");shiroFilterFactoryBean.setFilterChainDefinitionMap(filterChainDefinitionMap);System.out.println("Shiro拦截器工厂类注入成功");return shiroFilterFactoryBean;}/*** 注入 securityManager*/@Beanpublic SecurityManager securityManager() {DefaultWebSecurityManager securityManager = new DefaultWebSecurityManager();// 设置realm.securityManager.setRealm(customRealm());return securityManager;}/*** 自定义身份认证 realm;* <p>* 必须写这个类,并加上 @Bean 注解,目的是注入 CustomRealm,* 否则会影响 CustomRealm类 中其他类的依赖注入*/@Beanpublic CustomRealm customRealm() {return new CustomRealm();}
}
注意:里面的 SecurityManager 类导入的应该是 import org.apache.shiro.mgt.SecurityManager;
但是,如果你是复制代码过来的话,会默认导入 java.lang.SecurityManager
这里也稍稍有点坑,其他的类的话,也是都属于 shiro 包里面的类
shirFilter 方法中主要是设置了一些重要的跳转 url,比如未登陆时,无权限时的跳转;以及设置了各类 url 的权限拦截,比如 /user 开始的 url 需要 user 权限,/admin 开始的 url 需要 admin 权限等
权限拦截 Filter
当运行一个Web应用程序时,Shiro将会创建一些有用的默认 Filter 实例,并自动地将它们置为可用,而这些默认的 Filter 实例是被 DefaultFilter 枚举类定义的,当然我们也可以自定义 Filter 实例,这些在以后的文章中会讲到
Filter | 解释 |
---|---|
anon | 无参,开放权限,可以理解为匿名用户或游客 |
authc | 无参,需要认证 |
logout | 无参,注销,执行后会直接跳转到shiroFilterFactoryBean.setLoginUrl(); 设置的 url |
authcBasic | 无参,表示 httpBasic 认证 |
user | 无参,表示必须存在用户,当登入操作时不做检查 |
ssl | 无参,表示安全的URL请求,协议为 https |
perms[user] | 参数可写多个,表示需要某个或某些权限才能通过,多个参数时写 perms["user, admin"],当有多个参数时必须每个参数都通过才算通过 |
roles[admin] | 参数可写多个,表示是某个或某些角色才能通过,多个参数时写 roles["admin,user"],当有多个参数时必须每个参数都通过才算通过 |
rest[user] | 根据请求的方法,相当于 perms[user:method],其中 method 为 post,get,delete 等 |
port[8081] | 当请求的URL端口不是8081时,跳转到schemal://serverName:8081?queryString 其中 schmal 是协议 http 或 https 等等,serverName 是你访问的 Host,8081 是 Port 端口,queryString 是你访问的 URL 里的 ? 后面的参数 |
常用的主要就是 anon,authc,user,roles,perms 等
注意:anon, authc, authcBasic, user 是第一组认证过滤器,perms, port, rest, roles, ssl 是第二组授权过滤器,要通过授权过滤器,就先要完成登陆认证操作(即先要完成认证才能前去寻找授权) 才能走第二组授权器(例如访问需要 roles 权限的 url,如果还没有登陆的话,会直接跳转到 shiroFilterFactoryBean.setLoginUrl();
设置的 url )
自定义 realm 类
我们首先要继承 AuthorizingRealm 类来自定义我们自己的 realm 以进行我们自定义的身份,权限认证操作。 记得要 Override 重写 doGetAuthenticationInfo 和 doGetAuthorizationInfo 两个方法(两个方法名很相似,不要搞错)
public class CustomRealm extends AuthorizingRealm {private UserMapper userMapper;@Autowiredprivate void setUserMapper(UserMapper userMapper) {this.userMapper = userMapper;}/*** 获取身份验证信息* Shiro中,最终是通过 Realm 来获取应用程序中的用户、角色及权限信息的。** @param authenticationToken 用户身份信息 token* @return 返回封装了用户信息的 AuthenticationInfo 实例*/@Overrideprotected AuthenticationInfo doGetAuthenticationInfo(AuthenticationToken authenticationToken) throws AuthenticationException {System.out.println("————身份认证方法————");UsernamePasswordToken token = (UsernamePasswordToken) authenticationToken;// 从数据库获取对应用户名密码的用户String password = userMapper.getPassword(token.getUsername());if (null == password) {throw new AccountException("用户名不正确");} else if (!password.equals(new String((char[]) token.getCredentials()))) {throw new AccountException("密码不正确");}return new SimpleAuthenticationInfo(token.getPrincipal(), password, getName());}/*** 获取授权信息** @param principalCollection* @return*/@Overrideprotected AuthorizationInfo doGetAuthorizationInfo(PrincipalCollection principalCollection) {System.out.println("————权限认证————");String username = (String) SecurityUtils.getSubject().getPrincipal();SimpleAuthorizationInfo info = new SimpleAuthorizationInfo();//获得该用户角色String role = userMapper.getRole(username);Set<String> set = new HashSet<>();//需要将 role 封装到 Set 作为 info.setRoles() 的参数set.add(role);//设置该用户拥有的角色info.setRoles(set);return info;}
}
重写的两个方法分别是实现身份认证以及权限认证,shiro 中有个作登陆操作的 Subject.login()
方法,当我们把封装了用户名,密码的 token 作为参数传入,便会跑进这两个方法里面(不一定两个方法都会进入)
其中 doGetAuthorizationInfo 方法只有在需要权限认证时才会进去,比如前面配置类中配置了 filterChainDefinitionMap.put("/admin/**", "roles[admin]");
的管理员角色,这时进入 /admin 时就会进入 doGetAuthorizationInfo 方法来检查权限;而 doGetAuthenticationInfo 方法则是需要身份认证时(比如前面的 Subject.login()
方法)才会进入
再说下 UsernamePasswordToken 类,我们可以从该对象拿到登陆时的用户名和密码(登陆时会使用 new UsernamePasswordToken(username, password);
),而 get 用户名或密码有以下几个方法
token.getUsername() //获得用户名 String
token.getPrincipal() //获得用户名 Object
token.getPassword() //获得密码 char[]
token.getCredentials() //获得密码 Object
注意:有很多人会发现,UserMapper 等类,接口无法通过 @Autowired 注入进来,跑程序的时候会报 NullPointerException,网上说了很多诸如是 Spring 加载顺序等原因,但其实有一个很重要的地方要大家注意,CustomRealm 这个类是在 shiro 配置类的 securityManager.setRealm()
方法中设置进去的,而很多人直接写securityManager.setRealm(new CustomRealm());
,这样是不行的,必须要使用 @Bean 注入 MyRealm,不能直接 new 对象:
@Beanpublic SecurityManager securityManager() {DefaultWebSecurityManager securityManager = new DefaultWebSecurityManager();// 设置realm.securityManager.setRealm(customRealm());return securityManager;}@Beanpublic CustomRealm customRealm() {return new CustomRealm();}
道理也很简单,和 Controller 中调用 Service 一样,都是 SpringBean,不能自己 new
当然,同样的道理也可以这样写:
@Beanpublic SecurityManager securityManager(CustomRealm customRealm) {DefaultWebSecurityManager securityManager = new DefaultWebSecurityManager();// 设置realm.securityManager.setRealm(customRealm);return securityManager;}
然后只要在 CustomRealm 类加上个类似 @Component 的注解即可
功能实现
本文的功能全部以接口返回 json 数据的方式实现
根据 url 权限分配 controller
游客
@RestController
@RequestMapping("/guest")
public class GuestController{@Autowired private final ResultMap resultMap;@RequestMapping(value = "/enter", method = RequestMethod.GET)public ResultMap login() {return resultMap.success().message("欢迎进入,您的身份是游客");}@RequestMapping(value = "/getMessage", method = RequestMethod.GET)public ResultMap submitLogin() {return resultMap.success().message("您拥有获得该接口的信息的权限!");}
}
普通登陆用户
@RestController
@RequestMapping("/user")
public class UserController{@Autowired private final ResultMap resultMap;@RequestMapping(value = "/getMessage", method = RequestMethod.GET)public ResultMap getMessage() {return resultMap.success().message("您拥有用户权限,可以获得该接口的信息!");}
}
管理员
@RestController
@RequestMapping("/admin")
public class AdminController {@Autowired private final ResultMap resultMap;@RequestMapping(value = "/getMessage", method = RequestMethod.GET)public ResultMap getMessage() {return resultMap.success().message("您拥有管理员权限,可以获得该接口的信息!");}
}
突然注意到 CustomRealm 类那里抛出了 AccountException 异常,现在建个类进行异常捕获
@RestControllerAdvice
public class ExceptionController {private final ResultMap resultMap;@Autowiredpublic ExceptionController(ResultMap resultMap) {this.resultMap = resultMap;}// 捕捉 CustomRealm 抛出的异常@ExceptionHandler(AccountException.class)public ResultMap handleShiroException(Exception ex) {return resultMap.fail().message(ex.getMessage());}
}
还有进行登陆等处理的 LoginController
@RestController
public class LoginController {@Autowired private ResultMap resultMap;private UserMapper userMapper;@RequestMapping(value = "/notLogin", method = RequestMethod.GET)public ResultMap notLogin() {return resultMap.success().message("您尚未登陆!");}@RequestMapping(value = "/notRole", method = RequestMethod.GET)public ResultMap notRole() {return resultMap.success().message("您没有权限!");}@RequestMapping(value = "/logout", method = RequestMethod.GET)public ResultMap logout() {Subject subject = SecurityUtils.getSubject();//注销subject.logout();return resultMap.success().message("成功注销!");}/*** 登陆** @param username 用户名* @param password 密码*/@RequestMapping(value = "/login", method = RequestMethod.POST)public ResultMap login(String username, String password) {// 从SecurityUtils里边创建一个 subjectSubject subject = SecurityUtils.getSubject();// 在认证提交前准备 token(令牌)UsernamePasswordToken token = new UsernamePasswordToken(username, password);// 执行认证登陆subject.login(token);//根据权限,指定返回数据String role = userMapper.getRole(username);if ("user".equals(role)) {return resultMap.success().message("欢迎登陆");}if ("admin".equals(role)) {return resultMap.success().message("欢迎来到管理员页面");} return resultMap.fail().message("权限错误!");}
}
测试
如若内容造成侵权/违法违规/事实不符,请联系编程学习网邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
相关文章
- win7查看linux分区资料
电脑有2快硬盘,原来系统是ubuntu,现在需要强制转换好win7下开发(原因嘛,你懂的),因ubuntu下资料想保存下来,所以将资料转移到其中一块硬盘,用另一块硬盘装的win7,而在win7是看不到ext3格式的分区的,都是狗血的software惹的祸。现在要查找原ubuntu下的资料,google一下…...
2024/4/14 21:56:27 - AI:2020年6月24日北京智源大会演讲分享之知识智能专题论坛——12:00-12:30杨红霞阿里巴巴达摩院技术总监《 人工智能从感知走向认知》
AI:2020年6月24日北京智源大会演讲分享之知识智能专题论坛——12:00-12:30杨红霞阿里巴巴达摩院技术总监《 人工智能从感知走向认知》导读:首先感谢北京智源大会进行主题演讲的各领域顶级教授,博主受益匪浅,此文章为博主在聆听各领域教授或专家演讲时,一张一张截图进行保存…...
2024/4/14 21:56:26 - 一行代码!生成自己QQ、微信的动态二维码
文章目录1.安装Python2.安装myqr3.转换图片 1.安装Python 1.在百度输入Pyth官网,回车。搜索结果中第一条就是官网的网址www.python.org。2.这是一个英文的网站,如果你用的是谷歌浏览器,可以使用自带的谷歌将网站翻译成中文的。这样看起来就非常的方便。在网页的上方有一排菜…...
2024/4/14 21:56:23 - MEID 16进制和10进制格式转换函数
16进制格式转换为10进制格式: CString ConvertMEIDHex2Dec(CString strMEIDHex) {if(strMEIDHex.GetLength()!=14 && strMEIDHex.GetLength()!=15) return TEXT("");CString strRet,strTemp;strTemp.Format(TEXT("%u"),_tcstoul(strMEIDHex.Mid(0,…...
2024/4/14 21:56:22 - 视频教程-38集19年Shiro视频教程Springboot教程整合Shiro 权限教程微服务教程-Java
38集19年Shiro视频教程Springboot教程整合Shiro 权限教程微服务教程7年的开发架构经验,曾就职于国内一线互联网公司,开发工程师,现在是某创业公司技术负责人, 擅长语言有node/java/python,专注于服务端研发,人工智能相关领域, 熟悉分布式高可用系统的架构,大数据处理,微…...
2024/4/14 21:56:22 - Windows PowerShell漫谈-win7下没有超级终端
Windows PowerShell是我在研究win7新特性的时候发现的新工具,起初没有对它产生太大的兴趣,只是简单看看了有关它的介绍、简单使用了一下,感觉上它和cmd.exe没有本质区别。对它产生兴趣是一个纯粹的偶然, 有一次一个硬件工程师同事让我帮忙联调串口,我才发现win7下没有超级…...
2024/4/14 21:56:20 - Linux下架设代理服务器
再次感谢,本文的作者bye2000。 Linux下架设代理服务器 作者:bye2000 一、代理服务器概述 1.1什么是代理服务器 在TCP/IP网络中,传统的通信过程是这样的:客户端向服务器请求数据,服务器响应该请求,将数据传送给客户端。在引入了代理服务器以后,这一过程变成了这样:…...
2024/5/7 15:13:12 - AutoCAD2004下载AutoCAD2004中文版安装教程
AutoCAD2004(32/64位)下载:https://pan.baidu.com/s/1n4u90xT_9B9rldhl_Atz_w 【下载方法】复制下载链接,粘贴纸浏览器网址栏(无提取码)打开,保存到网盘,打开网盘客户端,下载到自己的电脑上; 一、安装视频教程 https://v.qq.com/x/page/m0918tc1uv7.html 观看1080P高…...
2024/4/14 21:56:18 - java SSM 框架 多数据源 代码生成器 websocket即时通讯 shiro redis 后台框架
获取【下载地址】 QQ: 313596790 【免费支持更新】三大数据库 mysql oracle sqlsever 更专业、更强悍、适合不同用户群体【新录针对本系统的视频教程,手把手教开发一个模块,快速掌握本系统】 A 集成代码生成器 [正反双向(单表、主表、明细表、树形表,开发利器)+快速构…...
2024/5/2 12:00:24 - 微盟这么大体量的公司,核心运维工程师竟然可以凭一己之力删除主备服务器上的数据?是技术问题还是管理问题?
微盟这么大体量的公司,核心运维工程师竟然可以凭一己之力删除主备服务器上的数据?是技术问题还是管理问题? 这件事情确实很让人吃惊,如果说一个100人以内的小公司,运维老大因为某种原因在服务器中执行个rm - rf/*,同时删除所有的快照和数据库备份文件及日志文件,那么也许…...
2024/4/14 21:56:16 - 有趣的题目(进制转换)
昨天比赛遇到一道进制转换题,叫有趣的题目,择日不如撞日,不如借此给你们讲讲进制转换类题目的解法.有趣的题目 Description小伙子玩过2017codeforces的愚人节场吗~? wx非常无聊,整天就知道吃饭睡觉打洞洞,于是乎他又给自己找了一个乐子,他随手写一个十进制的数字,请问这…...
2024/4/14 21:56:15 - 视频:训练一个神经网络来玩贪食蛇
最近在Youtube ( www.youtube.com/watch?v=zIkBYwdkuTk )看到的一个视频《SnakeAI:Training a Neural Network to play Snake》,已搬运过来了。http://v.qq.com/x/page/d0785ow6dt6.html下面这个 GitHub 的项目,应该是对应的:https://github.com/greerviau/SnakeAI推荐阅…...
2024/4/14 21:56:14 - 计算机网络--DNS完全解析
前言前几天,因为要申请一个VR方面的专利在网上找参考资料,准备基于Oculus的sdk进行二次开发。突然发现进不了Oculus的官方网站,后面发现是电脑网络设置中的DNS在作妖。最近几天正好看计算机网络的方面的书,就抽时间把DNS总结一下。DNS的作用TCP/IP网络中要求每一个互连的计…...
2024/4/14 22:49:42 - VMware版虚拟机怎么安装win7系统(详细教程)
转载:http://jingyan.baidu.com/article/cd4c29791fcf1b756e6e6034.html现在很多人都会在虚拟机上体验不同的系统,可是很多时候我们并不能非常顺利的安装好系统,这中间经常会出现很多差错,导致我们安装不上,比如在虚拟机上安装win7系统,很多人发现安装的时候总是会跳到工…...
2024/4/19 17:33:29 - 苹果macbook air安装win7系统详细图解
相信大家都知道苹果笔记本预装的是Mac系统吧,虽然mac系统很强大,但是很多朋友操作起来始终感觉不方便,想给苹果macbook air安装win7系统,但是却从来没有在苹果电脑上安装过微软操作系统,苦于不知如何操作。今天快启动小编就跟大家分享一下苹果macbookair安装win7系统详细图…...
2024/5/2 16:36:34 - Qt QTcpSocket 对连接服务器中断的不同情况进行判定
简述对于一个C/S结构的程序,客户端有些时候需要实时得知与服务器的连接状态。而对于客户端与服务器断开连接的因素很多,现在就目前遇到的情况进行一下总结。分为下面六种不同情况客户端网线断开 客户端网络断开 客户端通过HTTP代理连接服务器,代理机器断开代理 客户端通过HT…...
2024/4/14 22:49:39 - Linux安装JDK1.8(解压缩版)
1、在线下载JDK(我这下的是解压缩版本) JDK官网2、解压下载的压缩文件 tar -zxvf jdk-8u231-linux-x64.tar.gz?AuthParam=1571989602_4d3850d23a21c807fdda9a19dc6331933、修改环境变量 vim /etc/profile添加变量 export JAVA_HOME=/usr/java/jdk1.8.0_231 export JRE_HOME=$…...
2024/5/2 7:18:40 - springboot+shiro进阶篇
文章的进阶并不是对源码进行一通分析,只是在入门篇上进行更深入的思考,并在实际应用中遇到的可能性比较大的问题,此文章的项目代码是在入门篇基础上添加的。1、文章的主要内容介绍项目需求中往往会遇到这种情况:有A,B,C三个链接,有无数个用户,有admin,simple,reader三个…...
2024/5/2 10:52:41 - 十六进制转换成八进制
/*问题描述从键盘输入一个不超过8位的正的十六进制数字符串,将它转换为正的十进制数后输出。注:十六进制数中的10~15分别用大写的英文字母A、B、C、D、E、F表示。 样例输入 FFFF 样例输出 65535*/ #include<stdio.h> #include<string.h> int main(void) {int i=0…...
2024/5/6 19:11:36 - 浙江推出冷链上“链” 全面掌握冷链食品供应链流向
冷链上“链”。6月22日,记者从省市场监管局获悉,基于区块链技术开发的浙江省冷链食品追溯系统(下称“浙冷链”)正式上线。“浙冷链”首批将对进口生食水产品进行赋码、扫码,后续实现全省重点冷链食品全覆盖。 该系统以进口食品经营企业和农产品批发市场作为首站,利用“冷…...
2024/4/14 22:49:35
最新文章
- 传输层 DNS(干货)
目录 DNS 层次 层次命名空间 hosts 文件 域名空间 区域 (Zone) DNS服务器类型 DNS 资源记录 DDNS DNS 解析原理 正向解析与反向解析 区域管辖与权威服务器 区域委派 高速缓存 权威性应答与非权威性应答 递归查询与迭代查询 域名解析过程 DNS 报文 结构 首部格…...
2024/5/8 2:21:26 - 梯度消失和梯度爆炸的一些处理方法
在这里是记录一下梯度消失或梯度爆炸的一些处理技巧。全当学习总结了如有错误还请留言,在此感激不尽。 权重和梯度的更新公式如下: w w − η ⋅ ∇ w w w - \eta \cdot \nabla w ww−η⋅∇w 个人通俗的理解梯度消失就是网络模型在反向求导的时候出…...
2024/5/7 10:36:02 - 推荐学习什么编程语言?
选择编程语言学习时,除了就业因素外,还可以考虑以下几个方面来决定学习哪些编程语言: 个人兴趣与目标:如果你对某个特定领域感兴趣,比如游戏开发、数据分析、人工智能等,可以选择与该领域紧密相关的编程语言…...
2024/5/1 18:09:40 - 腾讯云容器与Serverless的融合:探索《2023技术实践精选集》中的创新实践
腾讯云容器与Serverless的融合:探索《2023技术实践精选集》中的创新实践 文章目录 腾讯云容器与Serverless的融合:探索《2023技术实践精选集》中的创新实践引言《2023腾讯云容器和函数计算技术实践精选集》整体评价特色亮点分析Serverless与Kubernetes的…...
2024/5/5 8:50:37 - 【自学记录5】【Pytorch2.0深度学习从零开始学 王晓华】第五章 基于Pytorch卷积层的MNIST分类实战
5.1.2 PyTorch2.0中卷积函数实现详解 1、torch.nn.Conv2d in_channels3: 输入的通道数,对应图像的3个颜色通道。 out_channels10: 输出的通道数,即卷积后我们想要得到的特征图的数量。 kernel_size3: 卷积核的大小,这里使用的是3x3的卷积核…...
2024/5/7 10:16:25 - 【外汇早评】美通胀数据走低,美元调整
原标题:【外汇早评】美通胀数据走低,美元调整昨日美国方面公布了新一期的核心PCE物价指数数据,同比增长1.6%,低于前值和预期值的1.7%,距离美联储的通胀目标2%继续走低,通胀压力较低,且此前美国一季度GDP初值中的消费部分下滑明显,因此市场对美联储后续更可能降息的政策…...
2024/5/7 5:50:09 - 【原油贵金属周评】原油多头拥挤,价格调整
原标题:【原油贵金属周评】原油多头拥挤,价格调整本周国际劳动节,我们喜迎四天假期,但是整个金融市场确实流动性充沛,大事频发,各个商品波动剧烈。美国方面,在本周四凌晨公布5月份的利率决议和新闻发布会,维持联邦基金利率在2.25%-2.50%不变,符合市场预期。同时美联储…...
2024/5/7 9:45:25 - 【外汇周评】靓丽非农不及疲软通胀影响
原标题:【外汇周评】靓丽非农不及疲软通胀影响在刚结束的周五,美国方面公布了新一期的非农就业数据,大幅好于前值和预期,新增就业重新回到20万以上。具体数据: 美国4月非农就业人口变动 26.3万人,预期 19万人,前值 19.6万人。 美国4月失业率 3.6%,预期 3.8%,前值 3…...
2024/5/4 23:54:56 - 【原油贵金属早评】库存继续增加,油价收跌
原标题:【原油贵金属早评】库存继续增加,油价收跌周三清晨公布美国当周API原油库存数据,上周原油库存增加281万桶至4.692亿桶,增幅超过预期的74.4万桶。且有消息人士称,沙特阿美据悉将于6月向亚洲炼油厂额外出售更多原油,印度炼油商预计将每日获得至多20万桶的额外原油供…...
2024/5/7 14:25:14 - 【外汇早评】日本央行会议纪要不改日元强势
原标题:【外汇早评】日本央行会议纪要不改日元强势近两日日元大幅走强与近期市场风险情绪上升,避险资金回流日元有关,也与前一段时间的美日贸易谈判给日本缓冲期,日本方面对汇率问题也避免继续贬值有关。虽然今日早间日本央行公布的利率会议纪要仍然是支持宽松政策,但这符…...
2024/5/4 23:54:56 - 【原油贵金属早评】欧佩克稳定市场,填补伊朗问题的影响
原标题:【原油贵金属早评】欧佩克稳定市场,填补伊朗问题的影响近日伊朗局势升温,导致市场担忧影响原油供给,油价试图反弹。此时OPEC表态稳定市场。据消息人士透露,沙特6月石油出口料将低于700万桶/日,沙特已经收到石油消费国提出的6月份扩大出口的“适度要求”,沙特将满…...
2024/5/4 23:55:05 - 【外汇早评】美欲与伊朗重谈协议
原标题:【外汇早评】美欲与伊朗重谈协议美国对伊朗的制裁遭到伊朗的抗议,昨日伊朗方面提出将部分退出伊核协议。而此行为又遭到欧洲方面对伊朗的谴责和警告,伊朗外长昨日回应称,欧洲国家履行它们的义务,伊核协议就能保证存续。据传闻伊朗的导弹已经对准了以色列和美国的航…...
2024/5/4 23:54:56 - 【原油贵金属早评】波动率飙升,市场情绪动荡
原标题:【原油贵金属早评】波动率飙升,市场情绪动荡因中美贸易谈判不安情绪影响,金融市场各资产品种出现明显的波动。随着美国与中方开启第十一轮谈判之际,美国按照既定计划向中国2000亿商品征收25%的关税,市场情绪有所平复,已经开始接受这一事实。虽然波动率-恐慌指数VI…...
2024/5/7 11:36:39 - 【原油贵金属周评】伊朗局势升温,黄金多头跃跃欲试
原标题:【原油贵金属周评】伊朗局势升温,黄金多头跃跃欲试美国和伊朗的局势继续升温,市场风险情绪上升,避险黄金有向上突破阻力的迹象。原油方面稍显平稳,近期美国和OPEC加大供给及市场需求回落的影响,伊朗局势并未推升油价走强。近期中美贸易谈判摩擦再度升级,美国对中…...
2024/5/4 23:54:56 - 【原油贵金属早评】市场情绪继续恶化,黄金上破
原标题:【原油贵金属早评】市场情绪继续恶化,黄金上破周初中国针对于美国加征关税的进行的反制措施引发市场情绪的大幅波动,人民币汇率出现大幅的贬值动能,金融市场受到非常明显的冲击。尤其是波动率起来之后,对于股市的表现尤其不安。隔夜美国股市出现明显的下行走势,这…...
2024/5/6 1:40:42 - 【外汇早评】美伊僵持,风险情绪继续升温
原标题:【外汇早评】美伊僵持,风险情绪继续升温昨日沙特两艘油轮再次发生爆炸事件,导致波斯湾局势进一步恶化,市场担忧美伊可能会出现摩擦生火,避险品种获得支撑,黄金和日元大幅走强。美指受中美贸易问题影响而在低位震荡。继5月12日,四艘商船在阿联酋领海附近的阿曼湾、…...
2024/5/4 23:54:56 - 【原油贵金属早评】贸易冲突导致需求低迷,油价弱势
原标题:【原油贵金属早评】贸易冲突导致需求低迷,油价弱势近日虽然伊朗局势升温,中东地区几起油船被袭击事件影响,但油价并未走高,而是出于调整结构中。由于市场预期局势失控的可能性较低,而中美贸易问题导致的全球经济衰退风险更大,需求会持续低迷,因此油价调整压力较…...
2024/5/4 23:55:17 - 氧生福地 玩美北湖(上)——为时光守候两千年
原标题:氧生福地 玩美北湖(上)——为时光守候两千年一次说走就走的旅行,只有一张高铁票的距离~ 所以,湖南郴州,我来了~ 从广州南站出发,一个半小时就到达郴州西站了。在动车上,同时改票的南风兄和我居然被分到了一个车厢,所以一路非常愉快地聊了过来。 挺好,最起…...
2024/5/7 9:26:26 - 氧生福地 玩美北湖(中)——永春梯田里的美与鲜
原标题:氧生福地 玩美北湖(中)——永春梯田里的美与鲜一觉醒来,因为大家太爱“美”照,在柳毅山庄去寻找龙女而错过了早餐时间。近十点,向导坏坏还是带着饥肠辘辘的我们去吃郴州最富有盛名的“鱼头粉”。说这是“十二分推荐”,到郴州必吃的美食之一。 哇塞!那个味美香甜…...
2024/5/4 23:54:56 - 氧生福地 玩美北湖(下)——奔跑吧骚年!
原标题:氧生福地 玩美北湖(下)——奔跑吧骚年!让我们红尘做伴 活得潇潇洒洒 策马奔腾共享人世繁华 对酒当歌唱出心中喜悦 轰轰烈烈把握青春年华 让我们红尘做伴 活得潇潇洒洒 策马奔腾共享人世繁华 对酒当歌唱出心中喜悦 轰轰烈烈把握青春年华 啊……啊……啊 两…...
2024/5/4 23:55:06 - 扒开伪装医用面膜,翻六倍价格宰客,小姐姐注意了!
原标题:扒开伪装医用面膜,翻六倍价格宰客,小姐姐注意了!扒开伪装医用面膜,翻六倍价格宰客!当行业里的某一品项火爆了,就会有很多商家蹭热度,装逼忽悠,最近火爆朋友圈的医用面膜,被沾上了污点,到底怎么回事呢? “比普通面膜安全、效果好!痘痘、痘印、敏感肌都能用…...
2024/5/5 8:13:33 - 「发现」铁皮石斛仙草之神奇功效用于医用面膜
原标题:「发现」铁皮石斛仙草之神奇功效用于医用面膜丽彦妆铁皮石斛医用面膜|石斛多糖无菌修护补水贴19大优势: 1、铁皮石斛:自唐宋以来,一直被列为皇室贡品,铁皮石斛生于海拔1600米的悬崖峭壁之上,繁殖力差,产量极低,所以古代仅供皇室、贵族享用 2、铁皮石斛自古民间…...
2024/5/4 23:55:16 - 丽彦妆\医用面膜\冷敷贴轻奢医学护肤引导者
原标题:丽彦妆\医用面膜\冷敷贴轻奢医学护肤引导者【公司简介】 广州华彬企业隶属香港华彬集团有限公司,专注美业21年,其旗下品牌: 「圣茵美」私密荷尔蒙抗衰,产后修复 「圣仪轩」私密荷尔蒙抗衰,产后修复 「花茵莳」私密荷尔蒙抗衰,产后修复 「丽彦妆」专注医学护…...
2024/5/4 23:54:58 - 广州械字号面膜生产厂家OEM/ODM4项须知!
原标题:广州械字号面膜生产厂家OEM/ODM4项须知!广州械字号面膜生产厂家OEM/ODM流程及注意事项解读: 械字号医用面膜,其实在我国并没有严格的定义,通常我们说的医美面膜指的应该是一种「医用敷料」,也就是说,医用面膜其实算作「医疗器械」的一种,又称「医用冷敷贴」。 …...
2024/5/6 21:42:42 - 械字号医用眼膜缓解用眼过度到底有无作用?
原标题:械字号医用眼膜缓解用眼过度到底有无作用?医用眼膜/械字号眼膜/医用冷敷眼贴 凝胶层为亲水高分子材料,含70%以上的水分。体表皮肤温度传导到本产品的凝胶层,热量被凝胶内水分子吸收,通过水分的蒸发带走大量的热量,可迅速地降低体表皮肤局部温度,减轻局部皮肤的灼…...
2024/5/4 23:54:56 - 配置失败还原请勿关闭计算机,电脑开机屏幕上面显示,配置失败还原更改 请勿关闭计算机 开不了机 这个问题怎么办...
解析如下:1、长按电脑电源键直至关机,然后再按一次电源健重启电脑,按F8健进入安全模式2、安全模式下进入Windows系统桌面后,按住“winR”打开运行窗口,输入“services.msc”打开服务设置3、在服务界面,选中…...
2022/11/19 21:17:18 - 错误使用 reshape要执行 RESHAPE,请勿更改元素数目。
%读入6幅图像(每一幅图像的大小是564*564) f1 imread(WashingtonDC_Band1_564.tif); subplot(3,2,1),imshow(f1); f2 imread(WashingtonDC_Band2_564.tif); subplot(3,2,2),imshow(f2); f3 imread(WashingtonDC_Band3_564.tif); subplot(3,2,3),imsho…...
2022/11/19 21:17:16 - 配置 已完成 请勿关闭计算机,win7系统关机提示“配置Windows Update已完成30%请勿关闭计算机...
win7系统关机提示“配置Windows Update已完成30%请勿关闭计算机”问题的解决方法在win7系统关机时如果有升级系统的或者其他需要会直接进入一个 等待界面,在等待界面中我们需要等待操作结束才能关机,虽然这比较麻烦,但是对系统进行配置和升级…...
2022/11/19 21:17:15 - 台式电脑显示配置100%请勿关闭计算机,“准备配置windows 请勿关闭计算机”的解决方法...
有不少用户在重装Win7系统或更新系统后会遇到“准备配置windows,请勿关闭计算机”的提示,要过很久才能进入系统,有的用户甚至几个小时也无法进入,下面就教大家这个问题的解决方法。第一种方法:我们首先在左下角的“开始…...
2022/11/19 21:17:14 - win7 正在配置 请勿关闭计算机,怎么办Win7开机显示正在配置Windows Update请勿关机...
置信有很多用户都跟小编一样遇到过这样的问题,电脑时发现开机屏幕显现“正在配置Windows Update,请勿关机”(如下图所示),而且还需求等大约5分钟才干进入系统。这是怎样回事呢?一切都是正常操作的,为什么开时机呈现“正…...
2022/11/19 21:17:13 - 准备配置windows 请勿关闭计算机 蓝屏,Win7开机总是出现提示“配置Windows请勿关机”...
Win7系统开机启动时总是出现“配置Windows请勿关机”的提示,没过几秒后电脑自动重启,每次开机都这样无法进入系统,此时碰到这种现象的用户就可以使用以下5种方法解决问题。方法一:开机按下F8,在出现的Windows高级启动选…...
2022/11/19 21:17:12 - 准备windows请勿关闭计算机要多久,windows10系统提示正在准备windows请勿关闭计算机怎么办...
有不少windows10系统用户反映说碰到这样一个情况,就是电脑提示正在准备windows请勿关闭计算机,碰到这样的问题该怎么解决呢,现在小编就给大家分享一下windows10系统提示正在准备windows请勿关闭计算机的具体第一种方法:1、2、依次…...
2022/11/19 21:17:11 - 配置 已完成 请勿关闭计算机,win7系统关机提示“配置Windows Update已完成30%请勿关闭计算机”的解决方法...
今天和大家分享一下win7系统重装了Win7旗舰版系统后,每次关机的时候桌面上都会显示一个“配置Windows Update的界面,提示请勿关闭计算机”,每次停留好几分钟才能正常关机,导致什么情况引起的呢?出现配置Windows Update…...
2022/11/19 21:17:10 - 电脑桌面一直是清理请关闭计算机,windows7一直卡在清理 请勿关闭计算机-win7清理请勿关机,win7配置更新35%不动...
只能是等着,别无他法。说是卡着如果你看硬盘灯应该在读写。如果从 Win 10 无法正常回滚,只能是考虑备份数据后重装系统了。解决来方案一:管理员运行cmd:net stop WuAuServcd %windir%ren SoftwareDistribution SDoldnet start WuA…...
2022/11/19 21:17:09 - 计算机配置更新不起,电脑提示“配置Windows Update请勿关闭计算机”怎么办?
原标题:电脑提示“配置Windows Update请勿关闭计算机”怎么办?win7系统中在开机与关闭的时候总是显示“配置windows update请勿关闭计算机”相信有不少朋友都曾遇到过一次两次还能忍但经常遇到就叫人感到心烦了遇到这种问题怎么办呢?一般的方…...
2022/11/19 21:17:08 - 计算机正在配置无法关机,关机提示 windows7 正在配置windows 请勿关闭计算机 ,然后等了一晚上也没有关掉。现在电脑无法正常关机...
关机提示 windows7 正在配置windows 请勿关闭计算机 ,然后等了一晚上也没有关掉。现在电脑无法正常关机以下文字资料是由(历史新知网www.lishixinzhi.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!关机提示 windows7 正在配…...
2022/11/19 21:17:05 - 钉钉提示请勿通过开发者调试模式_钉钉请勿通过开发者调试模式是真的吗好不好用...
钉钉请勿通过开发者调试模式是真的吗好不好用 更新时间:2020-04-20 22:24:19 浏览次数:729次 区域: 南阳 > 卧龙 列举网提醒您:为保障您的权益,请不要提前支付任何费用! 虚拟位置外设器!!轨迹模拟&虚拟位置外设神器 专业用于:钉钉,外勤365,红圈通,企业微信和…...
2022/11/19 21:17:05 - 配置失败还原请勿关闭计算机怎么办,win7系统出现“配置windows update失败 还原更改 请勿关闭计算机”,长时间没反应,无法进入系统的解决方案...
前几天班里有位学生电脑(windows 7系统)出问题了,具体表现是开机时一直停留在“配置windows update失败 还原更改 请勿关闭计算机”这个界面,长时间没反应,无法进入系统。这个问题原来帮其他同学也解决过,网上搜了不少资料&#x…...
2022/11/19 21:17:04 - 一个电脑无法关闭计算机你应该怎么办,电脑显示“清理请勿关闭计算机”怎么办?...
本文为你提供了3个有效解决电脑显示“清理请勿关闭计算机”问题的方法,并在最后教给你1种保护系统安全的好方法,一起来看看!电脑出现“清理请勿关闭计算机”在Windows 7(SP1)和Windows Server 2008 R2 SP1中,添加了1个新功能在“磁…...
2022/11/19 21:17:03 - 请勿关闭计算机还原更改要多久,电脑显示:配置windows更新失败,正在还原更改,请勿关闭计算机怎么办...
许多用户在长期不使用电脑的时候,开启电脑发现电脑显示:配置windows更新失败,正在还原更改,请勿关闭计算机。。.这要怎么办呢?下面小编就带着大家一起看看吧!如果能够正常进入系统,建议您暂时移…...
2022/11/19 21:17:02 - 还原更改请勿关闭计算机 要多久,配置windows update失败 还原更改 请勿关闭计算机,电脑开机后一直显示以...
配置windows update失败 还原更改 请勿关闭计算机,电脑开机后一直显示以以下文字资料是由(历史新知网www.lishixinzhi.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!配置windows update失败 还原更改 请勿关闭计算机&#x…...
2022/11/19 21:17:01 - 电脑配置中请勿关闭计算机怎么办,准备配置windows请勿关闭计算机一直显示怎么办【图解】...
不知道大家有没有遇到过这样的一个问题,就是我们的win7系统在关机的时候,总是喜欢显示“准备配置windows,请勿关机”这样的一个页面,没有什么大碍,但是如果一直等着的话就要两个小时甚至更久都关不了机,非常…...
2022/11/19 21:17:00 - 正在准备配置请勿关闭计算机,正在准备配置windows请勿关闭计算机时间长了解决教程...
当电脑出现正在准备配置windows请勿关闭计算机时,一般是您正对windows进行升级,但是这个要是长时间没有反应,我们不能再傻等下去了。可能是电脑出了别的问题了,来看看教程的说法。正在准备配置windows请勿关闭计算机时间长了方法一…...
2022/11/19 21:16:59 - 配置失败还原请勿关闭计算机,配置Windows Update失败,还原更改请勿关闭计算机...
我们使用电脑的过程中有时会遇到这种情况,当我们打开电脑之后,发现一直停留在一个界面:“配置Windows Update失败,还原更改请勿关闭计算机”,等了许久还是无法进入系统。如果我们遇到此类问题应该如何解决呢࿰…...
2022/11/19 21:16:58 - 如何在iPhone上关闭“请勿打扰”
Apple’s “Do Not Disturb While Driving” is a potentially lifesaving iPhone feature, but it doesn’t always turn on automatically at the appropriate time. For example, you might be a passenger in a moving car, but your iPhone may think you’re the one dri…...
2022/11/19 21:16:57