?
快捷搜索:  as  test  1111  test aNd 8=8  test++aNd+8=8  as++aNd+8=8  as aNd 8=8

澳門黃金城官網網:運用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.getLoggedO澳門黃金城官網網nUser();

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.getNa澳門黃金城官網網me());

}

}

}

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: " + e澳門黃金城官網網x.getMessage());

}

}

}

免責聲明:以上內容源自網絡,版權歸原作者所有,如有侵犯您的原創版權請告知,我們將盡快刪除相關內容。

您可能還會對下面的文章感興趣:

快三平台开户