spring-security(基于spring-security3)
-
由于这次的项目需要对权限进行限制,所以在网上对security进行了学习,刚开始看的时候也是头脑非常混乱的,不过终归还是要一边写一边学,这样才能更好的理解,光是看是看不会的,接下来进入正题。
-
首先来看看security工作的流程图(取自网上的截图)
-
一开始看不懂没关系,等把整个代码写完,在各个地方打上断点再来对照这个图就能理清头绪
-
这里我一共使用到了4张表(t_manager,t_role,t_power,t_role_power)
-- ---------------------------- -- Table structure for t_manager -- ---------------------------- DROP TABLE IF EXISTS `t_manager`; CREATE TABLE `t_manager` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, `manager_name` varchar(20) DEFAULT NULL, `account` varchar(20) DEFAULT NULL, `password` varchar(32) DEFAULT NULL, `tel` varchar(13) DEFAULT NULL, `email` varchar(100) DEFAULT NULL, `fk_role_id` bigint(20) DEFAULT NULL, PRIMARY KEY (`id`) ) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=utf8; -- ---------------------------- -- Table structure for t_role -- ---------------------------- DROP TABLE IF EXISTS `t_role`; CREATE TABLE `t_role` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, `role_name` varchar(20) DEFAULT NULL, `roleType` int(11) DEFAULT NULL, PRIMARY KEY (`id`) ) ENGINE=InnoDB AUTO_INCREMENT=36 DEFAULT CHARSET=utf8; -- ---------------------------- -- Table structure for t_power -- ---------------------------- DROP TABLE IF EXISTS `t_power`; CREATE TABLE `t_power` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, `power_name` varchar(50) DEFAULT NULL, `url` varchar(50) DEFAULT NULL, PRIMARY KEY (`id`) ) ENGINE=InnoDB AUTO_INCREMENT=26 DEFAULT CHARSET=utf8; -- ---------------------------- -- Table structure for t_role_power -- ---------------------------- DROP TABLE IF EXISTS `t_role_power`; CREATE TABLE `t_role_power` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, `fk_role_power` bigint(20) DEFAULT NULL, `fk_power_role` bigint(20) DEFAULT NULL, PRIMARY KEY (`id`) ) ENGINE=InnoDB AUTO_INCREMENT=96 DEFAULT CHARSET=utf8;
-
表建好之后,导入security需要的jar包,然后开始配置
web.xml中的配置(只记录了与security相关的部分)
<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>/WEB-INF/classes/spring-security.xml</param-value>
</context-param>
<listener>
<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
</listener>
<filter>
<filter-name>springSecurityFilterChain</filter-name>
<filter-class>org.springframework.web.filter.DelegatingFilterProxy</filter-class>
</filter>
<!-- 过滤所有请求 -->
<filter-mapping>
<filter-name>springSecurityFilterChain</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
接下来是security的配置文件
<?xml version=