荒--
这个作者很懒,什么都没留下…
展开
-
guava之multimap
一、概述1、基本介绍和案例说明multimap和MultiSet的继承结果很相似,只不过在上层的接口是Multimap不是Multiset。Multimap的特点其实就是可以包含有几个重复Key的value,你可以put进入多个不同value但是相同的key,但是又不是让后面覆盖前面的内容。它的业务场景:当你需要构造像Map<K, List>或者Map<K, Set>这样比较复杂的集合类型的数据结构,来做相应的业务逻辑处理。那Multimap在合适不过。例如@Test原创 2021-06-07 11:14:36 · 168 阅读 · 0 评论 -
Spring Security权限框架
Spring Security的身份验证支持多种模型一、Basic认证Basic 验证是在HTTP1.0提出的认证方法,它是一种基于challenge/response的认证模式,针对特定的资源需要提供用户名和密码认证后才可访问,其中密码使用明文传输。Basic 认证是HTTP 中非常简单的认证方式,因为简单,所以不是很安全,不过仍然非常常用。Basic模式认证过程如下:①浏览器发送http报文请求一个受保护的资源。②服务端的web容器将http响应报文的响应码设为401,响应头部加原创 2021-04-15 15:05:11 · 326 阅读 · 0 评论 -
Spring Security常用权限拦截
一、SecurityContextPersistenceFilter之前的名字叫做HttpSessionContextIntegrationFilter是所有过滤器的顶端,所有过滤器的入口,也是第一个起作用的过滤器用途1:在执行其他过滤器之前,率先判断用户的session中是否已经存在一个SecurityContext了。如果存在,就把 SecurityContext拿出来,放到SecurityContextHolder中,供Spring Security的其他部分使用。如果不存在...原创 2021-04-15 17:01:56 · 684 阅读 · 0 评论 -
Spring Security数据库管理
Spring Security的核心组件之UserDetailService 是一个接口源码如下:只有一个方法 根据用户名来获取用户信息UserDetails * Copyright 2004, 2005, 2006 Acegi Technology Pty Limitedpackage org.springframework.security.core.userdetails;/** * Core interface which loads user-specific data...原创 2021-04-16 10:42:51 · 100 阅读 · 0 评论 -
基于SpringBoot的SpringSecurity环境搭建与验证
测试原创 2021-05-12 16:48:07 · 107 阅读 · 1 评论 -
基于SpringSecurity权限管理Case实操
一、只需要登录即可(不需要在数据库里面进行查询验证用户) 这时候采用基于内存的认证即可package com.mmall.demo;import org.springframework.context.annotation.Configuration;import org.springframework.security.config.annotation.authentication.builders.AuthenticationManagerBuilder;import org.sprin原创 2021-05-13 10:49:41 · 109 阅读 · 0 评论 -
基于SpringBoot的Apache Shiro环境快速搭建与配置(一)
测试原创 2021-05-13 15:45:19 · 170 阅读 · 0 评论 -
基于SpringBoot的Apache Shiro环境快速搭建与配置(二)
SpringBoot启动类如下:package com.mmall.demo;import org.mybatis.spring.annotation.MapperScan;import org.springframework.boot.SpringApplication;import org.springframework.boot.autoconfigure.SpringBootApplication;import org.springframework.context.annotati原创 2021-05-21 09:40:43 · 138 阅读 · 1 评论 -
Shiro 权限架构数据库表设计
权限结构模型根据RBAC扩展到部门,如下:部门表:数据库结构22222222222222原创 2021-05-22 09:50:20 · 546 阅读 · 3 评论 -
Spring MVC开发环境搭建
项目大致结构如下:原创 2021-05-30 16:14:05 · 95 阅读 · 0 评论 -
利用Generator 自动生成代码、项目接口定义、全局异常处理
在pom.xml中导包如下<!-- MBG 代码生成器 --><dependency> <groupId>org.mybatis.generator</groupId> <artifactId>mybatis-generator-core</artifactId> <version>1.3.3</version></dependency><!-- jsp api -->&原创 2021-05-31 14:29:59 · 166 阅读 · 0 评论 -
校验工具-BeanValidator开发
在pom.xml中导包如下<!-- validator 参数校验工具 --><dependency> <groupId>javax.validation</groupId> <artifactId>validation-api</artifactId> <version>2.0.1.Final</version></dependency><!-- 验证实现方式 -->&l原创 2021-06-03 16:42:39 · 111 阅读 · 0 评论 -
Json转化工具以及Spring上下文工具
在pom.xml中导包如下<!-- jackson --><dependency> <groupId>org.codehaus.jackson</groupId> <artifactId>jackson-core-asl</artifactId> <version>1.9.13</version></dependency><dependency> <groupId&g原创 2021-06-03 18:12:58 · 78 阅读 · 0 评论 -
Http请求前后监听 HttpInterceptor
创建拦截器如下package com.mmall.common;import java.util.Map;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletResponse;import org.springframework.web.servlet.ModelAndView;import org.springframework.web.servlet.handler.Handle原创 2021-06-04 10:11:06 · 139 阅读 · 0 评论 -
部门模块开发(一)
在pom.xml中导包如下<!-- annotation 注解 --><dependency> <groupId>javax.annotation</groupId> <artifactId>javax.annotation-api</artifactId> <version>1.3.2</version></dependency><dependency> <gro原创 2021-06-07 10:24:06 · 121 阅读 · 0 评论 -
部门模块开发(二)
这张来处理部门的前端页面,与后端相结合在SysDeptController中处理进入部门页面的方法@Controller@RequestMapping("/sys/dept")@Slf4jpublic class SysDeptController { @RequestMapping("/dept.page") public ModelAndView page(){ return new ModelAndView("dept"); }采用ace模板处理前端页面,引用一些静态资源如原创 2021-06-09 10:16:53 · 80 阅读 · 0 评论 -
用户模块开发(一)
UserParam类用于校验用户参数package com.mmall.param;import javax.validation.constraints.Max;import javax.validation.constraints.Min;import javax.validation.constraints.NotNull;import org.hibernate.validator.constraints.Length;import org.hibernate.validator.c原创 2021-07-11 15:10:16 · 101 阅读 · 0 评论 -
用户模块开发(二)
处理用户的登录模块UserController如下package com.mmall.controller;import java.io.IOException;import javax.annotation.Resource;import javax.servlet.ServletException;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletResponse;impo原创 2021-07-12 16:19:18 · 75 阅读 · 0 评论 -
用户模块开发(三)
档登陆成功后如下点击部门名称 显示该部门下的用户原创 2021-07-12 16:46:07 · 126 阅读 · 0 评论 -
权限模块开发(一)
权限模块开发与部门开发类似,都是层级树SysAclModuleController类如下:package com.mmall.controller;import javax.annotation.Resource;import org.springframework.stereotype.Controller;import org.springframework.web.bind.annotation.RequestMapping;import org.springframework.web.原创 2021-07-19 11:27:06 · 105 阅读 · 0 评论 -
权限模块开发(二)
该部分主要是权限模块下的权限点 分页 添加 修改操作需要校验的参数类package com.mmall.param;import javax.validation.constraints.Max;import javax.validation.constraints.Min;import javax.validation.constraints.NotNull;import org.hibernate.validator.constraints.Length;import org.hibe原创 2021-07-19 17:43:48 · 61 阅读 · 0 评论 -
角色模块开发
在角色类中添加注解如下:@Builder@NoArgsConstructor@AllArgsConstructorpublic class SysRole { private Integer id; private String name;RoleParam参数校验如下package com.mmall.param;import javax.validation.constraints.Max;import javax.validation.constraints.Mi原创 2021-07-20 12:14:23 · 86 阅读 · 0 评论 -
角色与权限模块开发
点击角色,显示相应的权限树,权限树由权限模块和权限点组成SysRoleController部分代码如下: //当前角色的权限树(return List<AclModuleLevelDto>) @RequestMapping("/roleTree.json") @ResponseBody public JsonData roleTree(@RequestParam("roleId") int roleId) { return JsonData.su原创 2021-07-21 14:58:26 · 130 阅读 · 0 评论 -
角色与用户模块开发
点击角色,显示该角色下的用户,并且可以对该角色下的用户进行添加或删除,此处类似一个穿梭框SysRoleController部分代码如下:@RequestMapping("/changeUsers.json") @ResponseBody public JsonData changeUsers(@RequestParam("roleId") int roleId, @RequestParam(value = "userIds", required = false, defaultValu原创 2021-07-22 15:49:38 · 129 阅读 · 0 评论 -
删除部门和删除权限模块
部门的删除dept.jsp部分代码如下//删除部门(待定 若有员工则不允许删除)$(".dept-delete").click(function (e) { e.preventDefault(); e.stopPropagation(); var deptId = $(this).attr("data-id"); var deptName = $(this).attr("data-name"); if (confirm("确定要删除部门【" + deptName + "】吗?")) {原创 2021-07-24 14:20:13 · 237 阅读 · 0 评论