spring aop 拦截业务方法,实现权限控制

难点:aop类是普通的java类,session是无法注入的,那么在有状态的系统中如何获取用户相关信息呢,session是必经之路啊,获取session就变的很重要。思索很久没有办法,后来在网上看到了解决办法。

思路是:

     i. SysContext  成员变量 request,session,response
    ii. Filter 目的是给 SysContext 中的成员赋值
    iii.然后在AOP中使用这个SysContext的值

  要用好,需要理解  ThreadLocal和  和Filter 执行顺序

 

 

代码这个小伙写好了, http://blog.csdn.net/unei66/article/details/9448363

时间: 2024-12-14 09:45:57

spring aop 拦截业务方法,实现权限控制的相关文章

spring aop拦截controller方法

背景 开发的web应用程序涉及到校验采用的spring校验框架,在controller的方法中到处都要写校验处理,异常处理,能否减少这部分冗余代码. 问题: 这是表单提交的处理 1 @RequestMapping(value = "/edit", method = RequestMethod.POST) 2 public String edit(@Valid FormBean formBean, BindingResult bindingResult, Model model) { 3

Spring Security(17)——基于方法的权限控制

目录 1.1     intercept-methods定义方法权限控制 1.2     使用pointcut定义方法权限控制 1.3     使用注解定义方法权限控制 1.3.1    JSR-250注解 1.3.2    @Secured注解 1.3.3    支持表达式的注解 1.4     方法权限控制的拦截器 1.4.1    MethodSecurityInterceptor 1.4.2    AspectJMethodSecurityInterceptor 之前介绍的都是基于URL

使用Spring AOP实现业务依赖解耦

Spring IOC用于解决对象依赖之间的解耦,而Spring AOP则用于解决业务依赖之间的解耦: 统一在一个地方定义[通用功能],通过声明的方式定义这些通用的功能以何种[方式][织入]到某些[特定应用]里去,并且[不需要修改]特定应用的代码:-1通用功能:<aop:aspect>如日志.安全或事务,具体的方法动作称为Advice:-2方式:<aop:before|after-returning|around>如方法调用.字段修改和抛出异常,Spring AOP仅支持方法调用(m

Spring AOP根据JdbcTemplate方法名动态设置数据源

说明:现在的场景是,采用数据库(Mysql)复制(binlog)的方式在两台不同服务器部署并配置主从(Master-Slave)关系: 并需要程序上的数据操作方法来访问不同的数据库,比如,update方法访问主数据库服务器,query方法访问从数据库服务器. 即把"增删改"和"查"分开访问两台服务器,当然两台服务器的数据库同步事先已经配置好. 然而程序是早已完成的使用Spring JdbcTemplate的架构,如何在不修改任何源代码的情况下达到<本文标题&g

Shiro的AOP横切模式-注解权限控制

AuthorizationAttributeSourceAdvisor切入点 /* * Licensed to the Apache Software Foundation (ASF) under one * or more contributor license agreements. See the NOTICE file * distributed with this work for additional information * regarding copyright ownersh

使用Spring Security、Spring Data Jpa实现的RBAC权限控制

正好这几天不是那么忙,所以就研究了一下Spring Security的使用,为了以后方便写篇帖子记录一下. 1.什么是Spring Security? 我想关于什么是Spring Security我都不需要在这里赘述,大家可以到网上百度一下,但是问了大家能快速的融入还是贴一下 Spring Security是一个能够为基于Spring的企业应用系统提供声明式的安全访问控制解决方案的安全框架.它提供了一组可以在Spring应用上下文中配置的Bean,充分利用了Spring IoC,DI(控制反转I

【框架】[Spring]AOP拦截-使用切点:AspectJExpressionPointcut-切点语言

转载请注明出处:http://blog.csdn.net/qq_26525215 本文源自[大学之旅_谙忆的博客] 用AspectJExpressionPointcut实现的切点比JdkRegexpMethodPointcut实现切点的好处就是,在设置切点的时候可以用切点语言来更加精确的表示拦截哪个方法! 可以精确到返回参数,参数类型,方法名. 当然,也可以模糊匹配. 这里用纯Java的方式和配置xml的方法都来演示一遍. 需要的包什么的就不解释了,如不动,请参考前面的. 首先,准备好原型对象P

Spring boot后台搭建二为Shiro权限控制添加Redis缓存

在添加权限控制后,添加方法 查看 当用户访问”获取用户信息”.”新增用户”和”删除用户”的时,后台输出打印如下信息 , Druid数据源SQL监控 为了避免频繁访问数据库获取权限信息,在Shiro中加入缓存 缓存有基于Redis和Ehcache的,本文只介绍基于Redis的 1.Shiro集成Redis的引入依赖 <dependency> <groupId>org.crazycake</groupId> <artifactId>shiro-redis<

基于Spring LDAP和Spring Security的用户认证和权限控制Web实现

利用LDAP服务,使用Spring LDAP,Spring Security实现Web项目用户认证和简单的权限控制.实现多系统账号统一. 1.基于EHR的LDAP用户信息 LDAP是轻量目录访问协议,英文全称是Lightweight Directory Access Protocol,一般都简称为LDAP.LDAP目录以树状的层次结构来存储数据.如果你对自顶向下的DNS树或UNIX文件的目录树比较熟悉,也就很容易掌LDAP目录树这个概念了.就象DNS的主机名那样,LDAP目录记录的标识名(Dis