博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
spring security3.x学习(13)_第三个例子要使用hsql数据库
阅读量:6814 次
发布时间:2019-06-26

本文共 2103 字,大约阅读时间需要 7 分钟。

hot3.png

本文为转载学习

原文链接:

书中第三个例子(也就是第四章的例子),使用到了内存数据库,hsql. 

具体配置和使用方式如下:

223019_rDIy_1417419.jpg

223020_20KD_1417419.jpg

这个数据库用起来很方便,但是因为数据保存在内存中,所以我们无法使用标准的工具进行查询。(这样的话,其实不是很方便的)

咱们看一下,初始化的security-scema.sql脚本:

-- 注. 所用的用户,主要存贮用户信息  create table users(      username varchar_ignorecase(50) not null primary key,      password varchar_ignorecase(50) not null,      enabled boolean not null      );-- 注. 存储权限信息  create table authorities (      username varchar_ignorecase(50) not null,      authority varchar_ignorecase(50) not null,      constraint fk_authorities_users foreign key (username) references users(username));      create unique index ix_auth_username on authorities (username,authority);-- 注. 存储组信息create table groups (  id bigint generated by default as identity(start with 0) primary key,  group_name varchar_ignorecase(50) not null);-- 注. 存储组权限信息create table group_authorities (  group_id bigint not null,  authority varchar(50) not null ,  constraint fk_group_authorities_group foreign key (group_id) references groups(id));-- 注. 存储组成员create table group_members (  id bigint generated by default as identity(start with 0) primary key,  username varchar(50) not null ,  group_id bigint not null,  constraint fk_group_members_group foreign key(group_id) references groups(id));

虽然我们没有专门学过hsql,但是通过普通的sql语法(一般使用sql92),我们可以看出上边脚本的大概意思。(注释是我猜的啊。。)

那么如何去连接这样的数据库,进行使用呢:

223438_SOxR_1417419.jpg

在认证管理器中,认证提供者应该调用UserDetailService的,但是这里使用了jdb-user-service,那么,我们可能会猜到,其实这个标签的实现类就是UserDetailService的子类,我们可以查一下:

223609_DPtY_1417419.jpg

再来看另一个脚本:test-data.sql:

insert into users(username, password, enabled) values ('admin' ,'admin' ,true);insert into authorities(username,authority) values ('admin' ,'ROLE_USER' );insert into authorities(username,authority) values ('admin' ,'ROLE_ADMIN' );insert into users(username, password, enabled) values ('guest' ,'guest' ,true);insert into authorities(username,authority) values ('guest' ,'ROLE_USER' );commit;

这个就不说了,基本上都可以看懂的。

那么,现在当我们启动程序时,数据初始化的工作我们就做完了。

这里只是粗略的学习了一下hsql,具体的hsql,还要通过查询相应的资料学习,不过对于学习spring security来说,看懂就可以了,后期的数据库肯定要使用想mysql sqlserver这样的数据库。

这个项目我已经整理完成后,放到csdn了。 

大家可以下载:(里边有完成的jar,并且可以直接运行。)

转载于:https://my.oschina.net/heroShane/blog/197016

你可能感兴趣的文章
vue2.0中父子,兄弟组件的传值2
查看>>
Spring Boot注解常用!!!看了就可以开发大量项目了
查看>>
音频编码 Audio Converter
查看>>
SQL - case when then else end 的用法
查看>>
web优化是http缓存(上)
查看>>
19-01-14
查看>>
媒体融合三部曲(未完待续...)
查看>>
OkHttp3-拦截器(Interceptor)
查看>>
Bootstrap在实际生产开发中的使用心得
查看>>
Google推出实时内容洞察工具 为用户提供表现最好的内容
查看>>
虚拟机故障与故障处理工具之指令篇
查看>>
iOS 基础知识学习目录索引
查看>>
My_Base_notes
查看>>
Node assert断言学习及mocha框架与travisCI初探
查看>>
大话转岗 PHP 开发小结
查看>>
React的状态管理
查看>>
寻找一种易于理解的一致性算法(扩展版)下
查看>>
MySQL - 高可用性:少宕机即高可用?
查看>>
php 生成唯一值
查看>>
2018电影票房分析-谁才是票房之王
查看>>