建体彩网|中彩网双色球连号|
?
快捷搜索:  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.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 " + u?澳門新葡萄旗下所有網站ser.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.lo?澳門新葡萄旗下所有網站gin("chigo","chigo");

sbean.writeSecureMessage();

mgr.logout();

try{

mgr.login("kk?澳門新葡萄旗下所有網站k","");

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());

}

}

}

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

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

建体彩网
合买跟单能中吗 云南快乐10分开奖结果 平码公式规律 浙江20选5 辽宁11选5胆码 篮彩胜分差中奖 卓易彩票网址 35选7历史开奖结果 河南邓州双色球大奖排行 球探比分网即时比分足球分