您的位置:首页 > 编程语言 > Java开发

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

2013-05-12 20:50 447 查看
  1、权限配置在数据库中,典型的五张表。

    1)t_user  用户表

    2)t_role  角色表

    3)t_user_role  用户-角色关联表 

    4)t_resource  资源表

    5)t_role_resource  角色-资源关联表

  2、建表语句

DROP TABLE IF EXISTS `t_resource`;
CREATE TABLE `t_resource` (
`id`  int(11) NOT NULL AUTO_INCREMENT ,
`name`  varchar(32) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL ,
`url`  varchar(200) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL ,
PRIMARY KEY (`id`)
)

DROP TABLE IF EXISTS `t_role`;
CREATE TABLE `t_role` (
`id`  int(11) NOT NULL AUTO_INCREMENT ,
`name`  varchar(32) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL ,
PRIMARY KEY (`id`)
)

DROP TABLE IF EXISTS `t_role_resource`;
CREATE TABLE `t_role_resource` (
`id`  int(11) NOT NULL AUTO_INCREMENT ,
`role_id`  int(11) NULL DEFAULT NULL ,
`resource_id`  int(11) NULL DEFAULT NULL ,
PRIMARY KEY (`id`)
)

CREATE TABLE `t_user` (
`id`  int(11) NOT NULL AUTO_INCREMENT ,
`account`  varchar(20) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL ,
`password`  varchar(256) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL ,
PRIMARY KEY (`id`)
)

DROP TABLE IF EXISTS `t_user_role`;
CREATE TABLE `t_user_role` (
`id`  int(11) NOT NULL AUTO_INCREMENT ,
`user_id`  int(11) NULL DEFAULT NULL ,
`role_id`  int(11) NULL DEFAULT NULL ,
PRIMARY KEY (`id`)
)


  3、对应的领域实体

    1)用户

View Code

package cn.luxh.app.security;

import java.io.IOException;

import javax.servlet.ServletException;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.security.core.Authentication;
import org.springframework.security.web.authentication.AuthenticationSuccessHandler;

/**
* 登录验证成功处理器
* @author Luxh
*/

public class LoginAuthenticationSuccessHandler implements AuthenticationSuccessHandler{

private static Logger log = LoggerFactory.getLogger(LoginAuthenticationSuccessHandler.class);

//登录验证成功后需要跳转的url
private String url;

public void onAuthenticationSuccess(HttpServletRequest request,
HttpServletResponse response, Authentication authentication) throws IOException,
ServletException {
log.info("登录验证成功:"+request.getContextPath()+url);
//response.sendRedirect(request.getContextPath()+url);
request.getRequestDispatcher(url).forward(request, response);
}

public void setUrl(String url) {
this.url = url;
}

}


  6、其中资源表内容如下

              


  7、源码,含数据库文件和初始化值

        http://files.cnblogs.com/luxh/app4.rar

  8、在页面上的控制权限

    1)引入标签: <%@ taglib prefix="sec" uri="http://www.springframework.org/security/tags" %>

    2)使用标签:如下,审核操作时具有"ROLE_ADM"权限才可以看到。

<sec:authorize ifAnyGranted="ROLE_ADM">
<li><a href="javascript:auditPage('${ctx}/task/auditPage?taskId=${task.taskId}')">审核</a></li>
</sec:authorize>


  
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: