SpringSecurity初体验之手动配置用户名密码初体验之手动配置用户名密码
此文章是记录博主在学习此文章是记录博主在学习springsecurity时的笔记时的笔记
第一步
创建一个SpringBoot工程,勾选上需要的依赖。
第二步
创建一个名为securityconfig的配置类,该类基础了父类WebSecurityConfigurerAdapter(提供用于创建WebSecurityConfigurer实例的便捷基类。 该实现允许通过覆盖方法进行自
定义。),并在该类中重写了参数为AuthenticationManagerBuilder(作用:用于创建(作用:用于创建AuthenticationManager的的SecurityBuilder。。 允许轻松构建内存身份验证,允许轻松构建内存身份验证,LDAP身份验身份验
证,基于证,基于JDBC的身份验证,添加的身份验证,添加UserDetailsService和添加和添加AuthenticationProvider。)。)的的configuer方法。
第三步
调用AuthenticationManagerBuilder中inMemoryAuthentication()方法,该方法的作用是:将内存身份验证添加到将内存身份验证添加到AuthenticationManagerBuilder中,并返回中,并返回
InMemoryUserDetailsManagerConfigurer以允许自定义内存身份验证。以允许自定义内存身份验证。
此方法还确保此方法还确保UserDetailsService可用于可用于getDefaultUserDetailsService()方法。()方法。 请注意,其他请注意,其他UserDetailsService可能会覆盖此可能会覆盖此UserDetailsService作为默认值。作为默认值。
inMemoryAuthentication()方法返回了一个叫做InMemoryUserDetailsManagerConfigurer的类,我们来看一下这个类,该类的作用是:将将AuthenticationManagerBuilder配置为具有配置为具有
内存身份验证。内存身份验证。 它还允许轻松地将用户添加到内存中身份验证它还允许轻松地将用户添加到内存中身份验证,并且该类的父类为UserDetailsManagerConfigurer
作用是:用用UserDetailsManager填充填充AuthenticationManagerBuilder的基类。的基类。
之后分别调用
withUser(),password(),roles()方法,分别代表要配置的用户名,密码,角色等信息。这些方法就存在于UserDetailsManagerConfigurer这个类中。
捋一下大概流程:捋一下大概流程:
想要手动的配置用户名和密码,需要先定义一个类继承WebSecurityConfigurerAdapter这个抽象类,然后重写该类中的configure方法,方法参数为AuthenticationManagerBuilder,使
用它的inMemoryAuthentication方法来配置用户信息在内存中,该方法的返回值是InMemoryUserDetailsManagerConfigurer类, 它还允许轻松地将用户添加到内存中身份验证,最后
调用withUser(),password(),roles()方法,将用户信息填充到AuthenticationManagerBuilder中。
思维导图思维导图
作者:谦虚的刘66