`
bjtdeyx
  • 浏览: 169804 次
  • 性别: Icon_minigender_1
  • 来自: 成都
社区版块
存档分类
最新评论

Spring AOP验证用户权限

阅读更多
1.新建一个Java普通工程,并需导入spring-aop.jar包; 
2.建UserInfo类: 
package aop.secure; 

public class UserInfo { 
    
    private String userName; 
    private String password; 
    
    public UserInfo(String userName, String password){ 
        this.userName = userName; 
        this.password = password; 
    } 

    public String getPassword() { 
        return password; 
    } 

    public String getUserName() { 
        return userName; 
    } 
} 

3.建安全信息提示类SecureBean: 
package aop.secure; 

public class SecureBean { 

    public void writeSecureMessage(){ 
        System.out.println("Every time I learn something new and it pushes some old stuff out of my brain."); 
    } 
} 

4.建切面类SecurityAdvice实现org.springframework.aop.MethodBeforeAdvice: 
package aop.secure; 

import java.lang.reflect.Method; 

import org.springframework.aop.MethodBeforeAdvice; 

public class SecurityAdvice implements MethodBeforeAdvice { 

    private SecurityManager securityManager; 
    
    public SecurityAdvice(){ 
        this.securityManager = new SecurityManager(); 
    } 

    public void before(Method method, Object[] args, Object target) throws Throwable { 
        UserInfo user = securityManager.getLoggedOnUser(); 
        if(user == null){ 
            System.out.println("No user authenticated."); 
            throw new SecurityException("Method name: " + method.getName()); 
        }else if("chigo".equals(user.getUserName()) && "chigo".equals(user.getPassword())){ 
            System.out.println("OKAY!"); 
        }else{ 
            System.out.println("Logged in user is: " + user.getUserName()); 
            throw new SecurityException("User " + user.getUserName() + " is not allowed access to method " + method.getName()); 
        } 
    } 

} 

5.建登陆与注销管理类SecurityManager: 
package aop.secure; 

public class SecurityManager { 
    
    private static ThreadLocal local = new ThreadLocal(); 
    
    public void login(String userName, String password){ 
        local.set(new UserInfo(userName,password)); 
    } 
    
    public void logout(){ 
        local.set(null); 
    } 
    
    public UserInfo getLoggedOnUser(){ 
        return (UserInfo)local.get(); 
    } 
} 

6.最后建测试类SecurityExample: 
package aop.secure; 

import org.springframework.aop.framework.ProxyFactory; 

public class SecurityExample { 

    private static SecureBean getSecureBean(){ 
        SecureBean sbean = new SecureBean(); 
        SecurityAdvice sadvice = new SecurityAdvice(); 
        ProxyFactory pf = new ProxyFactory(); 
        pf.setTarget(sbean); 
        pf.addAdvice(sadvice); 
        SecureBean factory = (SecureBean)pf.getProxy(); 
        return factory; 
    } 
    
    public static void main(String[] args) { 
        SecurityManager mgr = new SecurityManager(); 
        SecureBean sbean = getSecureBean(); 
        
        mgr.login("chigo","chigo"); 
        sbean.writeSecureMessage(); 
        mgr.logout(); 
        
        try{ 
            mgr.login("kkk",""); 
            sbean.writeSecureMessage(); 
        }catch(SecurityException ex){ 
            System.out.println("Exception caught: " + ex.getMessage()); 
        }finally{ 
            mgr.logout(); 
        } 
        
        try{ 
            sbean.writeSecureMessage(); 
        }catch(SecurityException ex){ 
            System.out.println("Exception caught: " + ex.getMessage()); 
        } 
    } 

} 


附上100%完整的系统项目源码:

JSP图书馆管理系统:http://blog.sina.com.cn/s/blog_4b5bc0110101a97e.html

 

JSP酒店宾馆管理系统:http://blog.sina.com.cn/s/blog_4b5bc0110101a97m.html

 

JSP学生信息管理系统:http://blog.sina.com.cn/s/blog_4b5bc0110101a97r.html

 

 

JSP房屋出售租赁管理系统:http://blog.sina.com.cn/s/blog_4b5bc0110101a98c.html

 

J2EE酒店在线预订系统:http://blog.sina.com.cn/s/blog_4b5bc0110101a97v.html

 

SSH/J2EE人力资源管理系统:http://blog.sina.com.cn/s/blog_4b5bc01101019ztu.html

 

ssh2图书管理系统(图书馆管理系统): http://blog.sina.com.cn/s/blog_4b5bc0110101adf0.html

 

毕业设计-JSP图书馆管理系统:http://blog.sina.com.cn/s/blog_4b5bc0110101a979.html

 

毕业设计-JSP酒店宾馆管理系统:http://blog.sina.com.cn/s/blog_4b5bc0110101a97z.html

 

毕业设计-JSP学生信息管理系统:http://blog.sina.com.cn/s/blog_4b5bc0110101a987.html

 

毕业设计-JSP房屋出售租赁管理系统:http://blog.sina.com.cn/s/blog_4b5bc0110101a98a.html

 

毕业设计-s2sh/j2ee图书管理系统 :http://blog.sina.com.cn/s/blog_4b5bc0110101ain5.html

 

ssh2图书管理系统(图书馆管理系统):http://blog.sina.com.cn/s/blog_4b5bc0110101adf0.html

 

毕业设计-jsp信息发布系统(信息供求网站系统):http://blog.sina.com.cn/s/blog_4b5bc0110101aiou.html

 

struts2+servlet+jsp信息发布系统:http://blog.sina.com.cn/s/blog_4b5bc0110101aiop.html

 

毕业设计-jsp电子商城 网上商城系统:http://blog.sina.com.cn/s/blog_4b5bc0110101aiof.html

 

jsp电子商城 网上商城系统(struts+servlet+jsp):http://blog.sina.com.cn/s/blog_4b5bc0110101aio9.html

 

毕业设计-图书管理系统 jsp图书馆系统Struts2+Spring+Ibatis+extjs(ssi):

http://blog.sina.com.cn/s/blog_4b5bc0110101ainu.html

 

Struts2+Spring+Ibatis+extjs(ssi)图书管理系统 jsp图书馆系统:

http://blog.sina.com.cn/s/blog_4b5bc0110101ainh.html

 

ssh2图书管理系统(图书馆管理系统):http://blog.sina.com.cn/s/blog_4b5bc0110101adf0.html

 

毕业设计-s2sh/j2ee图书管理系统 struts2+spring+hibernate:

http://blog.sina.com.cn/s/blog_4b5bc0110101ain5.html

 

 jsp酒店在线预订系统 酒店客房预定系统:http://blog.sina.com.cn/s/blog_4b5bc0110101atb8.html

 

毕业设计 jsp酒店在线预订系统 酒店客房预定系统:http://blog.sina.com.cn/s/blog_4b5bc0110101atbb.html

 

人力资源管理系统 S2SH/J2EE/JAVA:http://blog.sina.com.cn/s/blog_4b5bc0110101azoz.html

 

毕业设计-人力资源管理系统 S2SH/J2EE/JSP:http://blog.sina.com.cn/s/blog_4b5bc0110101azp0.html

 

ssh网上商城 电子商城struts hibernate  :http://blog.sina.com.cn/s/blog_4b5bc0110101b5gr.html

 

毕业设计 ssh网上商城 电子商城struts hibernate:http://blog.sina.com.cn/s/blog_4b5bc0110101b5h2.html

 

毕业设计 ssh电子相册管理系统:http://blog.sina.com.cn/s/blog_4b5bc0110101bkbl.html

 

实用技术:

J2EE/JSP应用技术70实例(源码)(实用): http://blog.sina.com.cn/s/blog_4b5bc0110101acms.html

 

 

分享到:
评论
1 楼 junjielee 2014-09-03  
配置文件呢???

相关推荐

    Java之Spring AOP 实现用户权限验证

    在本文中,我们将重点探讨如何使用Spring AOP实现用户权限验证。 首先,权限验证是任何应用程序中不可或缺的一部分,尤其是涉及到用户登录和访问控制的场景。通过Spring AOP,我们可以将权限验证的逻辑与业务代码...

    spring aop 实现权限的简单示例

    3. `Test`包:测试类,用于验证权限验证功能是否正常工作。 4. `pom.xml`:Maven配置文件,确保项目依赖正确,包括Spring AOP和其他相关库。 5. `applicationContext.xml`或`@Configuration`类:Spring配置文件,...

    spring aop 学习笔记

    - **权限校验**:在方法执行前进行用户权限验证,确保安全。 5. **源码解析** - Spring AOP的实现涉及到反射、动态代理、代理模式等多个核心Java技术。 - `org.springframework.aop.framework.ProxyFactoryBean`...

    Spring AOP 权限

    在Spring框架中,AOP(面向切面编程)是一种强大的工具,用于实现诸如日志记录、性能监控、事务管理以及,如题目所述,权限控制等跨功能关注点。本篇文章将深入探讨如何利用Spring AOP来实现权限管理,以及相关的...

    SpringAOP.rar_springAOP

    通过切面,可以实现细粒度的权限检查,如验证用户权限是否允许访问特定资源。 3.4 性能监控 在关键方法的切点上应用通知,可以收集性能指标,帮助优化系统性能。 四、实现方式 4.1 注解驱动的AOP 使用`@Aspect`...

    spring aop所需jar包

    - 安全控制:检查用户权限,确保只有授权用户才能访问特定资源。 - 性能监控:在关键方法周围添加计时器,以跟踪性能瓶颈。 - 事务管理:确保数据库操作在正确的情况下提交或回滚,无需在业务代码中显式处理。 6...

    Spring Aop使用实例

    - 测试类:用来验证AOP功能是否正确工作。 通过运行这个项目,你可以看到AOP如何在实际场景中工作,如何通过切面和通知来增强业务逻辑。 总的来说,Spring AOP提供了一种灵活的方式,让我们可以在不侵入核心业务...

    spring aop

    在Web项目中,Spring AOP通常用于处理跨多个控制器和业务层方法的通用任务,如记录请求日志、验证权限、事务管理等。通过配置或注解,你可以确保这些逻辑在每次相关方法执行时自动触发,从而提高代码的可读性和可...

    Spring aop代码

    3. 安全性检查:在方法执行前验证用户权限。 4. 性能监控:计算方法的执行时间,分析系统性能瓶颈。 压缩包中的"aop"文件可能是包含这些示例代码的目录,其中可能有Java源代码文件、配置文件以及测试类。测试代码...

    SpringMVC+springAOP+spring security+Hibernate整合实例代码

    在这个整合实例中,Spring Security可能会配置用户登录、权限控制和URL访问过滤,以确保只有授权的用户能访问特定资源。 4. Hibernate:Hibernate是一个对象关系映射(ORM)框架,它简化了Java应用与数据库之间的...

    Spring基础:Spring AOP简单使用

    Spring AOP,全称Aspect Oriented Programming(面向切面编程),是Spring框架的重要组成部分,它扩展了传统的面向对象编程(OOP),使得开发者能够更好地处理系统中的横切关注点,如日志、事务管理、权限控制等。...

    Spring 2.5 AOP 例子

    - 安全控制:验证用户权限,限制访问。 - 错误处理:捕获并处理运行时异常。 综上所述,Spring 2.5 AOP例子展示了如何利用类扫描和XML配置实现面向切面编程。通过理解这些概念和实践,我们可以更高效地管理和维护...

    aop 权限验证demo

    综上所述,"aop 权限验证demo"提供了一个利用Spring AOP进行权限控制的实例,它展示了如何在不修改业务代码的情况下,通过切面来插入权限检查,提高了代码的整洁性和安全性。通过对不同类型的AOP通知的理解和实践,...

    Spring Aop demo

    在Spring框架中,AOP用于处理系统中的横切关注点,比如日志记录、事务管理、权限验证等,这些功能往往需要在多个类或方法中重复实现。通过AOP,我们可以把这些通用的功能模块化,然后在需要的地方进行“织入”,提高...

    Spring AOP 的实现例子(基于XML配置实现)

    在实际开发中,我们经常使用AOP来处理如日志记录、事务管理、权限校验等横切关注点问题,以提高代码的复用性和可维护性。 XML配置是Spring AOP早期的主要实现方式,虽然现在有更简洁的注解式配置,但理解XML配置...

    Spring aop.docx

    4. **安全控制**:验证用户权限,防止非法访问。 5. **异常处理**:全局异常捕获和处理,提供统一的错误反馈。 **Aspect概念** 在Spring AOP中,Aspect是核心概念,它封装了横切关注点,即那些跨越多个对象的业务...

    Spring-Aop所有jar

    在实际开发中,Spring AOP的应用场景广泛,比如记录日志、事务管理、权限验证等。通过使用Spring AOP,开发者可以专注于业务逻辑,而将这些常见的系统服务抽象出来,提高代码的可维护性和复用性。 总之,Spring AOP...

    基于spring_aop_权限管理系统原型

    总的来说,基于Spring AOP的权限管理系统原型展示了如何利用AOP的`MethodInterceptor`来实现细粒度的权限控制,将权限验证逻辑与业务逻辑分离,使得代码更加模块化和可维护。同时,这种方式也允许我们在不修改业务...

Global site tag (gtag.js) - Google Analytics