原有的根据地址访问控制权限.有些麻烦.所以写了个struts2 的 注解权限处理..
对于页面根据权限是否显示某个按钮.可以通过struts2 访问静态方法去实现.这里就不写了.
代码如下:
@Security:
@Target(ElementType.METHOD)
@Retention(RetentionPolicy.RUNTIME)
public @interface Security {
String name();
String value();
}
利用struts2 的拦截器作为注解处理器:
先写个拦截器:
public class AuthorityInterceptor extends AbstractInterceptor{
private static final long serialVersionUID = 6137804398980420490L;
@Override
public String intercept(ActionInvocation invocation) throws Exception {
String actionMethod = invocation.getProxy().getMethod();
Method method = invocation.getAction().getClass().getMethod(actionMethod);
Security security = method.isAnnotationPresent(Security.class) == false ? null
: method.getAnnotation(Security.class);
boolean sec = true;
if(security != null){
String name = security.name();
String value = security.value();
System.out.println("security-name==:"+name);
System.out.println("security-value==:"+value);
//这里根据name 和value 去查询数据库或者session,也可以是缓存里的用户权限信息..;
sec = false;
}
return sec ? invocation.invoke() : "securityError";//如果没有权限,跳至权限提示页面,这个可以是全局跳转
}
}
再配置一个拦截器栈:
<package name="seamsju" namespace="/user" extends="struts-default">
<interceptors>
<interceptor name="authorityInterceptor" class="com.yuhongtech.filter.AuthorityInterceptor"></interceptor>
<interceptor-stack name="myInterceptorStack">
<interceptor-ref name="authorityInterceptor"></interceptor-ref>
<interceptor-ref name="defaultStack"></interceptor-ref>
</interceptor-stack>
</interceptors>
<action name="*html" class="com.yuhongtech.action.user.OrderAction" method="{1}">
<result>/user/orderlist.jsp</result>
<result name="input">/user2/login.jsp</result>
<interceptor-ref name="myInterceptorStack"></interceptor-ref>
</action>
</package>
好啦,东西处理完啦..可以用了:
/**
* 订单查询
* @return
*/
@Security(name="Order",value="show")
public String listorder(){}
只要在对应的action 的method 上加上相应的@Security 注解就行了..
分享到:
相关推荐
(1)该项目是基于spring3+struts2+hibernate3+spring security3的权限管理项目 (2)后台我已经实现了权限管理,包括用户,角色和资源的分配。前台实现了spring security3的管理 (3)网上案例普遍是后台单一登陆。...
2. **角色与权限关联**:在数据库中,通常会有角色表(Role)和权限表(Permission),角色与权限之间通过多对多的关系进行关联。例如,管理员角色可能拥有所有权限,而普通用户只有一部分权限。 3. **拦截器实现...
Struts2处理请求和展示,Hibernate管理数据持久化,Spring提供整体架构支持并负责整合其他组件,struts-menu实现动态菜单,而valuelist则优化了数据检索和展示。这样的设计不仅提高了开发效率,也保证了系统的稳定性...
在控制器层,使用Struts2的动作类和Spring Security的注解来判断用户是否具有执行某操作的权限。 总结起来,"Struts2+Hibernate3.5+Spring3.0(Annotation)"的组合为Java Web开发提供了一个强大的基础架构,尤其在...
- **安全性与权限控制**:理解Struts2的安全性机制,学习如何使用Shiro或Spring Security等框架进行权限控制和身份验证。 通过深入学习这些关键知识点,开发者不仅能够掌握Struts2的基本操作,还能够应对复杂的企业...
7. **拦截器(Interceptor)**:Struts2 的拦截器可以实现登录检查、权限控制等功能。 8. **过滤器(Filter)**:可能包括字符编码过滤器、Spring Security 过滤器等,用于处理请求和响应。 在实际开发中,还需要...
在Struts2中,这些处理逻辑被封装在独立的类中,当请求到达Action之前,拦截器会按照预定义的顺序执行,执行完后再继续进行Action处理,最后返回结果。拦截器可以用于日志记录、权限验证、性能监控等多种场景。 **...
Struts1、Hibernate和Spring是Java开发中常用的三个框架,它们组成的SSH(Struts+Spring+Hibernate)架构在企业级应用开发中非常流行,尤其在权限管理系统的构建中发挥着重要作用。下面将详细阐述这三个框架的功能、...
在这个在线音乐网站中,Spring还可能用于整合其他服务,如安全控制(Spring Security)或任务调度(Spring Batch),以实现用户认证、权限管理以及后台任务的自动化执行。 【SQL Server 2005】是数据库管理系统,...
3. **配置与注解**:Struts2支持XML配置和注解方式,允许开发者灵活地定义Action、结果类型、参数绑定等。这使得系统配置更加简洁明了,减少了配置文件的复杂度。 4. **OGNL(Object-Graph Navigation Language)**...
同时,Struts2的动作拦截器也可以配合Spring Security进行权限检查。 **整合过程** 整合这三个框架的过程一般包括以下步骤: 1. 配置Struts2,引入Spring插件,并配置Action类为Spring管理的bean。 2. 配置Spring...
2. **Struts Action权限控制**: Spring Security可以通过注解或配置文件对Struts Action进行权限控制,只有拥有相应权限的用户才能访问特定的Action。 3. **登录和注销**: Spring Security提供了一系列内置的登录和...
此外,Struts 2支持注解配置,可以直接在Action类或方法上使用注解,简化配置工作。 Struts 2提供了丰富的拦截器,如Parameters拦截器用于处理HTTP请求参数,Validation拦截器进行表单验证,Exception拦截器处理...
Struts2通过配置文件(如`struts.xml`)来定义Action和Result的映射,以及拦截器链,拦截器可以进行权限检查、参数校验等预处理工作。 Hibernate作为ORM(Object-Relational Mapping)框架,提供了对象与数据库表...
Struts2提供了丰富的拦截器机制,可以方便地实现日志记录、权限控制、异常处理等功能。此外,它还支持OGNL(Object-Graph Navigation Language)表达式语言,使得在视图和模型之间的数据传递更为便捷。 **Hibernate...
在论坛系统中,Spring管理所有Bean的生命周期,包括Struts2的Action、Service、DAO等,通过配置文件或注解实现依赖关系的自动装配。 4. **MVC模式**:Model-View-Controller模式是Web开发中的经典架构模式。在这个...
在DEMO中,SpringSecurity与SSH的集成展示了如何在MVC架构下实现安全控制,例如在Struts2 Action上添加安全注解,限制只有特定角色的用户才能访问。 8. **松散耦合的设计**: - 优秀的DEMO应该具有良好的可扩展性...
Struts2、Hibernate和Spring是Java Web开发中的三大框架,它们各自负责应用程序的不同层面:Struts2处理MVC(Model-View-Controller)架构中的控制层,Hibernate专注于数据持久化,而Spring则提供了全面的依赖注入和...
7. **注解配置**:在Struts2中,除了XML配置外,还可以使用注解来简化配置,如在Action类或方法上添加@SkipValidation或@authorize注解来实现权限控制。 8. **安全性扩展**:除了基本的权限管理,还可以结合其他...
3. **Interceptor**: 拦截器是Struts2中的重要特性,允许在Action执行前后插入自定义逻辑,如日志、权限检查等。 4. **配置管理**: Struts2支持XML和注解两种配置方式,用于定义Action、结果类型和拦截器栈。 **...