1.项目目录结构

2.pom.xml

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd"><modelVersion>4.0.0</modelVersion><parent><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-parent</artifactId><version>2.3.0.RELEASE</version><relativePath/> <!-- lookup parent from repository --></parent><groupId>com.cxb</groupId><artifactId>shiro</artifactId><version>0.0.1-SNAPSHOT</version><name>shiro</name><description>Demo project for Spring Boot</description><properties><java.version>1.8</java.version></properties><dependencies><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-data-jpa</artifactId></dependency><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-thymeleaf</artifactId></dependency><!--NekoHTML 是一个简单地HTML扫描器和标签补偿器(tag balancer) ,使得程序能解析HTML文档并用标准的XML接口来访问其中的信息。这个解析器能投扫描HTML文件并“修正”许多作者(人或机器)在编写HTML文档过程中常犯的错误。NekoHTML 能增补缺失的父元素、自动用结束标签关闭相应的元素,以及不匹配的内嵌元素标签。NekoHTML 的开发使用了Xerces Native Interface (XNI),后者是Xerces2的实现基础。--><dependency><groupId>net.sourceforge.nekohtml</groupId><artifactId>nekohtml</artifactId></dependency><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId></dependency><dependency><groupId>mysql</groupId><artifactId>mysql-connector-java</artifactId><version>5.1.38</version></dependency><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-test</artifactId><scope>test</scope></dependency><dependency><groupId>org.apache.shiro</groupId><artifactId>shiro-spring</artifactId><version>1.4.0</version></dependency></dependencies><build><plugins><plugin><groupId>org.springframework.boot</groupId><artifactId>spring-boot-maven-plugin</artifactId></plugin></plugins></build></project>

3.application.yml

spring:datasource:url: jdbc:mysql://localhost:3306/shiro?useUnicode=true&characterEncoding=utf8&serverTimezone=UTCusername: rootpassword: 123456driver-class-name: com.mysql.jdbc.Driverjpa:database: mysqlshow-sql: truehibernate:ddl-auto: updatenaming:strategy: org.hibernate.cfg.DefaultComponentSafeNamingStrategyproperties:hibernate:dialect: org.hibernate.dialect.MySQL5Dialectthymeleaf:cache: falsemode: LEGACYHTML5prefix: classpath:/templates/suffix: .html

4.实体类 UserInfo

