首先配置web.xml
contextconfiglocation
classpath:*.xml
springsecurityfilterchain
org.springframework.web.filter.delegatingfilterproxy
這是乙個spring security的資料庫認證例項,要注意以下幾點:
(1)請自行加入spring必須的包,spring security的包和mysql的驅動包,當然你也可以換成其他的資料庫,但是你要相應的修改spring-common.xml中的datasource部分
(2)資料庫中的兩個表users,authorites必須完全按照指令碼所示來定義,也就是說表的名字不能修改.
(3)users表必須包含username,password,enabled欄位,這三個欄位是絕對不能少的,也不能修改型別.另外enabled一定要為1才能登入
(4)authorities表必須包含username欄位,這個字段引用users的username作為外來鍵,authority欄位就是角色的名字,角色名字必須滿足role_***的格式(例如:role_admin,role_user,role_mamager)
(5)如果乙個使用者有多個角色,不要將多個角色放在一起用逗號隔開.而是每個角色定義一條記錄(例如:abu有role_admin,role_user兩個角色,那麼應該定義兩條記錄: 一條為abu, role_user,另一條為abu, role_admin.而不是只有一條:abu, role_admin,role_user)
(6)你可以給authorities表新增乙個id欄位作為主鍵.
/-- 注意這裡的指令碼是mysql的,因此在你演示這個例項的時候,要加入mysql的驅動包 --/
create table users
( username varchar(50) primary key,
password varchar(50),
enabled tinyint(1)
);
create table authorities
( id int auto_increment primary key,
username varchar(50),
authority varchar(50),
constraint fk_authorities_users foreign key(username) references users(username)
);
create unique index ix_auth_username on authorities (username,authority);
SpringSecurity設定角色和許可權
在userdetailsservice使用loaduserbyusername構建當前登入使用者時,可以選擇兩種授權方法,即角色授權和許可權授權,對應使用的 是hasrole和hasauthority,而這兩種方式在設定時也有不同,下面介紹一下 角色授權 授權 需要加role 字首,controll...
spring security 安全框架
本文 http itblood.com spring security security framework.html 安全常識 acegi介紹 以宣告式方式為基於spring的web應用新增認證和授權控制 acegi體系結構 認證管理器 訪問控制管理器。認證 authenticationproce...
SpringSecurity認證流程
在之前的文章 springboot spring security 基本使用及個性化登入配置 中對springsecurity進行了簡單的使用介紹,基本上都是對於介面的介紹以及功能的實現。這一篇文章嘗試從原始碼的角度來上對使用者認證流程做乙個簡單的分析。在具體分析之前,我們可以先看看springse...