其他分享
首页 > 其他分享> > 学习springseacurity

学习springseacurity

作者:互联网

springsecurity,一个很秀的框架,今天开始一步一步的去接触它,第一步添加依赖

<dependency>
			<groupId>org.springframework.boot</groupId>
			<artifactId>spring-boot-starter-security</artifactId>
		</dependency>

添加上依赖,我去访问项目,直接就这样了
在这里插入图片描述
开始慢慢的去搞定它,新增一个配置类,手动增加一个用户
在这里插入图片描述
输入一个错误的示例
在这里插入图片描述
我输入正确的也没能登录进去,后台报错 There is no PasswordEncoder mapped for the id "null"
因为他的密码有加密方式,这里我们没有使用加密的,解决方法:可以去配置一下加密或者不使用加密,我选择先不加密,配置如下

@Bean
		public static NoOpPasswordEncoder passwordEncoder() {
			return (NoOpPasswordEncoder) NoOpPasswordEncoder.getInstance();
		}

再次登录成功访问到我的请求。
开始处理不同用户不同权限
在这里插入图片描述


@Component
@EnableWebSecurity
public class SecurityConfig extends WebSecurityConfigurerAdapter {
		
		@Override
		protected void configure(HttpSecurity http) throws Exception {
			http.authorizeRequests()
			.antMatchers("/").permitAll() //这个请求不拦截
			.antMatchers("/index1/**").hasRole("vip1") //有角色为vip1的才可以访问到index1下面的请求
			.antMatchers("/index2/**").hasRole("vip2")
			.antMatchers("/index3/**").hasRole("vip3");
			http.formLogin();
		}
		
		@Override
		protected void configure(AuthenticationManagerBuilder auth) throws Exception {
			auth.inMemoryAuthentication().withUser("admin").password("123456").roles("vip1","vip2","vip3")
				.and().withUser("test").password("123456").roles("vip1")
				.and().withUser("ljw").password("123456").roles("vip2");//设置角色
			
		}
		
		@Bean
		public static NoOpPasswordEncoder passwordEncoder() {
			return (NoOpPasswordEncoder) NoOpPasswordEncoder.getInstance();
		}
}

使用admin登录测试:都能访问到
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
使用test用户测试
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

接下来要处理一下 如何将他的登录页修改为自己的,这样就ok了,注意事项:
1我没写其他东西,则默认我登录请求为login 用户名和密码为username和password,如果自己想改,自己再增加配置即可http.formLogin().loginPage("/toLogin").usernameParameter("username").passwordParameter("password").loginProcessingUrl("/login");
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

刚才是所有用户都能看到所有的东西,现在处理不同用户只能看到自己对应的链接。我使用的是thymeleaf,所以要整合一下,添加依赖 配合标签使用

<dependency>
            <groupId>org.thymeleaf.extras</groupId>
            <artifactId>thymeleaf-extras-springsecurity5</artifactId>
        </dependency>

在这里插入图片描述
在这里插入图片描述
现在来看效果,未登录
在这里插入图片描述
admin 登录
在这里插入图片描述
test 登录
在这里插入图片描述
接下来处理从数据库查询用户了

标签:NoOpPasswordEncoder,加密,vip1,登录,antMatchers,学习,password,springseacurity
来源: https://blog.csdn.net/lovely960823/article/details/111660296