package com.cxb.shiro.entity;import java.io.Serializable;
import java.util.List;import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.FetchType;
import javax.persistence.GeneratedValue;
import javax.persistence.Id;
import javax.persistence.JoinColumn;
import javax.persistence.JoinTable;
import javax.persistence.ManyToMany;@Entity
public class UserInfo implements Serializable {/****/private static final long serialVersionUID = 2408336391165537166L;@Id@GeneratedValueprivate Integer uid;@Column(unique = true)private String username;private String name;private String password;private String salt;private byte state;@ManyToMany(fetch=FetchType.EAGER)@JoinTable(name = "SysUserRole", joinColumns = { @JoinColumn(name = "uid") }, inverseJoinColumns = { @JoinColumn(name = "roleId") })private List<SysRole> roles;public Integer getUid() {return uid;}public void setUid(Integer uid) {this.uid = uid;}public String getUsername() {return username;}public void setUsername(String username) {this.username = username;}public String getName() {return name;}public void setName(String name) {this.name = name;}public String getPassword() {return password;}public void setPassword(String password) {this.password = password;}public String getSalt() {return salt;}public void setSalt(String salt) {this.salt = salt;}public byte getState() {return state;}public void setState(byte state) {this.state = state;}public List<SysRole> getRoles() {return roles;}public void setRoles(List<SysRole> roles) {this.roles = roles;}public static long getSerialversionuid() {return serialVersionUID;}/*** 密码盐.** @return*/public String getCredentialsSalt() {//重新对盐重新进行了定义,用户名+salt,这样就更加不容易被破解//return this.username + this.salt;//为了测试方便,我们简单定义盐为frankString salt = "frank";return salt;}
}

5.实体类 SysRole

package com.cxb.shiro.entity;import java.io.Serializable;
import java.util.List;import javax.persistence.Entity;
import javax.persistence.FetchType;
import javax.persistence.GeneratedValue;
import javax.persistence.Id;
import javax.persistence.JoinColumn;
import javax.persistence.JoinTable;
import javax.persistence.ManyToMany;@Entity
public class SysRole implements Serializable {/****/private static final long serialVersionUID = 2662493471572546262L;@Id@GeneratedValueprivate Integer id;private String role;private String description;private Boolean available = Boolean.FALSE;@ManyToMany(fetch=FetchType.EAGER)@JoinTable(name = "SysRolePermission", joinColumns = { @JoinColumn(name = "roleId") }, inverseJoinColumns = { @JoinColumn(name = "permissionId") })private List<SysPermission> permissions;@ManyToMany@JoinTable(name = "SysUserRole", joinColumns = { @JoinColumn(name = "roleId") }, inverseJoinColumns = { @JoinColumn(name = "uid") })private List<UserInfo> userInfos;public Integer getId() {return id;}public void setId(Integer id) {this.id = id;}public String getRole() {return role;}public void setRole(String role) {this.role = role;}public String getDescription() {return description;}public void setDescription(String description) {this.description = description;}public Boolean getAvailable() {return available;}public void setAvailable(Boolean available) {this.available = available;}public List<SysPermission> getPermissions() {return permissions;}public void setPermissions(List<SysPermission> permissions) {this.permissions = permissions;}public List<UserInfo> getUserInfos() {return userInfos;}public void setUserInfos(List<UserInfo> userInfos) {this.userInfos = userInfos;}}

6.实体类 SysPermission

package com.cxb.shiro.entity;import java.io.Serializable;
import java.util.List;import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.Id;
import javax.persistence.JoinColumn;
import javax.persistence.JoinTable;
import javax.persistence.ManyToMany;@Entity
public class SysPermission implements Serializable {/****/private static final long serialVersionUID = 1708879712215410035L;@Id@GeneratedValueprivate Integer id;private String name;@Column(columnDefinition = "enum('menu','button')")private String resourceType;private String url;private String permission;private Long parentId;private String parentIds;private Boolean available = Boolean.FALSE;@ManyToMany@JoinTable(name = "SysRolePermission", joinColumns = { @JoinColumn(name = "permissionId") }, inverseJoinColumns = { @JoinColumn(name = "roleId") })private List<SysRole> roles;public Integer getId() {return id;}public void setId(Integer id) {this.id = id;}public String getName() {return name;}public void setName(String name) {this.name = name;}public String getResourceType() {return resourceType;}public void setResourceType(String resourceType) {this.resourceType = resourceType;}public String getUrl() {return url;}public void setUrl(String url) {this.url = url;}public String getPermission() {return permission;}public void setPermission(String permission) {this.permission = permission;}public Long getParentId() {return parentId;}public void setParentId(Long parentId) {this.parentId = parentId;}public String getParentIds() {return parentIds;}public void setParentIds(String parentIds) {this.parentIds = parentIds;}public Boolean getAvailable() {return available;}public void setAvailable(Boolean available) {this.available = available;}public static long getSerialversionuid() {return serialVersionUID;}public List<SysRole> getRoles() {return roles;}public void setRoles(List<SysRole> roles) {this.roles = roles;}}

7. UserInfoDao

package com.cxb.shiro.dao;import com.cxb.shiro.entity.UserInfo;
import org.springframework.data.repository.CrudRepository;public interface UserInfoDao extends CrudRepository<UserInfo, Integer>{UserInfo findByUsername(String username);
}

8.UserInfoService

package com.cxb.shiro.service;import com.cxb.shiro.entity.UserInfo;public interface UserInfoService {UserInfo findByUsername(String username);
}

9.UserInfoServiceImpl

package com.cxb.shiro.service.impl;import javax.annotation.Resource;import com.cxb.shiro.dao.UserInfoDao;
import com.cxb.shiro.entity.UserInfo;
import com.cxb.shiro.service.UserInfoService;
import org.springframework.stereotype.Service;@Service
public class UserInfoServiceImpl implements UserInfoService {@Resourceprivate UserInfoDao dao;public UserInfo findByUsername(String username) {return dao.findByUsername(username);}}

10.MyShiroRealm

package com.cxb.shiro.config;import javax.annotation.Resource;import com.cxb.shiro.entity.SysPermission;
import com.cxb.shiro.entity.SysRole;
import com.cxb.shiro.entity.UserInfo;
import com.cxb.shiro.service.UserInfoService;
import org.apache.shiro.authc.AuthenticationException;
import org.apache.shiro.authc.AuthenticationInfo;
import org.apache.shiro.authc.AuthenticationToken;
import org.apache.shiro.authc.SimpleAuthenticationInfo;
import org.apache.shiro.authz.AuthorizationInfo;
import org.apache.shiro.authz.SimpleAuthorizationInfo;
import org.apache.shiro.realm.AuthorizingRealm;
import org.apache.shiro.subject.PrincipalCollection;
import org.apache.shiro.util.ByteSource;public class MyShiroRealm extends AuthorizingRealm {@Resourceprivate UserInfoService userInfoService;/*** 权限配置*/@Overrideprotected AuthorizationInfo doGetAuthorizationInfo(PrincipalCollection principals) {System.out.println("MyShiroRealm->doGetAuthorizationInfo");SimpleAuthorizationInfo authorizationInfo = new SimpleAuthorizationInfo();UserInfo userInfo = (UserInfo) principals.getPrimaryPrincipal();for (SysRole role : userInfo.getRoles()) {authorizationInfo.addRole(role.getRole());for (SysPermission p : role.getPermissions()) {authorizationInfo.addStringPermission(p.getPermission());}}return authorizationInfo;}/*** 主要是用来进行身份认证的,也就是说验证用户输入的账号和密码是否正确。*/@Overrideprotected AuthenticationInfo doGetAuthenticationInfo(AuthenticationToken token)throws AuthenticationException {System.out.println("MyShiroRealm->doGetAuthenticationInfo");//用户名String username = (String) token.getPrincipal();System.out.println("username:" + username);//获取用户信息UserInfo userInfo = userInfoService.findByUsername(username);if (userInfo == null) {return null;}SimpleAuthenticationInfo authenticationInfo = new SimpleAuthenticationInfo(userInfo,userInfo.getPassword(), ByteSource.Util.bytes(userInfo.getCredentialsSalt()),getName());return authenticationInfo;}}

11.ShiroConfig

package com.cxb.shiro.config;import java.util.LinkedHashMap;
import java.util.Map;
import java.util.Properties;import org.apache.shiro.authc.credential.HashedCredentialsMatcher;
import org.apache.shiro.mgt.SecurityManager;
import org.apache.shiro.spring.security.interceptor.AuthorizationAttributeSourceAdvisor;
import org.apache.shiro.spring.web.ShiroFilterFactoryBean;
import org.apache.shiro.web.mgt.DefaultWebSecurityManager;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.web.servlet.handler.SimpleMappingExceptionResolver;@Configuration
public class ShiroConfig {@Beanpublic ShiroFilterFactoryBean shirFilter(SecurityManager securityManager) {ShiroFilterFactoryBean shiroFilterFactoryBean = new ShiroFilterFactoryBean();shiroFilterFactoryBean.setSecurityManager(securityManager);//拦截器  从上到下执行Map<String,String> filterChainDefinitionMap = new LinkedHashMap<String, String>();//不被拦截filterChainDefinitionMap.put("/static/**", "anon");//配置退出 shiro已经帮我们实现退出的代码filterChainDefinitionMap.put("/logout", "logout");//需要权限验证filterChainDefinitionMap.put("/**", "authc");//登陆页面shiroFilterFactoryBean.setLoginUrl("/login");//登陆成功跳转页面shiroFilterFactoryBean.setSuccessUrl("/index");//未授权页面shiroFilterFactoryBean.setUnauthorizedUrl("/403");shiroFilterFactoryBean.setFilterChainDefinitionMap(filterChainDefinitionMap);return shiroFilterFactoryBean;}/*** 凭证匹配器((由于我们的密码校验交给Shiro的SimpleAuthenticationInfo进行处理了)* @return*/@Beanpublic HashedCredentialsMatcher hashedCredentialsMatcher() {HashedCredentialsMatcher hashedCredentialsMather = new HashedCredentialsMatcher();hashedCredentialsMather.setHashAlgorithmName("md5"); //散列算法:这里使用MD5算法;hashedCredentialsMather.setHashIterations(1); //散列的次数,如果散列两次,相当于 md5(md5(""));return hashedCredentialsMather;}@Beanpublic MyShiroRealm myShiroRealm() {MyShiroRealm myShiroRealm = new MyShiroRealm();myShiroRealm.setCredentialsMatcher(hashedCredentialsMatcher());return myShiroRealm;}@Beanpublic SecurityManager securityManager() {DefaultWebSecurityManager securityManager = new DefaultWebSecurityManager();securityManager.setRealm(myShiroRealm());return securityManager;}/*** 开启shiro aop注解支持* @param securityManager* @return*/@Beanpublic AuthorizationAttributeSourceAdvisor authorizationAttributeSourceAdvisor(SecurityManager securityManager) {AuthorizationAttributeSourceAdvisor authorizationAttributeSourceAdvisor = new AuthorizationAttributeSourceAdvisor();authorizationAttributeSourceAdvisor.setSecurityManager(securityManager);return authorizationAttributeSourceAdvisor;}@Bean(name="simpleMappingExceptionResolver")public SimpleMappingExceptionResolver createSimpleMappingExceptionResolver() {SimpleMappingExceptionResolver r = new SimpleMappingExceptionResolver();Properties mappings = new Properties();mappings.setProperty("DatabaseException", "databaseError");mappings.setProperty("UnauthorizedException", "403");r.setExceptionMappings(mappings);r.setDefaultErrorView("error");r.setExceptionAttribute("ex");return r;}}

12.HomeController

package com.cxb.shiro.web;import java.util.Map;import javax.servlet.http.HttpServletRequest;import org.apache.shiro.authc.IncorrectCredentialsException;
import org.apache.shiro.authc.UnknownAccountException;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;@Controller
public class HomeController {@RequestMapping({"/","/index"})public String index() {return "/index";}@RequestMapping("/login")public String login(HttpServletRequest request,Map<String,Object> map) {System.out.println("HomeController->login");String exception = (String)request.getAttribute("shiroLoginFailure");System.out.println("exception="+exception);String msg = "";if(exception!=null) {if(UnknownAccountException.class.getName().equals(exception)) {msg = "UnknownAccountException->账号不存在";} else if(IncorrectCredentialsException.class.getName().equals(exception)) {msg = "IncorrectCredentialsException->密码不正确";} else if("kaptchaValidateFailed".equals(exception)) {msg = "验证码错误";} else {msg = " else ->"+exception;}map.put("msg", msg);return "/login";}map.put("msg", "login success");return "/index";}@RequestMapping("/403")public String unauthorizedRole() {System.out.println("HomeController->unauthorizedRole");return "/403";}
}

13.UserInfoController

package com.cxb.shiro.web;import org.apache.shiro.authz.annotation.RequiresPermissions;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;@Controller
public class UserInfoController {/*** 用户查询.* @return*/@RequestMapping("/userList")@RequiresPermissions("userInfo:view")//权限管理;public String userInfo(){System.out.println("UserInfoController->userInfo");return "userInfo";}/*** 用户添加;* @return*/@RequestMapping("/userAdd")@RequiresPermissions("userInfo:add")//权限管理;public String userInfoAdd(){System.out.println("UserInfoController->userInfoAdd");return "userInfoAdd";}/*** 用户删除;* @return*/@RequestMapping("/userDel")@RequiresPermissions("userInfo:del")//权限管理;public String userDel() throws Exception{System.out.println("UserInfoController->userDel");return "userInfoDel";}
}

14.ShiroApplication启动类

package com.cxb.shiro;import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;@SpringBootApplication
public class ShiroApplication {public static void main(String[] args) {SpringApplication.run(ShiroApplication.class, args);}}

15.数据库shiro

-- --------------------------------------------------------
-- 主机:                           127.0.0.1
-- 服务器版本:                        5.6.40 - MySQL Community Server (GPL)
-- 服务器操作系统:                      Win64
-- HeidiSQL 版本:                  8.2.0.4675
-- --------------------------------------------------------/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */;
/*!40101 SET NAMES utf8 */;
/*!40014 SET @OLD_FOREIGN_KEY_CHECKS=@@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=0 */;
/*!40101 SET @OLD_SQL_MODE=@@SQL_MODE, SQL_MODE='NO_AUTO_VALUE_ON_ZERO' */;-- 导出  表 shiro.sys_permission 结构
CREATE TABLE IF NOT EXISTS `sys_permission` (`id` int(11) NOT NULL AUTO_INCREMENT,`available` bit(1) DEFAULT NULL,`name` varchar(255) DEFAULT NULL,`parent_id` bigint(20) DEFAULT NULL,`parent_ids` varchar(255) DEFAULT NULL,`permission` varchar(255) DEFAULT NULL,`resource_type` enum('menu','button') DEFAULT NULL,`url` varchar(255) DEFAULT NULL,PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=utf8;-- 正在导出表  shiro.sys_permission 的数据:~0 rows (大约)
DELETE FROM `sys_permission`;
/*!40000 ALTER TABLE `sys_permission` DISABLE KEYS */;
INSERT INTO `sys_permission` (`id`, `available`, `name`, `parent_id`, `parent_ids`, `permission`, `resource_type`, `url`) VALUES(1, b'1', 'frank', 1, '1', 'userInfo:view', 'menu', '/userList/**');
/*!40000 ALTER TABLE `sys_permission` ENABLE KEYS */;-- 导出  表 shiro.sys_role 结构
CREATE TABLE IF NOT EXISTS `sys_role` (`id` int(11) NOT NULL AUTO_INCREMENT,`available` bit(1) DEFAULT NULL,`description` varchar(255) DEFAULT NULL,`role` varchar(255) DEFAULT NULL,PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=utf8;-- 正在导出表  shiro.sys_role 的数据:~0 rows (大约)
DELETE FROM `sys_role`;
/*!40000 ALTER TABLE `sys_role` DISABLE KEYS */;
INSERT INTO `sys_role` (`id`, `available`, `description`, `role`) VALUES(1, b'1', NULL, 'admin');
/*!40000 ALTER TABLE `sys_role` ENABLE KEYS */;-- 导出  表 shiro.sys_role_permission 结构
CREATE TABLE IF NOT EXISTS `sys_role_permission` (`permission_id` int(11) NOT NULL,`role_id` int(11) NOT NULL,KEY `FK9q28ewrhntqeipl1t04kh1be7` (`role_id`),KEY `FKomxrs8a388bknvhjokh440waq` (`permission_id`),CONSTRAINT `FK9q28ewrhntqeipl1t04kh1be7` FOREIGN KEY (`role_id`) REFERENCES `sys_role` (`id`),CONSTRAINT `FKomxrs8a388bknvhjokh440waq` FOREIGN KEY (`permission_id`) REFERENCES `sys_permission` (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;-- 正在导出表  shiro.sys_role_permission 的数据:~0 rows (大约)
DELETE FROM `sys_role_permission`;
/*!40000 ALTER TABLE `sys_role_permission` DISABLE KEYS */;
INSERT INTO `sys_role_permission` (`permission_id`, `role_id`) VALUES(1, 1);
/*!40000 ALTER TABLE `sys_role_permission` ENABLE KEYS */;-- 导出  表 shiro.sys_user_role 结构
CREATE TABLE IF NOT EXISTS `sys_user_role` (`role_id` int(11) NOT NULL,`uid` int(11) NOT NULL,KEY `FKgkmyslkrfeyn9ukmolvek8b8f` (`uid`),KEY `FKhh52n8vd4ny9ff4x9fb8v65qx` (`role_id`),CONSTRAINT `FKgkmyslkrfeyn9ukmolvek8b8f` FOREIGN KEY (`uid`) REFERENCES `user_info` (`uid`),CONSTRAINT `FKhh52n8vd4ny9ff4x9fb8v65qx` FOREIGN KEY (`role_id`) REFERENCES `sys_role` (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;-- 正在导出表  shiro.sys_user_role 的数据:~0 rows (大约)
DELETE FROM `sys_user_role`;
/*!40000 ALTER TABLE `sys_user_role` DISABLE KEYS */;
INSERT INTO `sys_user_role` (`role_id`, `uid`) VALUES(1, 1);
/*!40000 ALTER TABLE `sys_user_role` ENABLE KEYS */;-- 导出  表 shiro.user_info 结构
CREATE TABLE IF NOT EXISTS `user_info` (`uid` int(11) NOT NULL AUTO_INCREMENT,`name` varchar(255) DEFAULT NULL,`password` varchar(255) DEFAULT NULL,`salt` varchar(255) DEFAULT NULL,`state` tinyint(4) NOT NULL,`username` varchar(255) DEFAULT NULL,PRIMARY KEY (`uid`),UNIQUE KEY `UK_f2ksd6h8hsjtd57ipfq9myr64` (`username`)
) ENGINE=InnoDB AUTO_INCREMENT=3 DEFAULT CHARSET=utf8;-- 正在导出表  shiro.user_info 的数据:~0 rows (大约)
DELETE FROM `user_info`;
/*!40000 ALTER TABLE `user_info` DISABLE KEYS */;
INSERT INTO `user_info` (`uid`, `name`, `password`, `salt`, `state`, `username`) VALUES(1, 'frank', 'd40fdd323f5322ff34a41f026f35cf20', 'frank', 1, 'frank');
/*!40000 ALTER TABLE `user_info` ENABLE KEYS */;
/*!40101 SET SQL_MODE=IFNULL(@OLD_SQL_MODE, '') */;
/*!40014 SET FOREIGN_KEY_CHECKS=IF(@OLD_FOREIGN_KEY_CHECKS IS NULL, 1, @OLD_FOREIGN_KEY_CHECKS) */;
/*!40101 SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT */;

16.页面

403.html

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><title>Title</title>
</head><body><h3>403没有权限</h3></body>
</html>

index.html

<!DOCTYPE html>
<html lang="en" xmlns:th="http://www.w3.org/1999/xhtml">
<head><meta charset="UTF-8"><title>Title</title>
</head><body><h1>index</h1>登陆信息:<h4 th:text="${msg}"></h4></body>
</html>

login.html

<!DOCTYPE html>
<html lang="en" xmlns:th="http://www.w3.org/1999/xhtml">
<head><meta charset="UTF-8"><title>Title</title>
</head>
<body>
错误信息:<h4 th:text="${msg}"></h4>
<form action="" method="post"><p>账号:<input type="text" name="username" value="admin"/></p><p>密码:<input type="text" name="password" value="123456"/></p><p><input type="submit" value="登录"/></p>
</form>
</body>
</html>

userInfo.html

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><title>Title</title>
</head><body><h3>用户查询界面</h3></body>
</html>

userInfoAdd.html

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><title>Title</title>
</head>
<body><h3>用户添加界面</h3>
</body>
</html>

userInfoDel.html

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><title>Title</title>
</head>
<body><h3>用户删除界面</h3>
</body>
</html>

以上页面只是测试页面,只用来标题区分权限问题。

17.测试

因为该用户只有一个userInfo:view权限,只能查看userList接口。

项目下载:https://github.com/ChenXbFrank/springboot_shiro

查看全文
如若内容造成侵权/违法违规/事实不符,请联系编程学习网邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!

相关文章

  1. Docker无网络环境安装、RPM方式安装、有网络环境安装和阿里云脚本安装

    一、Docker安装(无网络环境) 安装静态二进制文件(方法一)下载静态二进制存档。转到 https://download.docker.com/linux/static/stable/ (或更改stable为nightly或test),选择您的硬件平台,然后下载.tgz与要安装的Docker Engine版本有关的文件。使用该tar实用程序提取存…...

    2024/4/17 2:55:48
  2. springboot系类代码:spring-boot-limit

    LIMIT 子句可以被用于强制 SELECT 语句返回指定的记录数。LIMIT 接受一个或两个数字参数。参数必须是一个整数常量。如果给定两个参数,第一个参数指定第一个返回记录行的偏移量,第二个参数指定返回记录行的最大数目。初始记录行的偏移量是 0(而不是 1): 为了与 PostgreSQL 兼…...

    2024/5/10 13:41:57
  3. 《跑步圣经》

    写在最前:以下内容摘抄自樊登读书。在希腊奥林匹亚阿尔菲斯河岸的岩壁上,至今还刻着古希腊的一段格言:“如果你想聪明,跑步吧;如果你想强壮,跑步吧;如果你想健康,跑步吧。”跑步是人类的第一运动:不用复杂的技巧,每个健康的人都会跑;装备简单,不需要专门的场地;不…...

    2024/4/23 15:26:03
  4. 封装一个JS翻页插件

    需求实现一个可复用的JS翻页插件 有基本功能和样式 能自定义翻页的处理一,页面准备 先准备好基本的页面结构 <div><div id="page"></div> </div>放大字体,整体居中 #page {text-align: center; } #page>button, #page>span {font-si…...

    2024/4/17 2:55:42
  5. JavaScript基础进阶(网页交互事件)

    网页交互事件 主要事件表:事件 说明onclick 鼠标单击事件onmouseover 鼠标经过事件onmouseout 鼠标移开事件onchange 文本框内容改变事件onselect 文本框内容别选中事件onfocus 光标聚集onblur 光标离开onload 网页导入onunload 关闭网页鼠标单击事件( onclick ) 举例 <htm…...

    2024/5/6 17:18:32
  6. 零基础入门CV task1

    思路:使用CNN进行定长字符分类; 运行系统要求:Python2/3,内存4G,有无GPU都可以 (P.S. 环境一定要配置好!环境很重要) 一、准备工作: 1.gpu环境的“深入”:https://github.com/datawhalechina/dive-into-cv-pytorch/tree/master/beginner/chapter01_preliminary_knowle…...

    2024/4/29 20:59:28
  7. 有趣的shell运行C

    看到大佬公众号里面有趣东西…以下保存 添加执行权限 运行#if 0 proName="${0%.*}" #去掉文件名后缀,作为程序名 gcc -o $proName "$0" ./$proName "$@" #传入命令行参数 rm $proName exit #endif#include<stdio.h> int main(void) {p…...

    2024/5/6 17:24:07
  8. window和linux互相ping不通的问题

    1.先确定有VMnet1和VMnet8 两个网卡如果没有,参考博文初始化VM NAT配置[https://blog.csdn.net/liouxiaozhou/article/details/78482242] 2.配置过程: 参考博文如下 NAT配置 这篇博文是2016年的,最后的网关,我按他的配是有问题的一定要改成。2而不是。1 安装好虚拟机后,需…...

    2024/5/6 7:09:15
  9. 阿里开发手册泰山版学习笔记六、编程规约-集合处理

    【强制】关于 hashCode 和 equals 的处理,遵循如下规则: 1) 只要重写 equals,就必须重写 hashCode。 2) 因为 Set 存储的是不重复的对象,依据 hashCode 和 equals 进行判断,所以 Set 存储的对象必须重写这两个方法。 3) 如果自定义对象作为 Map 的键,那么必须覆写 has…...

    2024/4/30 4:44:36
  10. Java Web开发技术回顾

    一、Web技术的发展1、Web技术早在20世纪出,就有一定范围的应用,但那时的web应用大都是基于HTML的静态页面。2、1998年,Java家族迎来了第一个支持动态Web技术的成员,Servlet。Servlet由java 实现,故具备Java的所有优点。3、sun在1999年发布了JSP规范。二、web技术Javaweb技术…...

    2024/5/6 5:25:09
  11. linux中的文件IO、文件操作API、标准IO

    1. 文件描述符fd2. 文件的打开,读文件,写文件3. OPEN函数的flag_13.1 文件的读写权限(O_RDONLY ; O_WRONLY ; O_RDWR )3.2 文件打开的内容操作(O_TRUNC ; O_APPEND)3.3 结束进程(exit;_exit;Exit)man 2 是系统调用 ; man 3 是库函数4. OPEN函数的flag_24.1 文件“…...

    2024/4/26 1:14:26
  12. Andriodstudio打包时的错误AAPT: error: failed to read PNG signature: file does not start with PNG signature

    问题原因 将jpg文件直接修改后缀转成png文件后出现png签名找不到的错误信息 解决方法 将报错的文件导出,并将其后缀改为原来的jpg等格式。然后使用看图软件,将其另存为png格式的图片,再导入。...

    2024/4/23 15:26:02
  13. 今日笔试总结

    今天的笔试中出现了一些不够熟悉的部分,做一下总结 1、函数中默认的全局变量 def foo(a,b,c):a += 1b.append(1)c = c + [1]a是个整数,函数中的a是个局部变量,a的值不会变化 b是列表,由于函数对列表进行了修改,这时b作为全局变量,b的列表内容发生了变化 c是列表,但在这种…...

    2024/5/9 20:01:33
  14. Anaconda & spyder中的安装第三方库wordcloud

    Anaconda & spyder和python IDLE中的安装第三方库wordcloud 方法一: Anaconda Prompt(IDLE)中直接pip命令安装 打开Anaconda Prompt (IDLE则打开cmd命令框)输入命令pip install wordcloud,回车安装完成 但是因为外国的网络很不稳定,容易安装失败如下图方法二: 先离线后…...

    2024/4/23 15:26:03
  15. 【linux】centos7 Linux环境下删除自带yum和python2.7以后,重新安装新版本yum和python2.7【失败】

    因为我不是按照这个顺序操作的,所以建议查看下版本就OK了,就别乱删了。往下看 执行 “yum repolist all” 查看您拥有的源。 yum repolist all1.检查是否安装yum包。查看RHEL是否安装了yum,若是安装了,那么又有哪些yum包: rpm -qa |grep yum2 删除redhat自带的yum包 #rpm …...

    2024/5/6 6:10:22
  16. jQuery下拉框元素操作

    对select下拉中元素的操作:增、删、清空<!DOCTYPE html> <html><head><meta charset="UTF-8"><title></title><script src="https://cdn.bootcdn.net/ajax/libs/jquery/2.2.0/jquery.js" type="text/javascr…...

    2024/5/6 17:21:32
  17. strerror和perror函数的用法及区别

    strerror原型 #inlcude <string.h> char *strerror(int errnum);strrerror 函数将errnum映射为一个出错消息字符串,并返回该字符串指针,这里的“字符串”是Unix中已经定义好的常量字符串。 perror原型 #inlcude <stdio.h> void perror(char *msg);perro函数是基于…...

    2024/4/23 15:26:04
  18. 网页前台设计 javascritp小知识点梳理

    页面加载后运行js的两个方法$(document).ready(function(){}); $(function(){});...

    2024/5/6 9:27:09
  19. 交叉熵公式如何推导?

    使用最小二乘法的二次代价函数作为损失函数由于存在计算收敛时间长的情况,人们引入了交叉熵函数,利用交叉熵和sigmoid函数,可以消除sigmoid函数的冗长性,提高梯度下降法的计算速度,那么,交叉熵函数是如何推导出来的呢?...

    2024/4/23 15:26:02
  20. mapreduce入门之wordcount案例

    MapReduce入门之wordcount案例 1 pom.xml的配置 <?xml version="1.0" encoding="UTF-8"?> <project xmlns="http://maven.apache.org/POM/4.0.0"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation...

    2024/5/6 6:54:31

最新文章

  1. DDD面试题:DDD聚合和表的对应关系是什么 ?(来自蚂蚁面试)

    尼恩说在前面&#xff1a; 在40岁老架构师 尼恩的读者交流群(50)中&#xff0c;最近有小伙伴拿到了一线互联网企业如字节、阿里、滴滴、极兔、有赞、希音、百度、网易、美团的面试资格&#xff0c;遇到很多很重要的面试题&#xff1a; DDD 的外部接口调用&#xff0c;应该放在…...

    2024/5/10 17:15:29
  2. 梯度消失和梯度爆炸的一些处理方法

    在这里是记录一下梯度消失或梯度爆炸的一些处理技巧。全当学习总结了如有错误还请留言&#xff0c;在此感激不尽。 权重和梯度的更新公式如下&#xff1a; w w − η ⋅ ∇ w w w - \eta \cdot \nabla w ww−η⋅∇w 个人通俗的理解梯度消失就是网络模型在反向求导的时候出…...

    2024/5/9 21:23:04
  3. 【干货】零售商的商品规划策略

    商品规划&#xff0c;无疑是零售业的生命之源&#xff0c;是推动业务腾飞的强大引擎。一个精心策划的商品规划策略&#xff0c;不仅能帮助零售商在激烈的市场竞争中稳固立足&#xff0c;更能精准捕捉客户需求&#xff0c;实现利润最大化。以下&#xff0c;我们将深入探讨零售商…...

    2024/5/10 0:24:47
  4. 基于ArrayList实现简单洗牌

    前言 在之前的那篇文章中&#xff0c;我们已经认识了顺序表—>http://t.csdnimg.cn/2I3fE 基于此&#xff0c;便好理解ArrayList和后面的洗牌游戏了。 什么是ArrayList? ArrayList底层是一段连续的空间&#xff0c;并且可以动态扩容&#xff0c;是一个动态类型的顺序表&…...

    2024/5/9 9:17:23
  5. 【外汇早评】美通胀数据走低,美元调整

    原标题:【外汇早评】美通胀数据走低,美元调整昨日美国方面公布了新一期的核心PCE物价指数数据,同比增长1.6%,低于前值和预期值的1.7%,距离美联储的通胀目标2%继续走低,通胀压力较低,且此前美国一季度GDP初值中的消费部分下滑明显,因此市场对美联储后续更可能降息的政策…...

    2024/5/10 12:36:12
  6. 【原油贵金属周评】原油多头拥挤,价格调整

    原标题:【原油贵金属周评】原油多头拥挤,价格调整本周国际劳动节,我们喜迎四天假期,但是整个金融市场确实流动性充沛,大事频发,各个商品波动剧烈。美国方面,在本周四凌晨公布5月份的利率决议和新闻发布会,维持联邦基金利率在2.25%-2.50%不变,符合市场预期。同时美联储…...

    2024/5/9 15:10:32
  7. 【外汇周评】靓丽非农不及疲软通胀影响

    原标题:【外汇周评】靓丽非农不及疲软通胀影响在刚结束的周五,美国方面公布了新一期的非农就业数据,大幅好于前值和预期,新增就业重新回到20万以上。具体数据: 美国4月非农就业人口变动 26.3万人,预期 19万人,前值 19.6万人。 美国4月失业率 3.6%,预期 3.8%,前值 3…...

    2024/5/4 23:54:56
  8. 【原油贵金属早评】库存继续增加,油价收跌

    原标题:【原油贵金属早评】库存继续增加,油价收跌周三清晨公布美国当周API原油库存数据,上周原油库存增加281万桶至4.692亿桶,增幅超过预期的74.4万桶。且有消息人士称,沙特阿美据悉将于6月向亚洲炼油厂额外出售更多原油,印度炼油商预计将每日获得至多20万桶的额外原油供…...

    2024/5/9 4:20:59
  9. 【外汇早评】日本央行会议纪要不改日元强势

    原标题:【外汇早评】日本央行会议纪要不改日元强势近两日日元大幅走强与近期市场风险情绪上升,避险资金回流日元有关,也与前一段时间的美日贸易谈判给日本缓冲期,日本方面对汇率问题也避免继续贬值有关。虽然今日早间日本央行公布的利率会议纪要仍然是支持宽松政策,但这符…...

    2024/5/4 23:54:56
  10. 【原油贵金属早评】欧佩克稳定市场,填补伊朗问题的影响

    原标题:【原油贵金属早评】欧佩克稳定市场,填补伊朗问题的影响近日伊朗局势升温,导致市场担忧影响原油供给,油价试图反弹。此时OPEC表态稳定市场。据消息人士透露,沙特6月石油出口料将低于700万桶/日,沙特已经收到石油消费国提出的6月份扩大出口的“适度要求”,沙特将满…...

    2024/5/4 23:55:05
  11. 【外汇早评】美欲与伊朗重谈协议

    原标题:【外汇早评】美欲与伊朗重谈协议美国对伊朗的制裁遭到伊朗的抗议,昨日伊朗方面提出将部分退出伊核协议。而此行为又遭到欧洲方面对伊朗的谴责和警告,伊朗外长昨日回应称,欧洲国家履行它们的义务,伊核协议就能保证存续。据传闻伊朗的导弹已经对准了以色列和美国的航…...

    2024/5/4 23:54:56
  12. 【原油贵金属早评】波动率飙升,市场情绪动荡

    原标题:【原油贵金属早评】波动率飙升,市场情绪动荡因中美贸易谈判不安情绪影响,金融市场各资产品种出现明显的波动。随着美国与中方开启第十一轮谈判之际,美国按照既定计划向中国2000亿商品征收25%的关税,市场情绪有所平复,已经开始接受这一事实。虽然波动率-恐慌指数VI…...

    2024/5/7 11:36:39
  13. 【原油贵金属周评】伊朗局势升温,黄金多头跃跃欲试

    原标题:【原油贵金属周评】伊朗局势升温,黄金多头跃跃欲试美国和伊朗的局势继续升温,市场风险情绪上升,避险黄金有向上突破阻力的迹象。原油方面稍显平稳,近期美国和OPEC加大供给及市场需求回落的影响,伊朗局势并未推升油价走强。近期中美贸易谈判摩擦再度升级,美国对中…...

    2024/5/4 23:54:56
  14. 【原油贵金属早评】市场情绪继续恶化,黄金上破

    原标题:【原油贵金属早评】市场情绪继续恶化,黄金上破周初中国针对于美国加征关税的进行的反制措施引发市场情绪的大幅波动,人民币汇率出现大幅的贬值动能,金融市场受到非常明显的冲击。尤其是波动率起来之后,对于股市的表现尤其不安。隔夜美国股市出现明显的下行走势,这…...

    2024/5/6 1:40:42
  15. 【外汇早评】美伊僵持,风险情绪继续升温

    原标题:【外汇早评】美伊僵持,风险情绪继续升温昨日沙特两艘油轮再次发生爆炸事件,导致波斯湾局势进一步恶化,市场担忧美伊可能会出现摩擦生火,避险品种获得支撑,黄金和日元大幅走强。美指受中美贸易问题影响而在低位震荡。继5月12日,四艘商船在阿联酋领海附近的阿曼湾、…...

    2024/5/4 23:54:56
  16. 【原油贵金属早评】贸易冲突导致需求低迷,油价弱势

    原标题:【原油贵金属早评】贸易冲突导致需求低迷,油价弱势近日虽然伊朗局势升温,中东地区几起油船被袭击事件影响,但油价并未走高,而是出于调整结构中。由于市场预期局势失控的可能性较低,而中美贸易问题导致的全球经济衰退风险更大,需求会持续低迷,因此油价调整压力较…...

    2024/5/8 20:48:49
  17. 氧生福地 玩美北湖(上)——为时光守候两千年

    原标题:氧生福地 玩美北湖(上)——为时光守候两千年一次说走就走的旅行,只有一张高铁票的距离~ 所以,湖南郴州,我来了~ 从广州南站出发,一个半小时就到达郴州西站了。在动车上,同时改票的南风兄和我居然被分到了一个车厢,所以一路非常愉快地聊了过来。 挺好,最起…...

    2024/5/7 9:26:26
  18. 氧生福地 玩美北湖(中)——永春梯田里的美与鲜

    原标题:氧生福地 玩美北湖(中)——永春梯田里的美与鲜一觉醒来,因为大家太爱“美”照,在柳毅山庄去寻找龙女而错过了早餐时间。近十点,向导坏坏还是带着饥肠辘辘的我们去吃郴州最富有盛名的“鱼头粉”。说这是“十二分推荐”,到郴州必吃的美食之一。 哇塞!那个味美香甜…...

    2024/5/4 23:54:56
  19. 氧生福地 玩美北湖(下)——奔跑吧骚年!

    原标题:氧生福地 玩美北湖(下)——奔跑吧骚年!让我们红尘做伴 活得潇潇洒洒 策马奔腾共享人世繁华 对酒当歌唱出心中喜悦 轰轰烈烈把握青春年华 让我们红尘做伴 活得潇潇洒洒 策马奔腾共享人世繁华 对酒当歌唱出心中喜悦 轰轰烈烈把握青春年华 啊……啊……啊 两…...

    2024/5/8 19:33:07
  20. 扒开伪装医用面膜,翻六倍价格宰客,小姐姐注意了!

    原标题:扒开伪装医用面膜,翻六倍价格宰客,小姐姐注意了!扒开伪装医用面膜,翻六倍价格宰客!当行业里的某一品项火爆了,就会有很多商家蹭热度,装逼忽悠,最近火爆朋友圈的医用面膜,被沾上了污点,到底怎么回事呢? “比普通面膜安全、效果好!痘痘、痘印、敏感肌都能用…...

    2024/5/5 8:13:33
  21. 「发现」铁皮石斛仙草之神奇功效用于医用面膜

    原标题:「发现」铁皮石斛仙草之神奇功效用于医用面膜丽彦妆铁皮石斛医用面膜|石斛多糖无菌修护补水贴19大优势: 1、铁皮石斛:自唐宋以来,一直被列为皇室贡品,铁皮石斛生于海拔1600米的悬崖峭壁之上,繁殖力差,产量极低,所以古代仅供皇室、贵族享用 2、铁皮石斛自古民间…...

    2024/5/8 20:38:49
  22. 丽彦妆\医用面膜\冷敷贴轻奢医学护肤引导者

    原标题:丽彦妆\医用面膜\冷敷贴轻奢医学护肤引导者【公司简介】 广州华彬企业隶属香港华彬集团有限公司,专注美业21年,其旗下品牌: 「圣茵美」私密荷尔蒙抗衰,产后修复 「圣仪轩」私密荷尔蒙抗衰,产后修复 「花茵莳」私密荷尔蒙抗衰,产后修复 「丽彦妆」专注医学护…...

    2024/5/4 23:54:58
  23. 广州械字号面膜生产厂家OEM/ODM4项须知!

    原标题:广州械字号面膜生产厂家OEM/ODM4项须知!广州械字号面膜生产厂家OEM/ODM流程及注意事项解读: 械字号医用面膜,其实在我国并没有严格的定义,通常我们说的医美面膜指的应该是一种「医用敷料」,也就是说,医用面膜其实算作「医疗器械」的一种,又称「医用冷敷贴」。 …...

    2024/5/10 10:22:18
  24. 械字号医用眼膜缓解用眼过度到底有无作用?

    原标题:械字号医用眼膜缓解用眼过度到底有无作用?医用眼膜/械字号眼膜/医用冷敷眼贴 凝胶层为亲水高分子材料,含70%以上的水分。体表皮肤温度传导到本产品的凝胶层,热量被凝胶内水分子吸收,通过水分的蒸发带走大量的热量,可迅速地降低体表皮肤局部温度,减轻局部皮肤的灼…...

    2024/5/9 17:11:10
  25. 配置失败还原请勿关闭计算机,电脑开机屏幕上面显示,配置失败还原更改 请勿关闭计算机 开不了机 这个问题怎么办...

    解析如下&#xff1a;1、长按电脑电源键直至关机&#xff0c;然后再按一次电源健重启电脑&#xff0c;按F8健进入安全模式2、安全模式下进入Windows系统桌面后&#xff0c;按住“winR”打开运行窗口&#xff0c;输入“services.msc”打开服务设置3、在服务界面&#xff0c;选中…...

    2022/11/19 21:17:18
  26. 错误使用 reshape要执行 RESHAPE,请勿更改元素数目。

    %读入6幅图像&#xff08;每一幅图像的大小是564*564&#xff09; 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
  27. 配置 已完成 请勿关闭计算机,win7系统关机提示“配置Windows Update已完成30%请勿关闭计算机...

    win7系统关机提示“配置Windows Update已完成30%请勿关闭计算机”问题的解决方法在win7系统关机时如果有升级系统的或者其他需要会直接进入一个 等待界面&#xff0c;在等待界面中我们需要等待操作结束才能关机&#xff0c;虽然这比较麻烦&#xff0c;但是对系统进行配置和升级…...

    2022/11/19 21:17:15
  28. 台式电脑显示配置100%请勿关闭计算机,“准备配置windows 请勿关闭计算机”的解决方法...

    有不少用户在重装Win7系统或更新系统后会遇到“准备配置windows&#xff0c;请勿关闭计算机”的提示&#xff0c;要过很久才能进入系统&#xff0c;有的用户甚至几个小时也无法进入&#xff0c;下面就教大家这个问题的解决方法。第一种方法&#xff1a;我们首先在左下角的“开始…...

    2022/11/19 21:17:14
  29. win7 正在配置 请勿关闭计算机,怎么办Win7开机显示正在配置Windows Update请勿关机...

    置信有很多用户都跟小编一样遇到过这样的问题&#xff0c;电脑时发现开机屏幕显现“正在配置Windows Update&#xff0c;请勿关机”(如下图所示)&#xff0c;而且还需求等大约5分钟才干进入系统。这是怎样回事呢&#xff1f;一切都是正常操作的&#xff0c;为什么开时机呈现“正…...

    2022/11/19 21:17:13
  30. 准备配置windows 请勿关闭计算机 蓝屏,Win7开机总是出现提示“配置Windows请勿关机”...

    Win7系统开机启动时总是出现“配置Windows请勿关机”的提示&#xff0c;没过几秒后电脑自动重启&#xff0c;每次开机都这样无法进入系统&#xff0c;此时碰到这种现象的用户就可以使用以下5种方法解决问题。方法一&#xff1a;开机按下F8&#xff0c;在出现的Windows高级启动选…...

    2022/11/19 21:17:12
  31. 准备windows请勿关闭计算机要多久,windows10系统提示正在准备windows请勿关闭计算机怎么办...

    有不少windows10系统用户反映说碰到这样一个情况&#xff0c;就是电脑提示正在准备windows请勿关闭计算机&#xff0c;碰到这样的问题该怎么解决呢&#xff0c;现在小编就给大家分享一下windows10系统提示正在准备windows请勿关闭计算机的具体第一种方法&#xff1a;1、2、依次…...

    2022/11/19 21:17:11
  32. 配置 已完成 请勿关闭计算机,win7系统关机提示“配置Windows Update已完成30%请勿关闭计算机”的解决方法...

    今天和大家分享一下win7系统重装了Win7旗舰版系统后&#xff0c;每次关机的时候桌面上都会显示一个“配置Windows Update的界面&#xff0c;提示请勿关闭计算机”&#xff0c;每次停留好几分钟才能正常关机&#xff0c;导致什么情况引起的呢&#xff1f;出现配置Windows Update…...

    2022/11/19 21:17:10
  33. 电脑桌面一直是清理请关闭计算机,windows7一直卡在清理 请勿关闭计算机-win7清理请勿关机,win7配置更新35%不动...

    只能是等着&#xff0c;别无他法。说是卡着如果你看硬盘灯应该在读写。如果从 Win 10 无法正常回滚&#xff0c;只能是考虑备份数据后重装系统了。解决来方案一&#xff1a;管理员运行cmd&#xff1a;net stop WuAuServcd %windir%ren SoftwareDistribution SDoldnet start WuA…...

    2022/11/19 21:17:09
  34. 计算机配置更新不起,电脑提示“配置Windows Update请勿关闭计算机”怎么办?

    原标题&#xff1a;电脑提示“配置Windows Update请勿关闭计算机”怎么办&#xff1f;win7系统中在开机与关闭的时候总是显示“配置windows update请勿关闭计算机”相信有不少朋友都曾遇到过一次两次还能忍但经常遇到就叫人感到心烦了遇到这种问题怎么办呢&#xff1f;一般的方…...

    2022/11/19 21:17:08
  35. 计算机正在配置无法关机,关机提示 windows7 正在配置windows 请勿关闭计算机 ,然后等了一晚上也没有关掉。现在电脑无法正常关机...

    关机提示 windows7 正在配置windows 请勿关闭计算机 &#xff0c;然后等了一晚上也没有关掉。现在电脑无法正常关机以下文字资料是由(历史新知网www.lishixinzhi.com)小编为大家搜集整理后发布的内容&#xff0c;让我们赶快一起来看一下吧&#xff01;关机提示 windows7 正在配…...

    2022/11/19 21:17:05
  36. 钉钉提示请勿通过开发者调试模式_钉钉请勿通过开发者调试模式是真的吗好不好用...

    钉钉请勿通过开发者调试模式是真的吗好不好用 更新时间:2020-04-20 22:24:19 浏览次数:729次 区域: 南阳 > 卧龙 列举网提醒您:为保障您的权益,请不要提前支付任何费用! 虚拟位置外设器!!轨迹模拟&虚拟位置外设神器 专业用于:钉钉,外勤365,红圈通,企业微信和…...

    2022/11/19 21:17:05
  37. 配置失败还原请勿关闭计算机怎么办,win7系统出现“配置windows update失败 还原更改 请勿关闭计算机”,长时间没反应,无法进入系统的解决方案...

    前几天班里有位学生电脑(windows 7系统)出问题了&#xff0c;具体表现是开机时一直停留在“配置windows update失败 还原更改 请勿关闭计算机”这个界面&#xff0c;长时间没反应&#xff0c;无法进入系统。这个问题原来帮其他同学也解决过&#xff0c;网上搜了不少资料&#x…...

    2022/11/19 21:17:04
  38. 一个电脑无法关闭计算机你应该怎么办,电脑显示“清理请勿关闭计算机”怎么办?...

    本文为你提供了3个有效解决电脑显示“清理请勿关闭计算机”问题的方法&#xff0c;并在最后教给你1种保护系统安全的好方法&#xff0c;一起来看看&#xff01;电脑出现“清理请勿关闭计算机”在Windows 7(SP1)和Windows Server 2008 R2 SP1中&#xff0c;添加了1个新功能在“磁…...

    2022/11/19 21:17:03
  39. 请勿关闭计算机还原更改要多久,电脑显示:配置windows更新失败,正在还原更改,请勿关闭计算机怎么办...

    许多用户在长期不使用电脑的时候&#xff0c;开启电脑发现电脑显示&#xff1a;配置windows更新失败&#xff0c;正在还原更改&#xff0c;请勿关闭计算机。。.这要怎么办呢&#xff1f;下面小编就带着大家一起看看吧&#xff01;如果能够正常进入系统&#xff0c;建议您暂时移…...

    2022/11/19 21:17:02
  40. 还原更改请勿关闭计算机 要多久,配置windows update失败 还原更改 请勿关闭计算机,电脑开机后一直显示以...

    配置windows update失败 还原更改 请勿关闭计算机&#xff0c;电脑开机后一直显示以以下文字资料是由(历史新知网www.lishixinzhi.com)小编为大家搜集整理后发布的内容&#xff0c;让我们赶快一起来看一下吧&#xff01;配置windows update失败 还原更改 请勿关闭计算机&#x…...

    2022/11/19 21:17:01
  41. 电脑配置中请勿关闭计算机怎么办,准备配置windows请勿关闭计算机一直显示怎么办【图解】...

    不知道大家有没有遇到过这样的一个问题&#xff0c;就是我们的win7系统在关机的时候&#xff0c;总是喜欢显示“准备配置windows&#xff0c;请勿关机”这样的一个页面&#xff0c;没有什么大碍&#xff0c;但是如果一直等着的话就要两个小时甚至更久都关不了机&#xff0c;非常…...

    2022/11/19 21:17:00
  42. 正在准备配置请勿关闭计算机,正在准备配置windows请勿关闭计算机时间长了解决教程...

    当电脑出现正在准备配置windows请勿关闭计算机时&#xff0c;一般是您正对windows进行升级&#xff0c;但是这个要是长时间没有反应&#xff0c;我们不能再傻等下去了。可能是电脑出了别的问题了&#xff0c;来看看教程的说法。正在准备配置windows请勿关闭计算机时间长了方法一…...

    2022/11/19 21:16:59
  43. 配置失败还原请勿关闭计算机,配置Windows Update失败,还原更改请勿关闭计算机...

    我们使用电脑的过程中有时会遇到这种情况&#xff0c;当我们打开电脑之后&#xff0c;发现一直停留在一个界面&#xff1a;“配置Windows Update失败&#xff0c;还原更改请勿关闭计算机”&#xff0c;等了许久还是无法进入系统。如果我们遇到此类问题应该如何解决呢&#xff0…...

    2022/11/19 21:16:58
  44. 如何在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