¶¯Ì¬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Ị̈߳ºÏ̵߳ĵ÷¶È-ºÏ²¢
Ï̵߳ĺϲ¢µÄº¬Òå¾ÍÊǽ«¼¸¸ö²¢ÐÐÏ̵߳ÄÏ̺߳ϲ¢ÎªÒ»¸öµ¥Ïß³ÌÖ´ÐУ¬Ó¦Óó¡¾°Êǵ±Ò»¸öÏ̱߳ØÐëµÈ´ýÁíÒ»¸öÏß³ÌÖ´ÐÐÍê±Ï²ÅÄÜÖ´ÐÐʱ¿ÉÒÔʹÓÃjoin·½·¨¡£
joinΪ·Ç¾²Ì¬·½·¨£¬¶¨ÒåÈçÏ£º
void join()
µÈ´ý¸ÃÏß³ÌÖÕÖ¹¡£ ......
Ê×ÏÈÉùÃ÷һϣ¬´ËÎÄÕÂʱ´ÓÍøÉÏ×ªÔØµÄ¡£ÈçϵÄijЩ·½·¨ÊÇȷʵ¹ÜÓ㬵«ÊÇ´ÓÖз¢ÏÖÁËÓÐÒ»µã²»×㣬¾ÍÊÇÔÎıÊÕßû¿¼ÂÇʹÓò»Í¬Web
Serverʱ³öÏÖµÄÇé¿ö£¬±ÈÈçÎÄÕÂÀïÎÒÓÃ
ºìÉ«×ÖÌå
»³öÀ´µÄ²¿·Ö´úÂëÔÚTomcatÅܵÄʱºòµÃÓÃËû˵µÄ·½·¨£¬²»¹ýµ½ÁËWebSphereµÄʱºò±ØÐëµÃÓÃÔÏȵÄ
String name = request.getParameter("name& ......
´úÂë¿é£º¾ÍÊÇÓÃ{}À¨ÆðÀ´µ½²¿·Ö¡£¸ù¾ÝÓ¦ÓõIJ»Í¬·ÖΪ4Àà:ÆÕͨ´úÂë¿é¡¢¹¹Ôì¿é¡¢¾²Ì¬´úÂë¿é¡¢Í¬²½´úÂë¿é¡£
1.ÆÕͨ´úÂë¿é£º¶¨ÒåÔÚ·½·¨ÖеĴúÂë¿é¡£
È磺
public class Ex22 {
public static void main(String[] args){
// ÆÕͨ´úÂë¿é
{
int i = 3;
System ......
Ãô½Ý¿ª·¢µÄÀíÄîÒѾÁ÷ÐÐÁ˺ܳ¤µÄʱ¼ä£¬ÔÚÃô½Ý¿ª·¢ÖеĿª·¢µü´ú½×¶ÎÖУ¬ÎÒÃÇ¿ÉÒÔͨ¹ýÎå¸ö²½Ö裬À´ÓÐЧµÄÌá¸ßÕû¸öÏîÄ¿µÄ´úÂëÖÊÁ¿¡£
JavaÏîÄ¿¿ª·¢¹ý³ÌÖУ¬ÓÉÓÚ¿ª·¢ÈËÔ±µÄ¾Ñé¡¢Java´úÂë±àдϰ¹ß£¬ÒÔ¼°È±·¦Í³Ò»µÄ±ê×¼ºÍ¹ÜÀíÁ÷³Ì£¬ÍùÍùµ¼ÖÂÕû¸öÏîÄ¿µÄ´úÂëÖÊÁ¿½Ï²î£¬ÄÑÓÚά »¤£¬ÐèÒª½Ï´óµÄ²âÊÔͶÈëºÍÖÜÆÚµÈÎÊÌâ¡£ÕâЩÎÊÌâÔÚÒ»¸öÏ ......
ÔÚÍøÉÏÕÒÁ˼¸¸öÓÃjava»ñÈ¡±¾»úIPµØÖ·µÄ´úÂ룬·¢ÏÖ¶¼ÉÙ¶¼ÓÐЩ²»ÍêÃÀ£¬×Ô¼ºÕûÀíÁËÒ»ÏÂ.ͻȻ֮¼äºÜÏë°Ñ×Ô¼ºµÄIPµØÖ·¸ø»ñÈ¡ÁË£¬ËäÈ»ÓÃϵͳ×Ô´øÃüÁî¿ÉÒԵõ½£¬µ«×Ô¼ºÏëдһ¸ö³ÌÐò»ñȡһÏ£¬µ½ÍøÉÏËÑË÷ÁËÒ»ÏÂjava»ñÈ¡±¾»úIPµØÖ·µÄ·½·¨£¬½á¹û¾ÓÈ»·¢ÏÖûÓÐÒ»¸öÊÇ¿ÉÒÔÓõ쬯øµÄÎÒÀÏÈ˼ÒÍÂѪ£¬
ÕâЩÈ˱Õ×ÅÑÛ¾¦Ð´³ÌÐò£¬Ð´ÍêÁ˾ÍÍùÍøÉ ......