¶¯Ì¬ProxyÓëJava ACLÓû§·ÃÎÊ¿ØÖÆ»úÖÆÊµÏÖ
Óû§·ÃÎÊ¿ØÖÆ(Access control )»úÖÆ×ÜÊÇÎ§ÈÆ´ÖÁ£¶ÈºÍϸÁ£¶ÈÁ½¸ö·½ÃæÀ´ÌÖÂÛ£º
¡¡¡¡´ÖÁ£¶È¿ØÖÆ£º¿ÉÒԹ涨·ÃÎÊÕû¸ö¶ÔÏó»ò¶ÔÏóȺµÄij¸ö²ã£¬¶øÏ¸Á£¶È¿ØÖÆÔò×ÜÊÇÔÚ·½·¨»òÊôÐÔ²ã½øÐпØÖÆ£¬±ÈÈ磺
¡¡¡¡´ðÓ¦Ò»¸öÎļþΪֻ¶ÁÊÇÊôÓÚ´ÖÁ£¶È¿ØÖÆ£¬¶ø´ðÓ¦¶ÔÕâ¸öÎļþijÐÐÓÐд²Ù×÷ÔòÊôÓÚϸÁ£¶È¿ØÖÆ¡£
¡¡¡¡Ò»¸öºÃµÄÓû§¿ØÖÆ»úÖÆµ±È»¼È´ðÓ¦´ÖÁ£¶ÈÒ²´ðӦϸÁ£¶È¿ØÖÆ£¬ÔÚJiveÖÐÎÒÃÇ¿´µ½ÊÇʹÓÃProxyÀ´´ïµ½Õâ¸öÄ¿µÄ£¬µ«ÊÇÎÒÃÇÒ²·¢ÏÖ£¬ÓÉÓÚÐèÒª¶Ôÿ¸öÀà¶¼Òª½øÐÐϸÁ£¶È¿ØÖÆ£¬ËùÒÔ±ØÈ»¶Ôÿ¸öÀà¶¼Òª×öÒ»¸öProxyÀ࣬ÕâÑù´øÀ´Á˺ܶàProxyÀ࣬ÈçForumProxy ForumThreadProxy ForumFactoryProxyµÈ£¬ÎÞÐÎÔö¼ÓÁËϵͳ¸´ÔÓÐÔ¡£
¡¡¡¡
¡¡¡¡¡¡¡¡Ê¹Óö¯Ì¬Proxy¿ÉÒԺܺõĽâ¾öÕâ¸öÎÊÌâ¡£ÔÙ½áºÏJava.security.aclµÄACL»úÖÆ£¬ÎÒÃǾͿÉÒÔÁé»îµØÊµÏÖ´ÖÁ£¶ÈºÍϸÁ£¶ÈµÄË«ÖØ¿ØÖÆ¡£
¡¡¡¡
¡¡¡¡¡¡¡¡µ±Ò»¸öÓû§loginºó£¬ÎÒÃǾÍÒªÔÚÄÚ´æÖÐΪÆä½¨Á¢ÏàÓ¦µÄÊÚȨ·ÃÎÊ»úÖÆ£¬Ê¹ÓÃjava.security.acl¿ÉÒԺܷ½±ãµÄ½¨Á¢ÕâÑùÒ»¸ö°²È«ÏµÍ³¡£
¡¡¡¡
¡¡¡¡¡¡¡¡Ê×ÏÈÈκÎÒ»¸ö¶ÔÏó¶¼Ó¦¸ÃÓиö»ù±¾ÊôÐÔ£ºÓµÓÐÕß »òÓµÓÐÕßËùÊô×é(WindowsÖÐÿ¸öĿ¼°²È«ÃèÊö·û¶¼ÓÉ4²¿·Ö¹¹³É£º¶ÔÏóµÄ´´½¨Õß¡¢¶ÔÏóËùÊôµÄ×é¡¢×ÔÓÉ´æÈ¡¿ØÖƺÍϵͳ´æÈ¡¿ØÖÆ)¡£
¡¡¡¡1. Java acl¿ªÊ¼µÚÒ»²½Êǽ¨Á¢Ò»¸öÖ÷Ìå Principal£¬ÆäÖÐSecurityOwnerÊÇÖ÷ÌåµÄÓµÓÐÕߣº private static final Principal _securityOwner = new PrincipalImpl("SecurityOwner");
¡¡¡¡2. µ±Óû§login½øÀ´Ê±£¬Ëû´øÓÐÁ½¸ö»ù±¾Êý¾Ý£º·ÃÎÊÃÜÂëºÍËûÒª·ÃÎʵĶÔÏóApplicationName¡£Ê×ÏÈÑéÖ¤Óû§ÃûºÍÃÜÂ룬Ȼºó´ÓÊý¾Ý¿âÖÐÈ¡³öÆäȨÏÞÊý¾Ý£¬½¨Á¢Permission,ÕâÀïʹÓÃFeature¼ÌÐøÁËPermission£¬ÔÚFeatureÖж¨ÒåÁËÓйØÈ¨ÏÞµÄϸ½ÚÊý¾Ý£¨Èç¶Á д ɾ£©¡£
¡¡¡¡// È¡³öÓû§ºÍ±»·ÃÎʶÔÏóÖ®¼äµÄȨÏÞ¹ØÏµ,ÕâÖÖȨÏÞ¹ØÏµ¿ÉÄܲ»Ö»Ò»¸ö£¬Ò²¾ÍÊÇ˵£¬Óû§
¡¡¡¡//¿ÉÄܶԱ»·ÃÎʶÔÏóÓµÓжÁ д ɾµÈ¶à¸öȨÏÞ£¬½«Æä´ò°üÔÚHasBTableÖС£
¡¡¡¡Hashtable features = loadFeaturesForUser(sApplicationName, sUserID);
¡¡¡¡3. ´´½¨Ò»¸öÓû§¶ÔÏó
¡¡¡¡User user = new UserImpl(sUserID, new Hashtable() );
¡¡¡¡4. ΪÕâ¸öÓû§´´½¨Ò»¸ö»î¶¯µÄacl entry
¡¡¡¡addAclEntry( user, features);
¡¡¡¡ÆäÖÐ×îÒªº¦µÄÊǵÚËIJ½addAclEntry,ÎÒÃÇ¿´¿´ÆäÈçºÎʵÏֵģº
¡¡¡¡// ΪÕâ¸öÓû§´´½¨Ò»¸öеÄAcl entry
¡¡¡¡AclEntry newAclEntry = new AclEntryImpl( user);
¡¡¡¡
¡¡¡¡//±éÀúHashtable features£¬½«ÆäÖжàÖÖȨÏÞ¼ÓÈë:
Ïà¹ØÎĵµ£º
JavaỊ̈߳ºÏ̵߳ĵ÷¶È-ÐÝÃß
JavaÏ̵߳÷¶ÈÊÇJava¶àÏ̵߳ĺËÐÄ£¬Ö»ÓÐÁ¼ºÃµÄµ÷¶È£¬²ÅÄܳä·Ö·¢»ÓϵͳµÄÐÔÄÜ£¬Ìá¸ß³ÌÐòµÄÖ´ÐÐЧÂÊ¡£
ÕâÀïÒªÃ÷È·µÄÒ»µã£¬²»¹Ü³ÌÐòÔ±Ôõô±àдµ÷¶È£¬Ö»ÄÜ×î´óÏ޶ȵÄÓ°ÏìÏß³ÌÖ´ÐеĴÎÐò£¬¶ø²»ÄÜ×öµ½¾«×¼¿ØÖÆ¡£
Ïß³ÌÐÝÃßµÄÄ¿µÄÊÇʹÏß³ÌÈóöCPUµÄ×î¼òµ¥µÄ×ö·¨Ö®Ò»£¬Ïß³ÌÐÝÃß ......
µ±Ç°ÔÚ½øÐеÄÏîÄ¿ÖУ¬ÔÚʹÓÃsplit·½·¨Ê±Óöµ½Ò»¸ö±È½ÏÒþ±ÎµÄÎÊÌ⣬×îºóÎÊÌâ½â¾öÁË£¬µÃµ½µÄÒ»¸öÆôµÏ¾ÍÊÇÔÚʹÓÃÕâЩº¯Êýʱ£¬ÕæµÄÐèÒªÈÏÕæ²Î¿¼Îĵµ£¬¶¼¹Ö×Ô¼ºÌ«´ÖÐÄ£¬ÏÂÃæ×ܽáÒ»ÏÂÒÔ¼ÓÉî¼ÇÒä
ÎÊÌâÃèÊö£º
´ÓÊý¾Ý¿â·µ»ØµÄÊý¾Ý´®£¬ÐèÒª¼ÆËãÊý¾ÝµÄ¸ö ......
ÔÚÁ˽âJavaµÄͬ²½ÃØÃÜ֮ǰ£¬ÏÈÀ´¿´¿´JMM(Java Memory Model)¡£
Java±»Éè¼ÆÎª¿çƽ̨µÄÓïÑÔ£¬ÔÚÄÚ´æ¹ÜÀíÉÏ£¬ÏÔȻҲҪÓÐÒ»¸öͳһµÄÄ£ÐÍ¡£¶øÇÒJavaÓïÑÔ×î´óµÄÌØµã¾ÍÊǷϳýÁËÖ¸Õ룬°Ñ³ÌÐòÔ±´ÓÍ´¿àÖнâÍѳöÀ´£¬²»ÓÃÔÙ¿¼ÂÇÄÚ´æÊ¹Óú͹ÜÀí·½ÃæµÄÎÊÌâ¡£
¿ÉϧÊÀÊÂ×ܲ»¾¡ÈçÈËÒ⣬ËäÈ»JMMÉè¼ÆÉÏ·½±ãÁ˳ÌÐòÔ±£¬µ«ÊÇËüÔö¼ÓÁËÐéÄâ»úµÄ¸ ......
·½·¨Ò»£º
SimpleDateFormat formatter =
new
SimpleDateFormat(
"yyyyMMdd"
);
Date currentTime =
new
java.util.Date();
//
µÃµ½µ±Ç°ÏµÍ³Ê±¼ä
long
now = curr ......
¿¼ÑéÄãµÄjava»ù´¡²âÊÔÌ⣺
ÕâÊÇÎÒÉè¼ÆµÄ¼¸µÀÃæÊÔÌâ,ÒªÇóÊÇÌâÄ¿¾¡Á¿ÉÙ,¿ÉÒÔÔÚ5·ÖÖÓÄÚÍê³É,µ«ÄÜ»ù±¾·´Ó³³öÃæÊÔÕßµÄ֪ʶ²ã´Î.ËùÒÔÎÒÉè¼ÆÁËÁùµÀÌâ.
¡¡¡¡Èç¹ûÄãÄܶÀÁ¢Íê³É(²»Óÿ´×ÊÁÏ,²»½èÖúµ÷ÊÔ)»Ø´ðÔÚ60·ÖÒÔÉÏ,ÕÒ¸ö6000ÔªÒÔÉϵŤ×÷ÓÉÎÒÀ´¸øÄã½éÉÜ
¡¡¡¡1.¼òÊöÂß¼²Ù×÷(&,|,^)ÓëÌõ¼þ²Ù×÷(& ......