![](https://img-blog.csdnimg.cn/20201014180756738.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Security
文章平均质量分 59
朝花不迟暮
这个作者很懒,什么都没留下…
展开
-
SpringSecurity放行接口之后,接口里拿不到用户信息
目录前言分析原因解决方法参考前言项目使用的是security安全框架,今天打开项目发现有个接口报npe很奇怪。于是看了下是SecurityContextHolder获取用户信息时候获取不到用户信息了。这个情况以前没有出现过,所以问了下我们项目组长,他说有没有可能是放行接口的原因。为此我专门研究了一下~分析原因我们的放行方式是:@Overridepublic void configure(WebSecurity web) throws Exception { web.ignoring().原创 2021-07-30 19:37:21 · 1489 阅读 · 0 评论 -
SpringBoot+Security实现登陆注册
前言18年底,刚学SpringBoot的时候也写过登陆注册,但是因为当时水平很低,只是用了最简单的方式实现的,而且写到blog上还被人喷的稀巴烂,一气之下将帖子下了!前段时间朋友给我提供了一个接口,很有意思,我想在这个基础上写个登陆注册,于是花了五个小时,结合SpringSecurity完成了!效果登录页:注册页:首页:功能是通过第三方接口来实现通过QQ号查询用户手机!首页用的ibootstrap来画的页面,十分简单!主要功能用户的登陆注册图形验证码rememberMe功能需原创 2020-11-08 15:24:09 · 2532 阅读 · 0 评论 -
SpringSecurity添加图形验证码
目录添加图形验证码生成图形验证码登录页加图片样式认证流程添加验证码校验添加图形验证码生成图形验证码验证码功能需要用到spring-social-config依赖:<dependency> <groupId>org.springframework.social</groupId> <artifactId>spring-social-config</artifactId> <version>1.1.6.REL原创 2020-10-31 22:28:22 · 600 阅读 · 2 评论 -
SpringSecurity用户自定义认证
目录用户自定义认证定义一个实体对象替换默认登录页成功失败的处理用户自定义认证自定义认证的过程需要实现Spring Security提供的UserDetailService接口,该接口只有一个抽象方法loadUserByUsername,源码如下:public interface UserDetailsService { UserDetails loadUserByUsername(String username) throws UsernameNotFoundException;}定义一原创 2020-10-31 22:26:35 · 539 阅读 · 0 评论 -
SpringSecurity权限控制
权限控制Spring Security配置文件中添加如下注解:@Configuration@EnableGlobalMethodSecurity(prePostEnabled = true)public class BrowserSecurityConfig extends WebSecurityConfigurerAdapter { ...}在UserDetailService中,我们给当前登录用户授予了admin的权限,我们将这块代码改造一下:当登录用户为admin的时候,其拥有”a原创 2020-10-31 22:43:59 · 315 阅读 · 0 评论 -
SpringSecurity 退出登录
退出登录Spring Security默认的退出登录URL为/logout,退出登录后,Spring Security会做如下处理:是当前的Sesion失效;清除与当前用户关联的RememberMe记录;清空当前的SecurityContext;重定向到登录页。Spring Security允许我们通过配置来更改上面这些默认行为。我们在Spring Security配置中添加如下配置:.......and() .logout() .logoutUrl("/logout"原创 2020-10-31 22:42:29 · 3444 阅读 · 1 评论 -
SpringSecurity Session管理
目录Session管理Session超时设置Session并发控制Session管理Session超时设置Session超时时间也就是用户登录的有效时间。要设置Session超时时间很简单,只需要在配置文件中添加:server: servlet: session: timeout: 60 #1分钟 Session的最小有效期为60秒,也就是说即使你设置为小于60秒的值,其有效期还是为60秒在Spring Security中配置Session管理器,并配置Session失效原创 2020-10-31 22:40:33 · 305 阅读 · 0 评论 -
SpringSecurity短信验证码登录
短信验证码登录时下另一种非常常见的网站登录方式为手机短信验证码登录,但Spring Security默认只提供了账号密码的登录认证逻辑,所以要实现手机短信验证码登录认证功能,我们需要模仿Spring Security账号密码登录逻辑代码来实现一套自己的认证逻辑。短信验证码生成我们先定义一个短信验证码对象SmsCode :public class SmsCode { private String code; private LocalDateTime expireTime;原创 2020-10-31 22:37:56 · 3003 阅读 · 4 评论 -
SpringSecurity记住我功能实现
目录`记住我`功能实现token持久化修改登录页配置生效记住我功能实现在网站的登录页面中,记住我选项是一个很常见的功能,勾选记住我后在一段时间内,用户无需进行登录操作就可以访问系统资源。在Spring Security中添加记住我功能很简单,大致过程是:当用户勾选了记住我选项并登录成功后,Spring Security会生成一个token标识,然后将该token标识持久化到数据库,并且生成一个与该token相对应的cookie返回给浏览器。当用户过段时间再次访问系统时,如果该cookie没有过期,Spr原创 2020-10-31 22:30:30 · 1569 阅读 · 3 评论 -
SpringSecurity基本使用
目录SpringBoot使用Security导入依赖创建控制器表单验证SpringBoot使用SecuritySpring Security是一款基于Spring的安全框架,主要包含认证和授权两大安全模块,和另外一款流行的安全框架Apache Shiro相比,它拥有更为强大的功能。Spring Security也可以轻松的自定义扩展以满足各种需求,并且对常见的Web安全攻击提供了防护支持。如果你的Web框架选择的是Spring,那么在安全方面Spring Security会是一个不错的选择。导入依原创 2020-10-31 22:22:12 · 361 阅读 · 0 评论