亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? securitymgr.java

?? 陜西電信sp客戶端
?? JAVA
字號:
// ----------------------------------------------------------------------------
// $Source: /cvs/vas2006/webpro2/webpro_java/src/com/onewaveinc/portalman/webpro/security/SecurityMgr.java,v $
// ----------------------------------------------------------------------------
// Copyright (c) 2002 by Onewave Inc.
// ----------------------------------------------------------------------------
// $Id: SecurityMgr.java,v 1.1.1.1 2006/08/01 05:49:34 zhengx Exp $
// ----------------------------------------------------------------------------
// $Log: SecurityMgr.java,v $
// Revision 1.1.1.1  2006/08/01 05:49:34  zhengx
// no message
//
// Revision 1.1  2006/06/02 03:33:17  wuyan
// *** empty log message ***
//
// Revision 1.2  2005/12/09 08:37:51  lufang
// no message
//
// Revision 1.1  2005/12/08 10:37:42  like
// no message
//
// Revision 1.1  2003/07/28 06:30:32  zengc
// no message
//
// ----------------------------------------------------------------------------

package com.onewaveinc.portalman.webpro.security;

/**
 * <p>Title: PortalMAN SDK API Documentation</p>
 * <p>Description: OneWave Technologies., Inc. PortalMAN Value-add Management Platform 3rd Software Development Kit</p>
 * <p>Copyright: Copyright (c) 2002 </p>
 * <p>Company: OneWave Technologies., Inc.</p>
 * @author 3rd AAA & ICP Integration Developement Team
 * @version 1.5
 */

import java.util.Properties;
import java.lang.reflect.*;
import java.security.*;

import cryptix.provider.Cryptix;

import com.onewaveinc.portalman.aaa.v20.soapentity.*;
//import com.onewaveinc.portalman.aaa.*;
//import com.onewaveinc.portalman.init.ServiceIF;

public class SecurityMgr {


    public SecurityMgr() {
    }

    /**
     * description            動態加載security provider
     */
    static {
        Security.addProvider(new cryptix.provider.Cryptix());
    }

    public void init(Properties properties) {
        //init();
    }

    public void start() {
    }

    public void stop() {
    }

    /**
     * description            解析soap傳過來的經過加密的對象
     * @param obj             對象的參數被加密
     * @param icpode          用于從mapping關系中找到icpkey的
     * @return
     */
    //public static Object getDecryptedObject(Object obj,String icpCode)throws Exception{

    //String icpKey = ICPCodeMgr.getICPKeyfromEncrypt(icpCode);
//	return getDecyptedObjUseICPKey(obj,icpKey,null);
    // }

    /**
     * description            解析soap傳過來的經過加密的對象,使用icpkey作為密鑰
     * 如果oldEncryptICPCode為null,是AAA端的解密需求,
     * 調用aaa端的判斷ICPCode邏輯
     * 如果不為空,是webPro的請求,調用webPro判斷ICPCode的邏輯
     *
     * @param obj               對象的參數被加密
     * @param icpKey            用于解密的webPro方保存的密鑰
     * @param oldEncryptICPCode
     * @return
     * @throws Exception
     */

    public static Object getDecyptedObjUseICPKey(Object obj, String icpKey, String oldEncryptICPCode) throws Exception {

        Method[] methods;
        Field[] fields;
        methods = getMethods(obj.getClass());
        fields = getFields(obj.getClass());

        for (int i = 0; i < fields.length; i++) {
            Method getMethod = getMethod("get", fields[i], methods);
            Method setMethod = getMethod("set", fields[i], methods);
            String getResult = null;
            if (getMethod != null) {//防止有參數沒有get 或者 set方法引起出錯
                getResult = (String) getMethod.invoke(obj, null);
            }
            if (getResult != null) {
                String setResult = null;

                if ("versionNO".equalsIgnoreCase(fields[i].getName())) {
                    setResult = getResult;

                } else if ("icpCode".equalsIgnoreCase(fields[i].getName())) {

                    //AAA端驗證ICPCode正確性的邏輯
                    ICPCodeMgr.validateICPCode(getResult, icpKey);
                    setResult = ICPCodeMgr.getOriginIcpCode(getResult);

                } else {

                    //需要解密的普通字段
                    try {
                        setResult = DesMgr.decrypt(getResult, icpKey);
                    }
                    catch (Exception ex) {
                        throw new Exception("Decrypt Error ! Decrypt Value = " + getResult);
                    }
                }


                Object[] args = new Object[]{setResult};
                if (setMethod != null) {
                    setMethod.invoke(obj, args);
                }
            }

        }


        return obj;
    }

