各位老铁们好,相信很多人对c网站登录授权源码分享都不是特别的了解,因此呢,今天就来为大家分享下关于c网站登录授权源码分享以及网站授权系统的问题知识,还望可以帮助大家,解决大家的一些困惑,下面一起来看看吧!
提到HttpSecurity,熟悉SpringSecurity的同学,肯定嗤之以鼻,它不就是创建了SecurityFilterChain吗,好吧,确实。不过今天我们换种玩法,通过实战,来看源码,看看它到底怎么生效的。
代码准备
这里我们新建boot项目,基于2.1.10.RELEASE,然后创建一个简单的ProduceController,包含有get()、list()两个方法
<parent>\n<groupId>org.springframework.boot</groupId>\n<artifactId>spring-boot-starter-parent</artifactId>\n<version>2.1.10.RELEASE</version>\n<relativePath/><!–lookupparentfromrepository–>\n</parent>
@RestController\n@RequestMapping(&34;)\npublicclassProduceController{\n@GetMapping(&34;)\npublicStringlist(){\nreturn&34;;\n}\n@GetMapping(&34;)\npublicStringget(){\nreturnSecurityUtil.getUsername()+&34;;\n}\n}
配置HttpSecurity
1).指定当前SecurityFilterChain匹配哪些请求
每一个WebSecurityConfigurerAdapter都会生成一个SecurityFilterChain过滤器链。默认拦截所有请求,因此anyRequest()方法加与不加,效果一样。源码:
2).创建FilterSecurityInterceptor
此为核心类,主要用来处理认证和授权。配置源码:
3).启用表单登录
创建UsernamePasswordAuthenticationFilter过滤器,配置源码:
实战
1).直接访问
访问product/get:跳转/login,显示登录页访问product/list:跳转/login,显示登录页
2).修改HttpSecurity配置
访问product/get:正常显示访问product/list:页面提示403,提示需要权限
3).再次修改HttpSecurity配置
访问product/get:正常显示访问product/list:跳转/login,但是页面提示404
第三个是我在写文章的时候,手滑出来的,感觉挺有代表性。大家可以开动下脑筋想下这里,为什么会出现404,而不是显示登录页。
友情提醒,答案会在下方评论处出没,需要源码的同学可以私聊我。
OK,本文到此结束,希望对大家有所帮助。
