Spring Security3简单使用(权限配置在数据库中)

  1、权限配置在数据库中,典型的五张表。

    1)t_user  用户表

    2)t_role  角色表

    3)t_user_role  用户-角色关联表 

    4)t_resource  资源表

    5)t_role_resource  角色-资源关联表

  2、建表语句

`t_resource`;CREATE TABLE `t_resource` (`id` int(11) NOT NULL AUTO_INCREMENT ,`name` ,`url` ,PRIMARY KEY (`id`)) `t_role`;CREATE TABLE `t_role` (`id` int(11) NOT NULL AUTO_INCREMENT ,`name` ,PRIMARY KEY (`id`)) `t_role_resource`;CREATE TABLE `t_role_resource` (`id` int(11) NOT NULL AUTO_INCREMENT ,`role_id` ,`resource_id` ,PRIMARY KEY (`id`))CREATE TABLE `t_user` (`id` int(11) NOT NULL AUTO_INCREMENT ,`account` ,`password` ,PRIMARY KEY (`id`)) `t_user_role`;CREATE TABLE `t_user_role` (`id` int(11) NOT NULL AUTO_INCREMENT ,` ,`role_id` ,PRIMARY KEY (`id`))

  3、对应的领域实体

    1)用户

package cn.luxh.app.domain;/** * 用户 * @author Luxh User {private Integer id; String account; String password;@Overridepublic int hashCode() {return account.hashCode();}@Overridepublic boolean equals(Object obj) {User user = (User) obj;return this.account.equals(user.getAccount());}//getter setter//… }

    2)角色

package cn.luxh.app.domain;/** * 角色 * @author Luxh Role {private Integer id; String name;//getter setter//…}

    3)用户-角色

package cn.luxh.app.domain;/** * 用户角色 * @author Luxh UserRole {private Integer id; Integer userId; Integer roleId;//getter setter//…}

    4)资源

package cn.luxh.app.domain;/** * 资源 * @author Luxh Resource {private Integer id; String name; String url;//getter setter}

    5)角色-资源

package cn.luxh.app.domain;/** * 角色资源 * @author Luxh RoleResource {private Integer id; Integer roleId; Integer resourceId;//getter setter}

  4、配置文件

    在web.xml文件中加上如下内容:

springSecurityFilterChainorg.springframework.web.filter.DelegatingFilterProxyspringSecurityFilterChain/*org.springframework.security.web.session.HttpSessionEventPublisher

    当然配置spring监听器的时候得把springsecurity的权限配置文件给加载进去:

org.springframework.web.context.ContextLoaderListenercontextConfigLocationclasspath:applicationContext.xml,classpath:application-security.xml

    权限配置文件内容如下:

xmlns:beans=”http://www.springframework.org/schema/beans”xmlns:xsi=”http://www.w3.org/2001/XMLSchema-instance”xsi:schemaLocation=”http://www.springframework.org/schema/beans” default-target-url 指定了从登录页面登录后进行跳转的页面 always-use-default-target true表示登录成功后强制跳转authentication-failure-url 表示验证失败后进入的页面 login-processing-url 设置验证登录验证地址,如果不设置,默认是j_spring_security_checkusername-parameter,password-parameter 设置登录用户名和密码的请求name,默认:j_username,j_passworddefault-target-url=”/user/home” always-use-default-target=”true”authentication-failure-url=”/login?error=1″authentication-success-handler-ref error-if-maximum-exceeded 后登陆的账号会挤掉第一次登陆的账号session-fixation-protection防止伪造sessionid攻击. 用户登录成功后会销毁用户当前的session.创建新的session,并把用户信息复制到新session中. session-fixation-protectionerror-if-maximum-exceededclass

  5、权限配置文件中的关键类

    1)UserDetailsServiceImpl

不曾见谁。则见朵花儿闪下来,好一惊。

Spring Security3简单使用(权限配置在数据库中)

相关文章:

你感兴趣的文章:

标签云: