权限控制拦截器的使用方法
2013-07-02 10:09
309 查看
权限控制拦截器是针对需要权限控制的的action所设定的特定的拦截器,避免了在action执行之前重复调用代码。类似与AOP原则可以增强代码的复用性,在特定的 切入点进行权限的控制并且是自动完成的不用action开发人员手动的调用。
登陆跳转实例如下:
登陆的action代码如下:
public String execute() throws Exception {
ActionContext actionContext=ActionContext.getContext();
Map session=actionContext.getSession();
if(this.getUsername().equals("lzhq")&&this.getPassword().equals("123")){
session.put("username", this.getUsername());
return SUCCESS;
}else
return INPUT;
}
页面跳转的action代码如下:
public class viewAction extends ActionSupport{
@Override
public String execute() throws Exception {
return SUCCESS;
}
拦截器类代码如下:
public String intercept(ActionInvocation invocation) throws Exception {
ActionContext actionContext=invocation.getInvocationContext();
Map session=actionContext.getSession();
String username=(String)session.get("username");
if(username!=null&&username.equals("lzhq")){
return invocation.invoke();
}else{
session.put("tip", "you have not login please login");
return Action.INPUT;
}
}
登陆成功后跳转到如下页面:
<body>
login success you can view the result of the book;<br/>
<s:a href="view.action">loop</s:a>
</body>
跳转成功后跳转到如下页面:
<body>
loop success;
</body>
如果没有登陆成功直接访问带有跳转超链接的页面可以访问到但是如果点击loop超链接不会跳转到跳转成功页面,因为在viewAction执行之前请求被拦截器获得,处理请求后发现没有在session中找到指定的登陆用户名因此不会将控制权交给下一个拦截器或者viewAction中的execute方法。直接跳转到INPUT页面提示用户重新登陆。完成拦截器的权限控制。
登陆跳转实例如下:
登陆的action代码如下:
public String execute() throws Exception {
ActionContext actionContext=ActionContext.getContext();
Map session=actionContext.getSession();
if(this.getUsername().equals("lzhq")&&this.getPassword().equals("123")){
session.put("username", this.getUsername());
return SUCCESS;
}else
return INPUT;
}
页面跳转的action代码如下:
public class viewAction extends ActionSupport{
@Override
public String execute() throws Exception {
return SUCCESS;
}
拦截器类代码如下:
public String intercept(ActionInvocation invocation) throws Exception {
ActionContext actionContext=invocation.getInvocationContext();
Map session=actionContext.getSession();
String username=(String)session.get("username");
if(username!=null&&username.equals("lzhq")){
return invocation.invoke();
}else{
session.put("tip", "you have not login please login");
return Action.INPUT;
}
}
登陆成功后跳转到如下页面:
<body>
login success you can view the result of the book;<br/>
<s:a href="view.action">loop</s:a>
</body>
跳转成功后跳转到如下页面:
<body>
loop success;
</body>
如果没有登陆成功直接访问带有跳转超链接的页面可以访问到但是如果点击loop超链接不会跳转到跳转成功页面,因为在viewAction执行之前请求被拦截器获得,处理请求后发现没有在session中找到指定的登陆用户名因此不会将控制权交给下一个拦截器或者viewAction中的execute方法。直接跳转到INPUT页面提示用户重新登陆。完成拦截器的权限控制。
相关文章推荐
- struts2 使用注解、反射、拦截器实现基于方法的权限控制
- 在struts2.3.4.1中使用注解、反射、拦截器实现基于方法的权限控制
- 使用拦截器或者AOP实现权限管理(OA系统中实现权限控制)
- 在struts2中使用拦截器(Interceptor)控制登录和权限
- 在struts中使用拦截器(Interceptor)控制登录和权限
- 使用Struts2拦截器进行权限控制
- 在struts2中使用拦截器(Interceptor)控制登录和权限
- 拦截器最后一讲-使用拦截器完成权限控制
- struts2中使用拦截器(Interceptor)控制登录和权限
- 使用SpringMVC创建Web工程并使用SpringSecurity进行权限控制的详细配置方法
- 《struts2权威指南》学习笔记之使用拦截器完成权限控制
- 【Spring MVC】教程——使用拦截器实现权限控制
- 【Spring MVC】教程——使用拦截器实现权限控制
- Struts 2读书笔记-----拦截器之示例:使用拦截器完成权限控制
- struts2如何使用拦截器进行用户权限控制
- 通过注解在方法级别上使用拦截器做登录权限校验
- 在struts2中使用拦截器(Interceptor)控制登录和权限
- Struts2使用拦截器完成权限控制示例
- 拦截器权限控制使用Struts 拦截namespace进行权限控制-java教程
- Struts2中使用拦截器进行权限控制