    /**
     * description            加密給soap傳輸使用的對象,加密過去的ICPCode用webPro;主要由AAA驗證邏輯調用
     *                        傳過來的icpCode的前32位作為加密的隨機數
     * @param obj             對象的icpcode不加密,通過icpcode
     * @param icpCode         用于從mapping關系中找到icpkey
     * @return
     */
    //public static Object getEncyptedObject(Object obj,String icpCode) {

//	try {
    //System.out.println("*****  debug  getEncyptedObject(Object obj,String icpCode)");
//	  String icpKey = ICPCodeMgr.getICPKeyfromEncrypt(icpCode);
    //System.out.println("*****  debug ****   icpCode is "+icpCode);
    //System.out.println("*****  debug ****   icpKey is "+icpKey);
//	  return getEncyptedObjUseICPKey(obj,ICPCodeMgr.getEncryptedICPCode(icpCode),icpKey);
//	}
//	catch (Exception ex) {
//	  ex.printStackTrace();
//	  return null;
//	}
//  }

    /**
     * description            加密給soap傳輸使用的對象,使用webPro保存的密鑰;主要由webPro端調用
     *
     * @param obj    對象的icpcode不加密,通過icpcode
     * @param icpKey 用于解密的webPro方保存的密鑰
     * @return Object
     */
    public static Object getEncyptedObjUseICPKey(Object obj, String randomNo, String icpKey) throws Exception {
        Method[] methods;
        Field[] fields;
        //get All methods and field from object
        methods = getMethods(obj.getClass());
        fields = getFields(obj.getClass());

        for (int i = 0; i < fields.length; i++) {
            Method getMethod = getMethod("get", fields[i], methods);
            Method setMethod = getMethod("set", fields[i], methods);
            String getResult = null;
            if (getMethod != null) {//防止有參數沒有get 或者 set方法引起出錯
                getResult = (String) getMethod.invoke(obj, null);
            }
            if (getResult != null) {//非空字段
                String setResult = null;
                if ("versionNO".equalsIgnoreCase(fields[i].getName())) {
                    setResult = getResult;
                } else if ("icpCode".equalsIgnoreCase(fields[i].getName())) {
                    //icpCode字段,單向加密
                    setResult = ICPCodeMgr.generateEncryptedICPCode(getResult, randomNo, icpKey);

                } else {
                    //需要加密的普通字段
                    try {
                        setResult = DesMgr.encrypt(getResult, icpKey);
                    } catch (Exception ex) {
                        throw new Exception("Encrypt Error ! Encrypt Value = " + getResult);
                    }

                }


                Object[] args = new String[]{setResult};
                if (setMethod != null) {
                    setMethod.invoke(obj, args);
                }
            }
        }
        return obj;
    }

    /**
     * 根據送過來的string加密生成一個token
     * @param str
     * @return
     * @throws Exception
     */
//  public static String getEncyptedToken(String str)throws Exception{

//	return TokenMgr.getEncryptedToken(str);
//  }

    /**
     * description           根據field選出合適的set get Method
     *
     * @param methodPerfix "get" or "set"
     * @param aField
     * @param methods
     * @return Method
     */
    private static Method getMethod(String methodPerfix, Field aField, Method[] methods) {

        Method objGetMethod = null;
        String fieldName = Character.toUpperCase(aField.getName().charAt(0))
                + aField.getName().substring(1);
        String getMethodName = methodPerfix + fieldName;
        for (int j = 0; j < methods.length; j++) {
            if (methods[j].getName().equals(getMethodName)) return methods[j];
        }
        return objGetMethod;
    }

