SpringBoot Security安装配置及Thymeleaf整合

网友投稿 258 2023-02-15

SpringBoot Security安装配置及Thymeleaf整合

功能:解决web站点的登录,权限验证,授权等功能

优点:在不影响站点业务代码,可以权限的授权与验证横切到业务中

1、要添加的依赖

org.shttp://pringframework.boot

spring-boot-starter-thymeleaf

org.thymeleaf.extras

thymeleaf-extras-springsecurity5

org.springframework.boot

spring-boot-starter-web

org.springframework.boot

spring-boot-starter-security

2、Security 下授权与验证的简单配置(Security下有登录,注销,记住我等功能,可以快速集成到自己的login页上)

Tis:如果template页中使用了 Frame页,默认是不能访问的,需要添加 http.headers().frameOptions().sameOrigin();

@EnableWebSecurity

public class SecurityConfig extends WebSecurityConfigurerAdapter {

//授权

@Override

protected void configure(HttpSecurity http) throws Exception {

//请求授权的规则

http.authorizeRequests()

//.antMatchers("/tologin").permitAll() //登录页所有人都可以访问

//.antMatchers("/admin/**").hasRole("admin1")

.antMatchers("/admin/list").hasRole("admin1")

.antMatchers("/admin/role").hasRole("admin1")

.antMatchers("/admin/cate").hasRole("admin2")

.antMatchers("/admin/rule").hasRole("admin2");

// 项目里面使用了springSecurity spring Security下,X-Frame-Options默认为DENY,非spring Security环境下,X-Frame-Options的默认大多也是DENY,这种情况下,浏览器拒绝当前页面加载任何Frame页面

http.headers().frameOptions().sameOrigin();

//登录页(Security默认有一个登录页)

http.formLogin().permitAll()

.loginPage("/tologin") //指定自定义的登录页地址

.successForwardUrl("/admin/index") //登录成功跳转地址

.usernameParameter("username").passwordParameter("password");//匹配自定义登录页的name元素名称

// 开启注销功能,跳转到登录页

http.csrf().disable(); //退出失败可能能的原因

http.logout().logoutSuccessUrl("/tologin");

//开启记住我功能,cookie 默认保存14天

http.rememberMe()

.rememberMeParameter("remember");//匹配自定义登录页的name元素名称

}

//认证

@Override

protected void configure(AuthenticationManagerBuilder auth) throws Exception {

auth.inMemoryAuthentication()

.passwordEncoder(new BCryptPasswordEncoder())//密码加密方式(有些版本的Security必须要指定)

.withUser("root").password(new BCryptPasswordEncoder().encode("123")).roles("admin1","admin2","admin3")

.and()

.withUser("yeqiu").password(new BCryptPasswordEncoder().encode("123")).roles("admin1")

.and()

.withUser("admin").password(new BCryptPasswordEncoder().encode("123")).roles("admin2");

}

}

3、Security 和 Thymeleaf 页面整合(添加依赖:thymeleaf-extras-springsecurity)

权限管理

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:java 使用poi动态导出的操作
下一篇:Java基于TCP协议socket网络编程的文件传送的实现
相关文章

 发表评论

暂时没有评论,来抢沙发吧~