new User()需要的三个参数:
使用.()可以转化成参数所需的类型,()中里要填写的是…数组,因此就需要将转化为数组——.([]{}) 。
3.代码实现
@Configurationpublic class SecurityConfig{}
(1.)构建密码加密对象
//构建密码加密对象,登录时,系统底层会基于此对象进行密码加密@Beanpublic PasswordEncoder passwordEncoder(){return new BCryptPasswordEncoder();}
(2.)前后端分离架构中,对成功和失败以后的信息以json形式进行返回
要继承,重写其中的( http)方法——这个方法会在服务启动时就会启动,进行自定义的配置
@Configurationpublic class SecurityConfig extends WebSecurityConfigurerAdapter {@Overrideprotected void configure(HttpSecurity http) throws Exception{//super.configure(http);//默认所有请求都要认证,不需要//1.禁用跨域攻击(先这么写,不写会报403异常,这里的登录默认是post请求,但系统底层的跨域设计是不允许post请求,)http.csrf().disable();//2.放行所有资源的访问(后续可以基于选择对资源进行认证和放行)此处是根据业务需求进行选择//3.自定义登录成功和失败以后的处理逻辑(目的是响应到客户端的数据是json字符串)//默认没有配置,会跳转到登录成功或失败的页面,实际上前后端分离架构中服务端不负责页面跳转,只负责返回json数据http.formLogin()//登录表单,此方法执行后会生成一个/login的url//登录成功处理器successHandler.successHandler(successHandler())//启动时就会调用,并不会登录成功才调用.failureHandler(failureHandler());}}
放行资源访问的方式
()所有的请求路径
(3.)定义认证成功处理器和失败处理器
//定义认证成功处理器//登录成功以后返回json数据@Beanpublic AuthenticationSuccessHandler successHandler() {return (request, response, authentication) -> {//定义响应数据Map
(4.)定义认证管理器对象,这个对象负责完成用户信息的认证
即判定用户身份信息的合法性,在基于协议完成认证时,需要此对象,所以这里将此对象拿出来交给管理
- 六 Linux:系统运维常用命令
- 【Linux】文件系统详解
- Linux系统xinetd服务启动不了
- [架构之路-183]-《软考-系统分析师》-13-系统设计
- 一 操作系统计算机操作系统概述
- 树莓派64位系统_树莓派系统安装指南
- Linux系统下QT的安装与配置
- java 运行.jnlp文件,在Linux系统上执行/打开JNLP文件的方法
- 基于Android的人脸识别门禁系统
- SQL Server如何更改系统用户dbo的所属账号