⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 testds.java

📁 一个完整的XACML工程,学习XACML技术的好例子!
💻 JAVA
📖 第 1 页 / 共 2 页
字号:
        doIssuing(count, "cn=soa,ou=admin,o=permis,c=gb", "cn=admin1,ou=admin,o=permis,c=gb", roles, "permisRole", "2003.01.01 00:00:00", "2011.01.01 00:00:00", "cannot", "0"); count++;
                
        roles = new String[] {"Student", "Researcher"};
        doIssuing(count, "cn=soa,ou=admin,o=permis,c=gb", "cn=admin1,ou=admin,o=permis,c=gb", roles, "permisRole", "2001.01.01 00:00:00", "2006.01.01 00:00:00", "can", "2"); count++;
                
        
        roles = new String[] {"Staff"};
        doIssuing(count, "cn=soa,ou=admin,o=permis,c=gb", "cn=admin1,ou=admin,o=permis,c=gb", roles, "perRole", "2005.01.01 00:00:00", "2007.01.01 00:00:00", "can", "2"); count++;
                
        //issue to outside world
        roles = new String[] {"Staff"};
        doIssuing(count, "cn=soa,ou=admin,o=permis,c=gb", "cn=soa1, o=permis,c=gb", roles, "permisRole", "2005.01.01 00:00:00", "2006.01.01 00:00:00", "can", "2"); count++;
                
        //issue to aa1
        
        //this is testing for both summer time and GMT time
        roles = new String[] {"Professor", "Researcher"};
        doIssuing(count, "cn=soa,ou=admin,o=permis,c=gb", "cn=aa1,ou=staff,o=permis,c=gb", roles, "permisRole", "2004.06.01 12:00:00", "2007.01.1 12:00:00", "can", "-1"); count++;
                
        roles = new String[] {"Professor", "Researcher"};
        doIssuing(count, "cn=soa,ou=admin,o=permis,c=gb", "cn=aa1,ou=staff,o=permis,c=gb", roles, "permisRole", "2004.06.01 12:00:00", "2007.08.27 12:00:00", "can", "-1"); count++;
                
        roles = new String[] {"Professor", "Staff"};
        doIssuing(count, "cn=soa,ou=admin,o=permis,c=gb", "cn=aa1,ou=staff,o=permis,c=gb", roles, "permisRole", "2004.06.01 12:00:00", "2007.08.27 12:00:00", "can", "0"); count++;
                
        roles = new String[] {"Student", "Researcher"};
        doIssuing(count, "cn=soa,ou=admin,o=permis,c=gb", "cn=aa1,ou=staff,o=permis,c=gb", roles, "permisRole", "2004.06.01 12:00:00", "2007.08.27 12:00:00", "can", "2"); count++;
                
        //issue to student1
        roles = new String[] {"Student"};
        doIssuing(count, "cn=soa,ou=admin,o=permis,c=gb", "cn=student1,ou=student,o=permis,c=gb", roles, "permisRole", "2004.06.10 12:00:00", "2007.08.27 12:00:00", "can", "2"); count++;
                
        roles = new String[] {"Professor", "Student"};
        doIssuing(count, "cn=soa,ou=admin,o=permis,c=gb", "cn=student1,ou=student,o=permis,c=gb", roles, "permisRole", "2003.06.01 12:00:00", "2008.08.27 12:00:00", "can", "-1"); count++;
                
        //ISSUED BY DIS
        
        //issue to admin1
        roles = new String[] {"Admin"};
        doIssuing(count, "cn=dis,ou=admin,o=permis,c=gb", "cn=admin1,ou=admin,o=permis,c=gb", roles, "permisRole", "2004.01.01 12:00:00", "2010.01.01 12:00:00", "cannot", "0"); count++;
                
        
        roles = new String[] {"Admin"};
        doIssuing(count, "cn=dis,ou=admin,o=permis,c=gb", "cn=admin1,ou=admin,o=permis,c=gb", roles, "permisRole", "2004.01.01 12:00:00", "2009.05.01 12:00:00", "can", "1"); count++;
                
        roles = new String[] {"Admin", "Professor"};
        doIssuing(count, "cn=dis,ou=admin,o=permis,c=gb", "cn=admin1,ou=admin,o=permis,c=gb", roles, "permisRole", "2003.01.01 00:00:00", "2011.01.01 00:00:00", "cannot", "0"); count++;
                
        //issue to DIS
        
        roles = new String[] {"Admin", "Professor"};
        doIssuing(count, "cn=dis,ou=admin,o=permis,c=gb", "cn=dis,ou=admin,o=permis,c=gb", roles, "permisRole", "2006.01.01 00:00:00", "2009.01.01 00:00:00", "cannot", "0"); count++;
                
        //issue to aa2
        
        roles = new String[] {"Professor", "Researcher"};
        doIssuing(count, "cn=dis,ou=admin,o=permis,c=gb", "cn=aa2,ou=staff,o=permis,c=gb", roles, "permisRole", "2004.06.01 12:00:00", "2007.08.27 12:00:00", "cannot", "0"); count++;
                
        //ISSUED BY AA1
        
        roles = new String[] {"Student", "Researcher"};
        doIssuing(count, "cn=aa1,ou=staff,o=permis,c=gb", "cn=aa1,ou=staff,o=permis,c=gb", roles, "permisRole", "2004.06.01 12:00:00", "2007.08.27 12:00:00", "can", "2"); count++;
                
        roles = new String[] {"Student"};
        doIssuing(count, "cn=aa1,ou=staff,o=permis,c=gb", "cn=student1,ou=student,o=permis,c=gb", roles, "permisRole", "2004.06.01 12:00:00", "2007.08.27 12:00:00", "can", "2"); count++;
                
        roles = new String[] {"Researcher"};
        doIssuing(count, "cn=aa1,ou=staff,o=permis,c=gb", "cn=aa2,ou=staff,o=permis,c=gb", roles, "permisRole", "2004.03.01 00:00:00", "2007.08.27 12:00:00", "can", "2"); count++;
                
        roles = new String[] {"Professor"};
        doIssuing(count, "cn=aa1,ou=staff,o=permis,c=gb", "cn=aa3,ou=staff,o=permis,c=gb", roles, "permisRole", "2005.01.01 00:00:00", "2007.08.27 00:00:00", "can", "1"); count++;
                
        roles = new String[] {"Professor", "Researcher"};
        doIssuing(count, "cn=aa1,ou=staff,o=permis,c=gb", "cn=aa4,ou=staff,o=permis,c=gb", roles, "permisRole", "2005.01.01 00:00:00", "2007.08.27 00:00:00", "can", "0"); count++;
                
        //ISSUED BY AA2
        
        roles = new String[] {"Student"};
        doIssuing(count, "cn=aa2,ou=staff,o=permis,c=gb", "cn=student1,ou=student,o=permis,c=gb", roles, "permisRole", "2004.06.01 12:00:00", "2007.08.27 12:00:00", "can", "2"); count++;
                
        roles = new String[] {"Professor", "Researcher"};
        doIssuing(count, "cn=aa2,ou=staff,o=permis,c=gb", "cn=aa5,ou=staff,o=permis,c=gb", roles, "permisRole", "2005.01.01 00:00:00", "2010.01.01 00:00:00", "can", "0"); count++;
                
        roles = new String[] {"Researcher"};
        doIssuing(count, "cn=aa2,ou=staff,o=permis,c=gb", "cn=aa5,ou=staff,o=permis,c=gb", roles, "permisRole", "2005.01.01 00:00:00", "2006.05.01 00:00:00", "can", "0"); count++;
                
        
        //ISSUED BY AA3
        
        roles = new String[] {"Researcher"};
        doIssuing(count, "cn=aa3,ou=staff,o=permis,c=gb", "cn=aa5,ou=staff,o=permis,c=gb", roles, "permisRole", "2005.01.01 00:00:00", "2006.05.01 00:00:00", "can", "0"); count++;
                
        
        roles = new String[] {"Professor"};
        doIssuing(count, "cn=aa3,ou=staff,o=permis,c=gb", "cn=aa5,ou=staff,o=permis,c=gb", roles, "permisRole", "2005.01.01 00:00:00", "2006.05.01 00:00:00", "can", "0"); count++;
                
        roles = new String[] {"Professor"};
        doIssuing(count, "cn=aa3,ou=staff,o=permis,c=gb", "cn=admin1,ou=admin,o=permis,c=gb", roles, "permisRole", "2005.01.01 00:00:00", "2006.05.01 00:00:00", "can", "0"); count++;
                
        //ISSUED BY STUDENT1
        
        roles = new String[] {"Student"};
        doIssuing(count, "cn=student1,ou=student,o=permis,c=gb", "cn=student2,ou=student,o=permis,c=gb", roles, "permisRole", "2005.01.01 00:00:00", "2006.05.01 00:00:00", "can", "0"); count++;
                
        roles = new String[] {"Professor"};
        doIssuing(count, "cn=student1,ou=student,o=permis,c=gb", "cn=student2,ou=student,o=permis,c=gb", roles, "permisRole", "2000.01.01 00:00:00", "2007.08.27 02:00:00", "can", "0"); count++;
                
        roles = new String[] {"Student"};
        doIssuing(count, "cn=student1,ou=student,o=permis,c=gb", "cn=student5,ou=student,o=permis,c=gb", roles, "permisRole", "2005.01.01 00:00:00", "2006.05.01 00:00:00", "can", "0"); count++;
        
