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

如何做网站标题网站免费高清素材软件小游戏

如何做网站标题,网站免费高清素材软件小游戏,网站改版的费用,重庆建筑信息网官网[spring] Spring MVC - security#xff08;下#xff09; callback 一下#xff0c;当前项目结构如下#xff1a; 这里实现的功能是连接数据库#xff0c;大范围和 [spring] rest api security 重合 数据库连接 - 明文密码 第一部分使用明文密码 设置数据库 主要就是…[spring] Spring MVC - security下 callback 一下当前项目结构如下 这里实现的功能是连接数据库大范围和 [spring] rest api security 重合 数据库连接 - 明文密码 第一部分使用明文密码 设置数据库 主要就是运行 SQL USE employee_directory;DROP TABLE IF EXISTS authorities; DROP TABLE IF EXISTS users;-- -- Table structure for table users --CREATE TABLE users (username varchar(50) NOT NULL,password varchar(50) NOT NULL,enabled tinyint NOT NULL,PRIMARY KEY (username) ) ENGINEInnoDB DEFAULT CHARSETlatin1;-- -- Inserting data for table users --INSERT INTO users VALUES (john,{noop}test123,1), (mary,{noop}test123,1), (susan,{noop}test123,1);-- -- Table structure for table authorities --CREATE TABLE authorities (username varchar(50) NOT NULL,authority varchar(50) NOT NULL,UNIQUE KEY authorities_idx_1 (username,authority),CONSTRAINT authorities_ibfk_1 FOREIGN KEY (username) REFERENCES users (username) ) ENGINEInnoDB DEFAULT CHARSETlatin1;-- -- Inserting data for table authorities --INSERT INTO authorities VALUES (john,ROLE_EMPLOYEE), (mary,ROLE_EMPLOYEE), (mary,ROLE_MANAGER), (susan,ROLE_EMPLOYEE), (susan,ROLE_MANAGER), (susan,ROLE_ADMIN);运行结果如下 以及目前的 ER 图 添加 maven 依赖 新增的依赖如下 dependencygroupIdorg.springframework.boot/groupIdartifactIdspring-boot-starter-data-jpa/artifactId/dependencydependencygroupIdcom.mysql/groupIdartifactIdmysql-connector-j/artifactIdscoperuntime/scope/dependency修改 properties 文件 这里具体的数据库/用户名/密码和本地设置有关除此之外新增了一个 logging.level.org.springframework.jdbc.coreTRACE这个设置是为了增加连接数据库的 logging 的主要作用是 demo/debug spring.application.namedemo# JDBC properties spring.datasource.urljdbc:mysql://localhost:3306/employee_directory spring.datasource.usernamespringstudent spring.datasource.passwordspringstudent spring.jpa.database-platformorg.hibernate.dialect.MySQLDialect# log JDBC SQL statements # only use this for dev/testing purpose logging.level.org.springframework.jdbc.coreTRACE更新 security config 之前用的是 InMemoryUserDetailsManager代表用的是内存中的用户名和密码。这里需要吧 InMemoryUserDetailsManager 注释掉更换成 UserDetailsManager 具体实现如下 Beanpublic UserDetailsManager userDetailsManager(DataSource dataSource) {return new JdbcUserDetailsManager(dataSource);}执行的 sql 指令如下 这代表着现在已经使用数据库连接而非内存中写死的用户名和密码 数据库连接 - bcrypt 密码 这里的配置其实和明文密码基本一样最大的差别在于写入数据库的密码 明文中存入的数据为 {noop}test123, 而 bcrypt 中写入的数据为加密后的哈希值 bcrypt}$2a$10$qeS0HEh7urweMojsnwNAR.vcXJeXR1UcMRZ2WcGQl9YeuspUdgF.q bcrypt 是一种密码加密方式其主要的优点在于因为 salt 不是固定的因此同样的密码会生成不同的哈希值 具体的实现这里不过多涉及 设置数据库 USE employee_directory;DROP TABLE IF EXISTS authorities; DROP TABLE IF EXISTS users;-- -- Table structure for table users --CREATE TABLE users (username varchar(50) NOT NULL,password char(68) NOT NULL,enabled tinyint NOT NULL,PRIMARY KEY (username) ) ENGINEInnoDB DEFAULT CHARSETlatin1;-- -- Inserting data for table users -- -- NOTE: The passwords are encrypted using BCrypt -- -- A generation tool is avail at: https://www.luv2code.com/generate-bcrypt-password -- -- Default passwords here are: fun123 --INSERT INTO users VALUES (john,{bcrypt}$2a$10$qeS0HEh7urweMojsnwNAR.vcXJeXR1UcMRZ2WcGQl9YeuspUdgF.q,1), (mary,{bcrypt}$2a$10$qeS0HEh7urweMojsnwNAR.vcXJeXR1UcMRZ2WcGQl9YeuspUdgF.q,1), (susan,{bcrypt}$2a$10$qeS0HEh7urweMojsnwNAR.vcXJeXR1UcMRZ2WcGQl9YeuspUdgF.q,1);-- -- Table structure for table authorities --CREATE TABLE authorities (username varchar(50) NOT NULL,authority varchar(50) NOT NULL,UNIQUE KEY authorities4_idx_1 (username,authority),CONSTRAINT authorities4_ibfk_1 FOREIGN KEY (username) REFERENCES users (username) ) ENGINEInnoDB DEFAULT CHARSETlatin1;-- -- Inserting data for table authorities --INSERT INTO authorities VALUES (john,ROLE_EMPLOYEE), (mary,ROLE_EMPLOYEE), (mary,ROLE_MANAGER), (susan,ROLE_EMPLOYEE), (susan,ROLE_MANAGER), (susan,ROLE_ADMIN);代码方面同样不需要任何的修改效果如下 ⚠️这里数据库中的密码换成了 bcrypt 加密后的密码 ⚠️这里是用原本的密码登录会报错——?error 证明了用户名和密码不符合数据库中数据下面使用更新过的用户名和密码则可以登录 使用自定义表 前面的实现都是用默认的 spring boot 实现即用户的表为 users而权限的表单为 authorities。但是在实际的应用场景中更多的业务情况是需要使用更特定的表名。spring 同样也有对这个需求的支持其实现方式则需要写少量的 sql 语句 更新数据库 这里主要新建两个平行的数据库分别取代 users 和 authorities USE employee_directory;DROP TABLE IF EXISTS roles; DROP TABLE IF EXISTS members;-- -- Table structure for table members --CREATE TABLE members (user_id varchar(50) NOT NULL,pw char(68) NOT NULL,active tinyint NOT NULL,PRIMARY KEY (user_id) ) ENGINEInnoDB DEFAULT CHARSETlatin1;-- -- Inserting data for table members -- -- NOTE: The passwords are encrypted using BCrypt -- -- A generation tool is avail at: https://www.luv2code.com/generate-bcrypt-password -- -- Default passwords here are: fun123 --INSERT INTO members VALUES (john,{bcrypt}$2a$10$qeS0HEh7urweMojsnwNAR.vcXJeXR1UcMRZ2WcGQl9YeuspUdgF.q,1), (mary,{bcrypt}$2a$10$qeS0HEh7urweMojsnwNAR.vcXJeXR1UcMRZ2WcGQl9YeuspUdgF.q,1), (susan,{bcrypt}$2a$10$qeS0HEh7urweMojsnwNAR.vcXJeXR1UcMRZ2WcGQl9YeuspUdgF.q,1);-- -- Table structure for table authorities --CREATE TABLE roles (user_id varchar(50) NOT NULL,role varchar(50) NOT NULL,UNIQUE KEY authorities5_idx_1 (user_id,role),CONSTRAINT authorities5_ibfk_1 FOREIGN KEY (user_id) REFERENCES members (user_id) ) ENGINEInnoDB DEFAULT CHARSETlatin1;-- -- Inserting data for table roles --INSERT INTO roles VALUES (john,ROLE_EMPLOYEE), (mary,ROLE_EMPLOYEE), (mary,ROLE_MANAGER), (susan,ROLE_EMPLOYEE), (susan,ROLE_MANAGER), (susan,ROLE_ADMIN); 实现后的 ER 图如下 配置 security config 使用自定义表单 这里需要更新的也是 userDetailsManager之前是直接返回 jdbcUserDetailsManager让其运行默认的 sql 语句这里则是写一点 sql 语句重写默认的执行语句 Beanpublic UserDetailsManager userDetailsManager(DataSource dataSource) {JdbcUserDetailsManager jdbcUserDetailsManager new JdbcUserDetailsManager(dataSource);// define query to retrieve a user by usernamejdbcUserDetailsManager.setUsersByUsernameQuery(select user_id, pw, active from members where user_id?);// define query to retrieve the authorities/roles by usernamejdbcUserDetailsManager.setAuthoritiesByUsernameQuery(select user_id, role from roles where user_id?);return jdbcUserDetailsManager;}
http://www.hkea.cn/news/14566930/

相关文章:

  • 坪山网站建设资讯齐河网站建设费用
  • 高清设计网站推荐做新闻源网站采集站赚钱
  • 郑州怎么做网站排名flash网站引导页
  • 游戏网站开发毕业设计无忧建站
  • 做网站需要什么花费同一个服务器可以做多个网站
  • wordpress 多站点 主站点怎么做跨境电商网站
  • 建立自己的网站怎么样做Wordpress 转发后查看
  • 网站建设柒金手指花总11wordpress自带主题下载失败
  • wordpress访问局域网苏州优化方式
  • 自己公司怎样做免费的网站wordpress 图片命名
  • 包头做网站的公司招聘信息天津百度seo推广
  • 可以做引流网站的源码远程服务器安装wordpress
  • 安徽城乡住房建设厅网站重庆网站seo多少钱
  • wordpress怎么重新初始化百度seo和sem的区别
  • 网站构架图怎么做云龙徐州网站开发
  • 做网站交互效果用什么软件大学生网页设计心得体会
  • 网站开发之美北京国税局网站官网入口
  • asp.net网站发布到虚拟主机郴州新网二手房出售
  • 环保科技东莞网站建设企业网站的建设与实现论文
  • 虚拟主机销售网站鹤壁市网站建设
  • 网站流量指标有哪些做设计需要知道的几个网站
  • 企业内部网站模板下载关于做外汇现货的网站
  • 成都做网站做的好的公司电商网站开发平台实验
  • 做网站的是什么工种找人做网站都需要提供什么
  • 电子商务网站建设系统特点长沙房价走势最新消息
  • 企业网站怎么建立app开发过程中的困难
  • 惠民县建设网站大家都用哪个网站做读书笔记
  • 伍佰亿是什么网站内蒙古建设工程造价信息网官网
  • 兰州新区农投建设网站资源软件库
  • 外贸网站建设厦门南沙做网站