struts 拦截器来过滤用户的权限
2014-12-01 09:56
232 查看
package com.cstc.web.interceptor; import java.util.Set; import org.apache.commons.lang3.StringUtils; import org.apache.struts2.ServletActionContext; import com.cstc.common.Constants; import com.cstc.entity.AppAccount; import com.cstc.entity.Privilege; import com.cstc.entity.Role; import com.cstc.service.AppAccountService; import com.opensymphony.xwork2.ActionContext; import com.opensymphony.xwork2.ActionInvocation; import com.opensymphony.xwork2.interceptor.AbstractInterceptor; //权限拦截器 public class PrivilegeInterceptor extends AbstractInterceptor{ private static final long serialVersionUID = 6417931165996137903L; private AppAccountService appAccountService; @Override public String intercept(ActionInvocation invocation) throws Exception { System.out.println("privilegeInterceptor"+appAccountService); AppAccount acc = (AppAccount) ActionContext.getContext().getSession().get(Constants.KEY_SESSION_CURR_USER); boolean flag = false; if(acc != null){ String uri = ServletActionContext.getRequest().getRequestURI(); String resource = StringUtils.substringBetween(uri, "/mng/", "_"); String action = StringUtils.substringBetween(uri, "_", ".action"); System.out.println(acc); System.out.println("account.Role:"+acc.getRole()); Role r = acc.getRole(); Set<Privilege> set = r.getSetPrivilege(); for (Privilege p : set) { System.out.println("p::+++++"+p); if(p.getResources().equalsIgnoreCase(resource)){ if(p.getAction().equals(action)){ flag=true; } } } if(flag){ return invocation.invoke(); }else{ return "fail"; } }else{ return invocation.invoke(); } } public AppAccountService getAppAccountService() { return appAccountService; } public void setAppAccountService(AppAccountService appAccountService) { this.appAccountService = appAccountService; } }
相关文章推荐
- Struts开发一个权限验证拦截器来判断用户是否登录
- 用struts的拦截器实现用户权限控制
- 基于整合了struts 和hibernate 的j2ee 架构的用户权限管理系统的设计与实现
- 在struts中使用拦截器(Interceptor)控制登录和权限
- struts用拦截器实现文件过滤
- 过滤器和拦截器的比较及未登录用户权限限制的实现
- 过滤器和拦截器的比较及未登录用户权限限制的实现
- Struts中关于用户权限限定的建议
- Struts 拦截器权限控制【通过拦截器实现登录后跳转到登录前页面】
- Struts 2读书笔记-----拦截器之示例:使用拦截器完成权限控制
- Struts 2读书笔记-----拦截器之示例:使用拦截器完成权限控制
- 过滤器和拦截器的比较及未登录用户权限限制的实现
- struts2 拦截器控制用户登录权限
- 在Struts中基于Spring的AOP MethodInterceptor(拦截器)的权限验证
- struts2 使用拦截器 实现用户权限的验证
- 在struts2.1中使用注解和拦截器实现权限细粒度控制
- struts2通过拦截器实现用户权限验证
- 过滤器和拦截器的比较及未登录用户权限限制的实现
- 基于 Struts 2 拦截器实现细粒度的基于角色的权限认证实现
- 过滤器和拦截器的比较及未登录用户权限限制的实现