当前位置: 首页 > news >正文

网站建设排名优化技巧五金塑胶 技术支持 东莞网站建设

网站建设排名优化技巧,五金塑胶 技术支持 东莞网站建设,手机海外代理ip,网站需求分析有哪些内容一、Spring Security中基于Jdbc的用户认证 & 授权 1.1、概述 前面的系列文章介绍了基于内存定义用户的方式,其实Spring Security中还提供了基于Jdbc的用户认证 & 授权,再说基于Jdbc的用户认证 & 授权之前,不得不说一下Spring Se…

一、Spring Security中基于Jdbc的用户认证 & 授权

1.1、概述

        前面的系列文章介绍了基于内存定义用户的方式,其实Spring Security中还提供了基于Jdbc的用户认证 & 授权,再说基于Jdbc的用户认证 & 授权之前,不得不说一下Spring Security中一个非常重要的类UserDetailService,关于UserDetailService,请参考【系列二、Spring Security中的核心类】,这里不再赘述。

1.2、JdbcUserDetailsManager

        JdbcUserDetailsManager实现了UserDetailsManager接口,UserDetailsManager继承于UserDetailsService接口,继承结构如下:

通过这个类可以使用Spring Security内置的Jdbc操作数据库。

1.2.1、sql脚本的位置 

org/springframework/security/core/userdetails/jdbc/users.ddl

1.2.2、我整理好的 

DROP TABLE IF EXISTS `users`;
create table users(username varchar(50) not null primary key COMMENT '用户名',password varchar(100) not null COMMENT '密码',enabled int not null COMMENT '账户是否启用(1:启用、0:禁用)'
) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '用户表' ROW_FORMAT = DYNAMIC;DROP TABLE IF EXISTS `authorities`;
create table authorities (username varchar(50) not null COMMENT '用户名',authority varchar(50) not null COMMENT '权限',constraint fk_authorities_users foreign key(username) references users(username)
) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '权限表' ROW_FORMAT = DYNAMIC;create unique index ix_auth_username on authorities (username,authority);

1.3、资源类

/*** @Author : 一叶浮萍归大海* @Date: 2024/1/11 20:58* @Description: 测试资源*/
@RestController
public class HelloController7004 {/*** 任何人都可以访问* @return*/@GetMapping("/helloWorld")public R helloWorld() {return R.ok().data("Hello World");}/*** 登录后才能访问* @return*/@GetMapping("/sayHi")public R sayHi() {return R.ok().data("嗨!");}/*** 需要具有dba角色的人才能访问* @return*/@GetMapping("/dba/helloWorld")public R dba() {return R.ok().data("dba Hello World");}/*** 需要具有admin角色的人才能访问* @return*/@GetMapping("/admin/helloWorld")public R admin() {return R.ok().data("admin Hello World");}}

1.4、配置类

/*** @Author : 一叶浮萍归大海* @Date: 2024/1/11 21:50* @Description: Spring Security配置类*/
@Configuration
public class MyWebSecurityConfigurerAdapter7004 extends WebSecurityConfigurerAdapter {@Resourceprivate MyAuthenticationSuccessHandler7004 successHandler;@Resourceprivate MyAuthenticationFailureHandler7004 failureHandler;@Resourceprivate MyLogoutSuccessHandler7004 logoutSuccessHandler;@Resourceprivate MyAuthenticationEntryPoint7004 authenticationEntryPoint;@Resourceprivate MyAccessDeniedHandler7004 accessDeniedHandler;@Resourceprivate DataSource dataSource;/*** 密码加密器* @return*/@BeanPasswordEncoder passwordEncoder() {return NoOpPasswordEncoder.getInstance();}/*** 根据UserDetailsService定义基于Jdbc的用户* 调用 userExists 方法判断用户是否存在,如果不存在,就创建一个新的用户出来(因为每次项目启动时这段代码都会执行,所以加一个判断,避免重复创建用户)* @return*/@Beanprotected UserDetailsService userDetailsService() {JdbcUserDetailsManager manager = new JdbcUserDetailsManager();manager.setDataSource(dataSource);if (!manager.userExists("admin")) {manager.createUser(User.withUsername("admin").password("123456").roles("admin").build());}if (!manager.userExists("dba")) {manager.createUser(User.withUsername("dba").password("123456").roles("dba").build());}return manager;}/*** 角色继承* @return*/@Beanprotected RoleHierarchy roleHierarchy() {RoleHierarchyImpl roleHierarchy = new RoleHierarchyImpl();roleHierarchy.setHierarchy("ROLE_admin > ROLE_dba");return roleHierarchy;}@Overrideprotected void configure(HttpSecurity http) throws Exception {http.authorizeRequests().antMatchers("/dba/**").hasRole("dba").antMatchers("/admin/**").hasRole("admin").antMatchers("/helloWorld").permitAll().anyRequest().authenticated().and()/*** 登录成功 & 登录失败回调*/.formLogin().loginPage("/login").successHandler(successHandler).failureHandler(failureHandler).and()/*** 注销登录回调*/.logout().logoutUrl("/logout").logoutSuccessHandler(logoutSuccessHandler).permitAll().and().csrf().disable()/*** 未认证 & 权限不足回调*/.exceptionHandling().authenticationEntryPoint(authenticationEntryPoint).accessDeniedHandler(accessDeniedHandler);}}

1.5、启动服务会往表中插入数据,如下

1.6、测试

        测试流程同【系列六、Spring Security中的认证 & 授权 & 角色继承​​​​​​​】,这里不再赘述。

http://www.15wanjia.com/news/156594.html

相关文章:

  • 网站设计的字体如何选择适合的图像和照片
  • 金湖企业网站制作wordpress邮件配置
  • 做质量计量的网站有哪些wordpress 自动保存 插件
  • 万国企业网西安网站自然排名优化
  • 网站的规划建设与分析vs2012建设网站
  • 如何提升网站流量网站建设研究方法
  • 桂林网站设计制作成都旅游路线一览表
  • 郑州做网站的公司哪些电子商城网站怎么做
  • 河北建筑工程信息公开网赣州网站优化
  • 社群营销策略有哪些成都seo招聘信息
  • 北京燕郊网站建设app推广全国代理加盟
  • 微信网站设计价格iphone私人网址
  • 橱柜衣柜做网站wordpress 网址导航
  • 网站运营之怎样做好seo优化佛山网站建设外贸
  • 网站开发质量管理建设简单网站的图纸
  • 枣庄高端网站定制外国人做的学汉字网站
  • 怎么建立自己的网站?代理产品
  • 网站403错误龙华个人网站建设
  • 济南做外贸网站的公司社区自助建站网
  • 网站建设需要软件企业手机网站
  • 怎么做网站流量h5制作平台排行榜
  • 西安网站seo优化广州网络优化最早的公司
  • wordpress主题站主题网站浏览器兼容
  • 网站设计开发报价网站后台 灰色
  • 用vs2010做网站并连数据库怎么开网店需要多少钱
  • 江苏广泽建设有限公司网站企业网站的建设流程包括
  • 免费发广告的网站中国建设部门官方网站
  • 北京网站制作服务wordpress主题房
  • 大型网站制作设计想开发个网站
  • 网址大全123官方网站一汽奔腾桂林论坛