    /**
     * 第歸取得有繼承關系的class的所有method
     *
     * @param myClass 有可能有父類的class
     * @return 所有可用的method
     */
    public static Method[] getMethods(Class myClass) {

        Method[] methods = myClass.getDeclaredMethods();
        if (!myClass.getSuperclass().equals(Object.class)) {
            return addMethod(methods, getMethods(myClass.getSuperclass()));
        } else {
            return methods;
        }
    }

    /**
     * 第歸取得有繼承關系的class的所有field
     *
     * @param myClass 有可能有父類的class
     * @return 所有可用的field
     */
    public static Field[] getFields(Class myClass) {

        Field[] fields = myClass.getDeclaredFields();
        if (!myClass.getSuperclass().equals(Object.class)) {
            return addField(fields, getFields(myClass.getSuperclass()));
        } else {
            return fields;
        }
    }

    /**
     * 數組合并操作,返回合并后的新數組
     *
     * @param b1
     * @param b2
     * @return Method
     */
    private static Method[] addMethod(Method[] b1, Method[] b2) {

        Method[] b = new Method[b1.length + b2.length];
        System.arraycopy(b1, 0, b, 0, b1.length);
        System.arraycopy(b2, 0, b, b1.length, b2.length);
        return b;
    }

    private static Field[] addField(Field[] b1, Field[] b2) {

        Field[] b = new Field[b1.length + b2.length];
        System.arraycopy(b1, 0, b, 0, b1.length);
        System.arraycopy(b2, 0, b, b1.length, b2.length);
        return b;
    }
}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
91视频.com| 欧美日韩情趣电影| 久久精品噜噜噜成人88aⅴ| 日韩一区日韩二区| 精品国产欧美一区二区| 欧美日韩1区2区| 91浏览器在线视频| 成人影视亚洲图片在线| 精品亚洲免费视频| 麻豆免费精品视频| 午夜欧美视频在线观看| 亚洲黄色免费电影| 亚洲精品久久嫩草网站秘色| 欧美精彩视频一区二区三区| 精品区一区二区| 91精品一区二区三区在线观看| 在线欧美小视频| 在线视频你懂得一区二区三区| youjizz久久| 成人免费av在线| 不卡的电视剧免费网站有什么| 国产丶欧美丶日本不卡视频| 国产在线国偷精品产拍免费yy| 精品一区免费av| 麻豆freexxxx性91精品| 美女视频一区二区| 久久黄色级2电影| 久草中文综合在线| 国产在线国偷精品免费看| 亚洲一区av在线| 夜夜亚洲天天久久| 亚洲在线一区二区三区| 亚洲一区在线播放| 欧美激情自拍偷拍| 中文字幕在线一区免费| 亚洲色图自拍偷拍美腿丝袜制服诱惑麻豆 | 国产日韩欧美激情| 日韩欧美国产综合一区| 精品国产乱码久久久久久免费| 欧美日韩国产高清一区二区三区 | 综合精品久久久| 一区二区高清免费观看影视大全| 亚洲九九爱视频| 亚洲成av人片在线观看无码| 视频一区中文字幕| 免费在线看成人av| 国产精品1024| 色综合久久久久网| 91精品午夜视频| 久久久噜噜噜久久中文字幕色伊伊| 国产亚洲欧美在线| 亚洲激情av在线| 日本一不卡视频| 高清免费成人av| 色婷婷精品大在线视频| 日韩午夜av一区| 中文字幕av在线一区二区三区| 亚洲精品日韩一| 久久99精品久久久久| 99re热视频精品| 欧洲视频一区二区| 久久久精品黄色| 亚洲午夜视频在线观看| 国内精品国产三级国产a久久| av色综合久久天堂av综合| 欧美二区乱c少妇| 国产免费成人在线视频| 亚洲国产综合人成综合网站| 久久精品av麻豆的观看方式| 91欧美一区二区| 精品国精品自拍自在线| 亚洲女人****多毛耸耸8| 奇米精品一区二区三区在线观看| 风间由美一区二区三区在线观看| 欧美日韩和欧美的一区二区| 久久久久久一二三区| 午夜久久久影院| 成人av电影在线观看| 日韩一区二区三区高清免费看看 | 亚洲第一福利一区| 成人在线综合网| 欧美日韩免费电影| 欧美精品一区二区三区蜜臀| 国产精品久久久久久福利一牛影视 | 日韩三级电影网址| 伊人一区二区三区| 国产成人精品免费| 91精品国产色综合久久不卡电影| 国产精品久久久久影院| 久久国内精品视频| 欧美中文字幕一区| 国产精品久久久久久久岛一牛影视 | 日韩制服丝袜av| 色婷婷久久99综合精品jk白丝| 国产午夜精品福利| 91毛片在线观看| 91国偷自产一区二区三区成为亚洲经典| 99精品国产91久久久久久| 欧美精品tushy高清| 中文字幕一区二区三区不卡在线| 美女网站在线免费欧美精品| 欧美日韩一区二区三区四区| 136国产福利精品导航| 国产精品一区二区在线看| 56国语精品自产拍在线观看| 亚洲综合999| 99久精品国产| 国产精品欧美一区二区三区| 国产永久精品大片wwwapp| 欧美一级夜夜爽| 亚洲成人激情自拍| 欧美自拍偷拍午夜视频| 中文字幕一区二区三中文字幕| 国产东北露脸精品视频| 久久精品在线免费观看| 国产一二三精品| 欧美成人a∨高清免费观看| 日本v片在线高清不卡在线观看| 欧美亚洲愉拍一区二区| 亚洲最大色网站| 色婷婷亚洲综合| 亚洲老司机在线| 色婷婷av一区二区三区软件| 亚洲精品久久嫩草网站秘色| 欧美亚洲综合久久| 亚洲午夜久久久久| 欧美私人免费视频| 亚洲国产精品自拍| 欧美日韩精品久久久| 亚洲bt欧美bt精品| 宅男在线国产精品| 美女一区二区三区在线观看| 精品国产一区二区亚洲人成毛片| 免费看日韩a级影片| 日韩精品一区二区三区在线 | 日韩免费观看高清完整版在线观看| 调教+趴+乳夹+国产+精品| 欧美日本在线播放| 美女免费视频一区| 国产欧美一区二区在线| 成人午夜视频福利| 日韩毛片一二三区| 欧美日韩一区二区在线观看视频| 成人免费一区二区三区在线观看| 国产成人精品一区二区三区网站观看| 国产欧美日韩另类一区| caoporm超碰国产精品| 亚洲乱码精品一二三四区日韩在线 | 久色婷婷小香蕉久久| 久久久久久久久久久久久夜| 成人综合在线网站| 国产精品私人自拍| 成人精品视频一区二区三区尤物| 亚洲欧美在线高清| 99久久er热在这里只有精品15| 一区二区三区四区视频精品免费| 亚洲视频资源在线| 国产91清纯白嫩初高中在线观看 | 国产一区在线精品| 国产日韩综合av| 91国偷自产一区二区三区成为亚洲经典| 亚洲午夜一区二区三区| 精品国产一二三| 97se亚洲国产综合自在线观| 天堂va蜜桃一区二区三区漫画版| 精品91自产拍在线观看一区| 国产酒店精品激情| 亚洲精品伦理在线| 欧美刺激脚交jootjob| av成人老司机| 免费观看一级欧美片| 欧美国产一区视频在线观看| 欧美日韩成人综合在线一区二区| 国产呦萝稀缺另类资源| 亚洲一线二线三线视频| 欧美精品一区男女天堂| 欧美无砖专区一中文字| 国产v日产∨综合v精品视频| 亚洲高清免费观看| 日本一区免费视频| 欧美日韩高清一区二区| 成人中文字幕在线| 日韩成人精品视频| 久久国产精品免费| 亚洲日穴在线视频| 中文字幕高清不卡| 国产免费成人在线视频| 久久亚洲精华国产精华液| 欧美二区三区91| 欧美三级蜜桃2在线观看| 91最新地址在线播放| 成人丝袜视频网| 福利电影一区二区| 国产精品123| 高清不卡一区二区| 国产91在线|亚洲| 国产成人免费视| 福利一区二区在线观看| 成人性视频免费网站| 成人免费va视频|