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

网站建设公司合肥深圳产品展厅设计公司

网站建设公司合肥,深圳产品展厅设计公司,企业网络营销成功案例,制作一个网站步骤排版一、Spring Security中基于Jdbc的用户认证 授权 1.1、概述 前面的系列文章介绍了基于内存定义用户的方式#xff0c;其实Spring Security中还提供了基于Jdbc的用户认证 授权#xff0c;再说基于Jdbc的用户认证 授权之前#xff0c;不得不说一下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.hkea.cn/news/14507420/

相关文章:

  • Delphi 网站开发框架wordpress注入docker
  • 中国商检局做备案网站做网站制作的
  • 网站建设栏目设置从seo角度去建设网站
  • 广州网站建设报价表网页qq登录保护怎么关
  • 做网站开发需要学什么软件施工企业iso认证
  • 网站设计英语科技公司名称大全
  • 洛阳网站制作哪家好4399小游戏网页版入口
  • 网站设计师主要做什么企业网站免费建站
  • 门户网站字体小程序源码开发
  • 陕西省信用建设门户网站服务好的扬中网站优化
  • 网站被同行抄袭怎么办河南旅游网页设计
  • c 2015 做网站优班图搭建网站
  • WordPress一键开启全站SSL当当网站建设与易趣网站对比
  • 做网站需要编程么响应式网站设计图怎么做
  • 网站app怎么制作教程凡科网免费建站步骤及视频
  • 网站推广的正确方式做高仿网站有哪些
  • 成都网站建设那家好怎样做自己可以发布消息的网站
  • 平板购物网站建设建设国外网站引流吗
  • 网站建设的方案计划企业标准
  • 徽石网站建设万户信息 做网站怎么样
  • 佛山哪有网站建设公司手机网站页面尺寸大小
  • 设置字体颜色的网站毕业设计网站怎么做
  • 建设网站需要什么技术支持泰安网站建设怎么样
  • 中山做网站排名做app的网站
  • 公司网站在哪里做快速搭建网站模板
  • 网站色彩搭配表适合初学者做的网页
  • 昆山网站建设公司怎么样wordpress 不能查看站点
  • 电子商务学网站建设好吗网站权重一般有几个等级
  • codeorg免费编程网站贵州省住房与城乡建设厅网站
  • 做自媒体网站开发做网站工资怎么样