在开发系统过程中,项目都是由多个模块组成的,多个模块里又有多个动作,就这需要用到权限判断了比如说 “信息管理”这个模块下包括:添加信息,修改信息,删除信息有的用户只有 “添加信息”,有的用户有“修改信息”权限,那我如何在用户进行添加信息时进行判断呢,
以前都是硬编码的方式写在代码里的现在用struts2,他的拦截器是否可以控制,如何控制?
以前都是硬编码的方式写在代码里的现在用struts2,他的拦截器是否可以控制,如何控制?
解决方案 »
- 求《java web项目开发案例精粹》一书光盘源码
- win7下,java获取本地ip问题
- struts2中s:iterator value="#request.list" id="u">循环如何获取指定具体行的值<
- 想请教jboss中的jms的安全与认证处理问题,有做过类似的吗?
- 菜鸟请教,如何建立JNDI数据源?
- jdbc的问题设置的路径对吗??能不能给我一段测试的程序啊
- 用weblogic的服务器下,在浏览器显示excel是乱码,怎么配置??
- 急切!WEBLOGIC部署不能生成目录结构吗?我不想生成war文件。。。
- 我直接导入我队友做的JSP的包到eclipse里,为什么验证码和跳转页面都是404
- 前两天困惑的面试题,求大佬解答
- 想做个类似代理上网的软件
- 求!求 求指教!
通常:用户与角色建立多对多关系,角色与业务模块构成多对多关系,权限管理在后者关系中。
对权限的拦截,如果系统请求量大,可以用Struts2拦截器来做,请求量小可以放在filter中。但一般单级拦截还不够,要做到更细粒度的权限控制,还需要多级拦截。
可参考以下文章,做法都差不多。
http://howsun.blog.sohu.com/106725713.html
期待中....
if (!permiss) 进行处理。其实拦截器也可以实现,但是有个问题,就是在每个action下都要写配置,如下
<action name="index" >
<result name="success">/UI/system/index.jsp</result>
<interceptor-ref name="rbac">
<param name="moudel">007</param>
</interceptor-ref>
</action>
public String intercept(ActionInvocation invoker) throws Exception {
RoleDAO dao = DAOFactory.getInstance().getRoleDAO();
HttpServletRequest request = ServletActionContext.getRequest();
UserManager mgr = new UserManager(request);
try {
int userid = mgr.getUserInfo().getUserId();
String subvision = mgr.getUserInfo().getUserArea();
boolean permisses = dao.isUserMoudel(userid, moudel, subvision);
if (permisses) {
return invoker.invoke();
} else {
return FORBIDDEN;
}
} catch (Exception ex) {
return FORBIDDEN;
}
}
访问不到的。
把你的页面放到WEB-INF目录下,解决~
s2的拦截器example:<struts>
<package name="crud" extends="struts-default">
//定义一个拦截器
<interceptors>
<interceptor name="logincheck" class="com.softeem.myintercptor.LoginIntercptor"></interceptor>
</interceptors>
<global-results>
<result name="login">index.jsp</result>
</global-results>
<action name="*login" class="com.softeem.action.LoginAction" method="{1}">
<result name="success">success.jsp</result>
//使用name为logincheck的拦截器
<interceptor-ref name="logincheck"></interceptor-ref>
</action>
</package>
</struts> 一个拦截器可以被使用在多个action中