SpringSecurity / Shiro
# Spring Security
梁云亮
电 话:13264494458
微 信:13264494458
扣 扣:369950806
展开
-
【精品】SpringSecurity在前后端分离项目中的应用
/认证:根据用户名去查询对应的用户信息 LambdaQueryWrapper < Member > queryWrapper = new LambdaQueryWrapper < >();//如果没有查询到用户抛出异常 if(member == null) {throw GlobalException . builder() . code(401) . msg("用户名或密码不正确") . build();原创 2022-10-08 10:46:55 · 1405 阅读 · 0 评论 -
SpringBoot+SpringSecurity系列八:整合JWT
前置博客:JWT工具类数据库:第一步:当用户在没有授权时返回的指定信息的Handler@Slf4j@Componentpublic class JwtAccessDeniedHandler implements AccessDeniedHandler { @Override public void handle(HttpServletRequest request, HttpServletResponse response, AccessDeniedException e) th原创 2022-01-18 10:50:51 · 1553 阅读 · 1 评论 -
SpringBoot+SpringSecurity系列 理论基础:授权流程
授权流程授权决策原创 2022-01-13 09:21:29 · 369 阅读 · 10 评论 -
【精品】SpringSecurity集成JWT
0、准备工作创建SpringBoot中项目:-Maven依赖:-app1、创建Jwt工具类2、创建没有权限时,Jwt拒绝访问的处理器3、创建Jwt授权的EntryPoint4、创建UserDetailsService5、创建Jwt认证过滤器6、配置SpringSecurity...原创 2022-01-11 18:21:03 · 1531 阅读 · 13 评论 -
Shiro简介
1.shiro是什么?Shiro是Apache下的一个开源项目。shiro属于轻量级框架,相对于SpringSecurity简单的多,也没有SpringSecurity那么复杂。官方架构图如下:2.shiro主要功能shiro主要有三大功能模块:Subject:主体,一般指用户。SecurityManager:安全管理器,管理所有Subject,可以配合内部安全组件。(类似于Sp...原创 2020-01-05 21:15:28 · 575 阅读 · 2 评论 -
SpringBoot整合Shiro
环境搭建第一步:创建项目,添加依赖<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId></dependency><dependency> <groupId>org.springframework.boot</groupI原创 2020-09-05 21:59:09 · 1596 阅读 · 2 评论 -
Shiro快速入门
第一步:创建项目添加依赖<dependency> <groupId>org.apache.shiro</groupId> <artifactId>shiro-all</artifactId> <version>1.6.0</version> <exclusions> <exclusion> <artifactId>s原创 2020-09-05 11:24:47 · 241 阅读 · 1 评论 -
SpringBoot整合Shiro静态资源拦截配置
springboot整合thymeleaf会默认访问resources文件下的static目录方法一:将map.put("/static/**","anon");改为 map.put("/css/**","anon"); map.put("/img/**","anon"); map.put("/js/**","anon");即可引入静态资源<link rel="stylesheet" type="text/css" href="css/login.css">方法二:在ym原创 2020-09-11 15:43:10 · 3508 阅读 · 1 评论 -
SpringBoot整合Shiro编程步骤
第一步:在controller层登录在controller层登录,传入username与password用SecurityUtils类的getSubject方法获取一个新建的Subject把name与password封装成一个token用subject.login(token)执行登录方法,如果有异常会catch住第二步:在realm里面授权和认证新建UserRealm类继承AuthorizngRealm,自动实现授权和认证两个方法:授权代码实现先把用户信息用securityUtils.原创 2020-09-12 14:03:08 · 516 阅读 · 0 评论 -
Shiro的退出登录状态的方式
方式一:使用系统过滤器修改ShiroConfig,在filter表里加上登出的过滤:@Bean public ShiroFilterFactoryBean shiroFilterFactoryBean(@Qualifier("dwSecurityManager") SecurityManager securityManager) { ShiroFilterFactoryBean factoryBean = new ShiroFilterFactoryBean();原创 2020-10-15 11:44:52 · 4036 阅读 · 0 评论 -
SpringBoot中Bean注入的深入研究
下面代码可正常运行DemoService@Servicepublic class DemoService { public void save(){ System.out.println("DemoService save"); }}CommonClass@Componentpublic class CommonClass { @Resource private DemoService demoService; public void原创 2020-10-15 22:20:15 · 760 阅读 · 1 评论 -
Shiro中SimpleByteSource序列化异常:java.io.NotSerializableException:org.apache.shiro.util.SimpleByteSource
异常说明在学习Shiro使用缓存时,出现:java.io.NotSerializableException:org.apache.shiro.util.SimpleByteSource异常。出现这种情况是因为:SimpleByteSource没有是实现Serializable接口。解决方案第一步:自定义一个类继承SimpleByteSource实现Serializable接口public class MySimpleByteSource extends SimpleByteSource implem原创 2020-10-16 09:34:24 · 1090 阅读 · 2 评论 -
常用的shiro标签
guest标签用户没有身份验证时显示相应信息,即游客访问信息。<shiro:guest></shiro:guest>user标签用户已经身份验证/记住我登录后显示相应的信息。<shiro:user> </shiro:user>authenticated标签用户已经身份验证通过,即Subject.login登录成功,不是记住我登录的。<shiro:authenticated> </shiro:authentica原创 2020-10-16 12:26:20 · 623 阅读 · 1 评论 -
Springboot整合Shiro实现记住我功能
有关验证码的博客请参看:https://hcshow.blog.csdn.net/article/details/109124877修改ShiroConfig首先在基中添加配置://记住我@Bean(name = "rememberMeManager")public CookieRememberMeManager rememberMeManager(){ CookieRememberMeManager cookieRememberMeManager = new CookieRemember原创 2020-10-16 21:31:52 · 958 阅读 · 3 评论 -
SpringBoot整合Shiro报错:The dependencies of some of the beans in the application context form a cycle
错误SpringBoot2.3整合Shiro时报错:The dependencies of some of the beans in the application context form a cycle解决办法在ShiroConfig.java类中添加如下方法:@Beanpublic AuthorizationAttributeSourceAdvisor authorizationAttributeSourceAdvisor(@Qualifier("securityManager") Sec原创 2020-11-23 15:58:22 · 2650 阅读 · 1 评论 -
SpringBoot+SpringSecurity系列 :JWT 工具类
生成JWT解析JWT第一步:创建SpringBoot项目添加依赖<dependency> <groupId>org.projectlombok</groupId> <artifactId>lombok</artifactId> <version>1.18.22</version></dependency><dependency> <groupId&原创 2022-01-11 12:10:05 · 10743 阅读 · 2 评论 -
SpringBoot+SpringSecurity系列 理论基础:认证流程
认证流程AuthenticationProvider UserDetailsService密码解析器:PasswordEncoder原创 2022-01-10 18:37:55 · 262 阅读 · 11 评论 -
SpringBoot+SpringSecurity系列七:自定义403页面
403简介403 Forbidden - 拒绝访问403 Forbidden 是HTTP协议中的一个状态码(Status Code)。可以简单的理解为没有权限访问此站。该状态表示服务器理解了本次请求但是拒绝执行该任务,该请求不该重发给服务器。在HTTP请求的方法不是“HEAD”,并且服务器想让客户端知道为什么没有权限的情况下,服务器应该在返回的信息中描述拒绝的理由。在服务器不想提供任何反馈信息的情况下,服务器可以用404 Not Found代替403 Forbidden。第一步:在resources原创 2022-01-07 15:39:59 · 1408 阅读 · 7 评论 -
SpringBoot+SpringSecurity系列六:静态资源放行
第一步:准备静态资源在resources/static/imgs下放置一张名称为mm01.jpg的图片在resources/static/css下创建文件demo.css.cc{ font-size: 38px; color: red;}在resources/static/js下创建文件demo.jsfunction fun() { alert(3+2);}第二步:修改index.html<html lang="en" xmlns:th="http原创 2022-01-07 15:27:56 · 4107 阅读 · 11 评论 -
SpringBoot+SpringSecurity系列五:自定义表单的请求参数
第一步:在resources/templates下创建login.html<!DOCTYPE html><html xmlns:th="http://www.thymeleaf.org"><head> <meta charset="UTF-8"> <title>登录页面</title></head><body><form action="userLogin" method="post"&原创 2022-01-07 15:05:13 · 615 阅读 · 9 评论 -
SpringBoot+SpringSecurity系列四:自定义登录页面和退出登录
第一步: 在resources/templates下创建index.html<!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8"> <title>首页</title></head><body><h2>首页</h2><a href="openLogin">登录</a><a原创 2022-01-06 18:19:22 · 904 阅读 · 11 评论 -
SpringBoot+SpringSecurity系列三:自定义登录逻辑(数据库版本)
第一步:创建数据库并往里面添加一条数据注:上面表中的密码是通过下面方法生成的:public static void main(String[] args) { BCryptPasswordEncoder encoder = new BCryptPasswordEncoder(); String encode = encoder.encode("1234"); System.out.println(encode);}第二步:创建SpringBoot项目Maven依赖原创 2022-01-06 17:05:31 · 1207 阅读 · 9 评论 -
SpringBoot+SpringSecurity系列二:自定义登录逻辑(模拟版本)
第一步:创建SpringSecurity配置文件@Configurationpublic class SpringSecurityConfig { @Bean public PasswordEncoder passwordEncoder() { return new BCryptPasswordEncoder(); }}第二步:自定义UserDetailsService@Servicepublic class MyUserDetailsService i原创 2022-01-06 16:40:01 · 541 阅读 · 10 评论 -
SpringBoot+SpringSecurity系列一:环境搭建
默认的请求,浏览器只返回默认的响应头:Cache-ControlContent-LanguageContent-TypeExpiresLast-ModifiedPragma如果需要获取自定义的响应头的话,需要服务器端添加如下代码:response.setHeader("Access-Control-Expose-Headers", jwtUtils.getHeader());...原创 2021-05-20 17:05:23 · 276 阅读 · 10 评论