运用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());
}
}
}

时间: 2024-10-03 22:22:33

运用Spring AOP验证用户权限实例的相关文章

MySQL验证用户权限的方法_Mysql

知识归纳 因为MySQL是使用User和Host两个字段来确定用户身份的,这样就带来一个问题,就是一个客户端到底属于哪个host.如果一个客户端同时匹配几个Host,对用户的确定将按照下面的优先级来排 基本观点越精确的匹配越优先 Host列上,越是确定的Host越优先,[localhost, 192.168.1.1, wiki.yfang.cn] 优先于[192.168.%, %.yfang.cn],优先于[192.%, %.cn],优先于[%] User列上,明确的username优先于空us

Windows下MongoDB配置用户权限实例_MongoDB

MongoDB默认设置为无权限访问限制注:研究成果基于Windows平台 在部署mongodb成功后,进入控制台: \ 输入命令:mongod use admin,你会发现该DB下包含了一个system.user表,呵呵,没错,这个表就等同于MsSql中的用户表,用来存放超级管理员的,那我们就往它里面添加一个超级管理员试试看里我添加一个超级管理员用户,username为admin,password也为admin,即然我们添加了超级管理员,那咱们就来测试下,看看咱们再次连接MongoDB需不需要提

基于Annotation拦截的Spring AOP权限验证方法

在 Web 开发过程中,一个非常理想的开发过程是,开发人员在开发中并不需要关心权限问题,不需要在 Java 方法中写 很多逻辑判断去判断用户是否具有合适的角色和权限,这样开发会花费非常多的人力成本,因为所有的开发人员都需要了解 关于权限的详细内容,也非常不容易进行后期维护.我们希望有专门的很少数量的开发人员了解权限内容,并且可以随时方 便的修改和配置.于是,我们使用 Annotation,在 Java 方法之前使用 Annotation 可以非常方便的添加,修改和删除对 于权限的管理功能. 本文

App登陆java后台处理和用户权限验证_java

最近做一个app项目,后台我独自一人开发,开发任务顺序安排上没有把登陆,注册和权限验证这些基本功能放在第一阶段开发,现在是部分业务相关功能已经完成,但是用户入口竟然还没有,只能说明当初需求分析的时候还是太过于着急了,把最基本的用户入口给放到后面了. 现在就需要在现有代码的基础上添加用户登录和权限验证功能. 关于登录和权限验证方面,参照以前做iOS的开发经验,App端提供用户名和密码换取token,每次通过换取的token请求需要登陆权限的操作. 现在反过来,我就需要考虑下面几个问题: 1.在现有

Spring Aop实例之AspectJ注解配置

       上篇博文<Spring Aop实例之xml配置>中,讲解了xml配置方式,今天来说说AspectJ注解方式去配置spring aop.        依旧采用的jdk代理,接口和实现类代码请参考上篇博文.主要是将Aspect类分享一下: package com.tgb.aop; import org.aspectj.lang.JoinPoint; import org.aspectj.lang.ProceedingJoinPoint; import org.aspectj.lan

关于IBuySpy里面用户权限验证方面的东西

用户权限 ASP.NET在页面的Context.User里面放了一个实现IPrincipal的对象,用来实现对已验证用户的管理.ASP.NET系统中,通常采用的方式就是扩展这个Context.User,让它里面保存定制的信息.            1.扩展方式      扩展方式基本上有两种:直接利用GenericPrincipal和自己写一个实现IPrincipal的类.IBuySpy用的前者,优点就是N简单.            Context.User = new GenericPri

aop-描述一下怎么利用spring AOP实现权限控制

问题描述 描述一下怎么利用spring AOP实现权限控制 只用描述就可以.不用代码,谢谢啦 解决方案 利用spring aop实现数据源的切换 解决方案二: 简单来说,就是你统一写好权限判断的代码,然后spring会自动在调用你的业务方法之前,执行这段代码,并且根据你的返回决定是否真的执行业务.这样你的权限代码只用在一个地方写一次就可以了. 解决方案三: 权限控制 有两种方式,第一种:自己写个拦截器实现权限控制:第二种使用spring AOP实现权限控制,这个最好采用自定义注解的方式实现,你自

用spring AOP做日志管理 执行controller的时候 打印当前用户信息

问题描述 用spring AOP做日志管理 执行controller的时候 打印当前用户信息 主要知道是哪些用户了执行了哪些controller,是否执行成功了.现在有个问题就是,获取不到当前用户信息. 解决方案 用户登录时用session绑定 其他请求时在通过session获取 这样就行吧

Spring Aop实例之xml配置

       上篇博文<3幅图让你了解Spring AOP>中介绍了aop通知类型,AOP的配置方式有2种方式:xml配置和AspectJ注解方式.今天我们就来实践一下xml配置方式.       我采用的jdk代理,所以首先将接口和实现类代码附上 package com.tgb.aop; public interface UserManager { public String findUserById(int userId); } package com.tgb.aop; public cl