各位下午好,小弟正在做一个权限管理的系统.设计方面的工作己通过参考网上的资料基本完成,设计了五张表(用户表、权限表、用户组表、用户与组的映射表、权限与组的映射表)
权限表 action:
actionid actionname actionstr(权限英文描述名)
1 添加用户 adduser 用户组表 group:
groupid groupname 用户表 member:
id name pwd last_ip last_time load_count 用户与组的映射表 membergroup:
id memberid name groupid 权限与组的映射表 actiongroup:
id actionstr groupid
但在技术实现方面不知从何下手.我打算用jsp+sevlet做,当用户登录时判断其为哪个用户组成员,并得到该用户组所拥有的权限,以级联菜单(或其他显示形式,超链接形式)显示该用户所拥有的权限,但这样做的只是对url的隐藏与显示,要是用户直接输入某管理员操作页面的url,也是可以进行相关管理操作的,这样系统就会出问题了.不知各位有没有什么好的实现方式可以提点一下,或是自己的实现方式,谢了
权限表 action:
actionid actionname actionstr(权限英文描述名)
1 添加用户 adduser 用户组表 group:
groupid groupname 用户表 member:
id name pwd last_ip last_time load_count 用户与组的映射表 membergroup:
id memberid name groupid 权限与组的映射表 actiongroup:
id actionstr groupid
但在技术实现方面不知从何下手.我打算用jsp+sevlet做,当用户登录时判断其为哪个用户组成员,并得到该用户组所拥有的权限,以级联菜单(或其他显示形式,超链接形式)显示该用户所拥有的权限,但这样做的只是对url的隐藏与显示,要是用户直接输入某管理员操作页面的url,也是可以进行相关管理操作的,这样系统就会出问题了.不知各位有没有什么好的实现方式可以提点一下,或是自己的实现方式,谢了
解决方案 »
- spring security j_spring_security_check 404求助!!!
- 浏览器兼容问题
- 验证Sql中是否存在注释
- java真的很恶心吗?
- servlet 下载文件
- 怎样动态合并单元格?
- [Microsoft][SQLServer 2000 Driver for JDBC]Invalid operation for the current cursor position
- 请问Struts中的<html:button>标签中的property到底有什么用
- jspSmart下载文件后,文件内容乱码?(急)
- 刚接触javamail,高分问一些简单的问题
- 又是javascript?
- 调查分析----关于JSP和.NET的优劣
它使用taglib判断当前用户是否有操作的权限,如果没有就隐藏保护的内容。
从登陆界面过来的 不是的话跳到登陆界面
1.表单式认证,这是常用的,但用户到达一个不被授权访问的资源时,Web容器就发
出一个html页面,要求输入用户名和密码。
2.一个基于Servlet Sign in/Sign out来集中处理所有的Request,缺点是必须由应用程序自己来处理。
3.用Filter防止用户访问一些未被授权的资源,Filter会截取所有Request/Response,
然后放置一个验证通过的标识在用户的Session中,然后Filter每次依靠这个标识来决定是否放行Response。
这个模式分为:
Gatekeeper :采取Filter或统一Servlet的方式。
Authenticator: 在Web中使用JAAS自己来实现。
用户资格存储LDAP或数据库:
1. Gatekeeper拦截检查每个到达受保护的资源。首先检查这个用户是否有已经创建
好的Login Session,如果没有,Gatekeeper 检查是否有一个全局的和Authenticator相关的session?
2. 如果没有全局的session,这个用户被导向到Authenticator的Sign-on 页面,
要求提供用户名和密码。
3. Authenticator接受用户名和密码,通过用户的资格系统验证用户。
4. 如果验证成功,Authenticator将创建一个全局Login session,并且导向Gatekeeper
来为这个用户在他的web应用中创建一个Login Session。
5. Authenticator和Gatekeepers联合分享Cookie,或者使用Tokens在Query字符里。