spring security3.x学习(13)_第三个例子要使用hsql数据库

书中第三个例子(也就是第四章的例子),使用到了内存数据库,hsql. 
具体配置和使用方式如下:




这个数据库用起来很方便,但是因为数据保存在内存中,所以我们无法使用标准的工具进行查询。(这样的话,其实不是很方便的)
咱们看一下,初始化的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),我们可以看出上边脚本的大概意思。(注释是我猜的啊。。)

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


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


看一下,最像的就是这个了。 那我们大概先这么认为着。。
再来看另一个脚本: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 sqserver这样的数据库。

这个项目我已经整理完成后,放到csdn了。 
大家可以下载: http://download.csdn.net/detail/dulei294948/6289741(里边有完成的jar,并且可以直接运行。)。



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值