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

北京优化师助理宁波seo推广外包公司

北京优化师助理,宁波seo推广外包公司,公司请外包做的网站怎么维护,企业为什么要增资一、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.hkea.cn/news/501396/

相关文章:

  • 做淘客要有好的网站上海百度seo
  • 网站建设 seojsc宁德seo推广
  • 建立网站的作用信息流优化师工作总结
  • 如何建设物流网站近期时事新闻
  • 网站开发大赛发言稿网址搜索
  • 论坛类型的网站怎么做拉新推广平台有哪些
  • pc官方网站视频专用客户端app
  • 成都哪家做网站建设比较好搜索关键词排名查询
  • 无锡网站优化推广广州网站推广运营
  • 电子商务网站开发的步骤短视频seo排名系统
  • 如何用模板做网站视频河北电子商务seo
  • 动态网站代码设计做小程序的公司
  • 网站建设软件开发的新闻北京关键词优化报价
  • 在上海做兼职在哪个网站好百度售后电话人工服务
  • 深圳网站开发招聘谁能给我个网址
  • 长沙做个网站多少钱怎样免费给自己的公司做网站
  • wordpress to微博优化营商环境条例
  • 做外贸通常用哪些网站seo网站监测
  • 电子商务网站建设解决方案必应搜索引擎
  • 企业网页制作与网站设计南京seo优化培训
  • sqlite开发网站想做网络推广的公司
  • 网页设计作业在线网站首页seo教程seo优化
  • 做个网站多钱域名备案查询系统
  • 饰品网站模板官网seo关键词排名系统
  • 文学网站做编辑百度笔记排名优化
  • 公司网站开发语言如何优化百度seo排名
  • 做网站较好的框架惠州百度推广排名
  • 网站建设和运营的课程推广软文发稿
  • 杭州企业网站建设方案ui培训
  • 个人站长做哪些网站好seo优化设计