//        log.debug("Issuing process is done");
    }
    
    public void testPDP(String[] args) {        
        InputStream in = System.in;
        File parentDir = null;        
        try{
            File inFile = new File(args[0]);
            in = new FileInputStream(inFile);
            parentDir=inFile.getParentFile();
        }catch(IOException ioe){
//                log.fatal(args[0] + " is not found");
                return;
        }                
        
        try {            
            PermisRBAC pba = null;
//            log.debug("Setting the clock");
            CustomisePERMIS.setSystemClock("issrg.test.ds.PermisRBACDISTest");
            PermisRBACDISTest theClock = (PermisRBACDISTest)CustomisePERMIS.getSystemClock();
//            log.debug("Initializing the PermisRBAC");
            pba = new PermisRBAC(new RepositoryACPolicyFinder(r, OID, new LDAPDNPrincipal(SOA), sv), r, tokenParser);
//            log.debug("PermisRBAC is initialized");
            //Vector arguments = new Vector();
            LDAPDNPrincipal user=null;
            Subject subject=null;
            PermisTarget target=null;
            Action act = null;
            Map env = new Hashtable();
            int count = 0;
            BufferedReader br=new BufferedReader(new InputStreamReader(in));
            String s=null;            
            while((s=br.readLine())!=null){ 
                if (!s.trim().equals("") && !s.trim().startsWith("#")){				
			String instruction = s.substring(0,4).trim();
                        String rhs = s.substring(4).trim();
                        System.out.println(rhs);
                        if (instruction.equals("usr")) {
                            user=new LDAPDNPrincipal(rhs);                             
                        } else if (instruction.equals("act")) {
                            act =  new PermisAction(rhs);
                        } else if (instruction.equals("tgt")) {
                            String proto = null;
                            try{
                                    proto=URLHandler.getProtocolName(rhs);
                            }catch(BadURLException bue){ /* ignore it */ }
                            if (proto!=null && URLHandler.getURLHandler(proto)!=null){ // it is a URL then
                                    target = new PermisTarget(rhs);
                            }else{ // well, it must be a LDAP DN then
                                    target = new PermisTarget(rhs, null); // this time it is treated as a DN + a null array of object classes
                            }                            
                        } else if (instruction.equals("env")) {
                            theClock.setTime(theClock.toTime(rhs));                        
                            subject=pba.getCreds(user);
                            System.out.println(++count + ". Decision: "+(pba.decision(subject, act, target, env)?"grant":"deny"));
                            System.out.println();
                        } else if (instruction.equals("prtl")) {
                            System.out.println("--------------Change user-----------------");
                        }
                }
            }
            
        } catch (Exception e) {
            e.printStackTrace(System.out);
        }
    }
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -