Clover Coverage Report
Coverage timestamp: Sun Mar 23 2008 08:24:39 GMT
23   125   8   11.5
12   47   0.39   2
2     4.5  
1    
 
 
  ToRawCredential       Line # 73 23 8 43.2% 0.43243244
 
  (1)
 
1    /*
2    * Copyright (c) 2006, University of Kent
3    * All rights reserved.
4    *
5    * Redistribution and use in source and binary forms, with or without
6    * modification, are permitted provided that the following conditions are met:
7    *
8    * Redistributions of source code must retain the above copyright notice, this
9    * list of conditions and the following disclaimer.
10    *
11    * Redistributions in binary form must reproduce the above copyright notice,
12    * this list of conditions and the following disclaimer in the documentation
13    * and/or other materials provided with the distribution.
14    *
15    * 1. Neither the name of the University of Kent nor the names of its
16    * contributors may be used to endorse or promote products derived from this
17    * software without specific prior written permission.
18    *
19    * 2. THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS
20    * IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
21    * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
22    * PURPOSE ARE DISCLAIMED.
23    *
24    * 3. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
25    * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
26    * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
27    * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
28    * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
29    * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
30    * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
31    * POSSIBILITY OF SUCH DAMAGE.
32    *
33    * 4. YOU AGREE THAT THE EXCLUSIONS IN PARAGRAPHS 2 AND 3 ABOVE ARE REASONABLE
34    * IN THE CIRCUMSTANCES. IN PARTICULAR, YOU ACKNOWLEDGE (1) THAT THIS
35    * SOFTWARE HAS BEEN MADE AVAILABLE TO YOU FREE OF CHARGE, (2) THAT THIS
36    * SOFTWARE IS NOT "PRODUCT" QUALITY, BUT HAS BEEN PRODUCED BY A RESEARCH
37    * GROUP WHO DESIRE TO MAKE THIS SOFTWARE FREELY AVAILABLE TO PEOPLE WHO WISH
38    * TO USE IT, AND (3) THAT BECAUSE THIS SOFTWARE IS NOT OF "PRODUCT" QUALITY
39    * IT IS INEVITABLE THAT THERE WILL BE BUGS AND ERRORS, AND POSSIBLY MORE
40    * SERIOUS FAULTS, IN THIS SOFTWARE.
41    *
42    * 5. This license is governed, except to the extent that local laws
43    * necessarily apply, by the laws of England and Wales.
44    */
45    /*
46    * ToRawCredential.java
47    *
48    * Created on 10 December 2007, 17:39
49    *
50    * To change this template, choose Tools | Template Manager
51    * and open the template in the editor.
52    */
53   
54    package issrg.utils;
55   
56    import issrg.pba.RawCredential;
57    import issrg.pba.rbac.CustomisePERMIS;
58    import issrg.utils.repository.RepositoryException;
59   
60    import javax.naming.directory.Attribute;
61    import javax.naming.directory.Attributes;
62    import javax.naming.directory.BasicAttribute;
63    import javax.naming.directory.BasicAttributes;
64    import javax.naming.NamingEnumeration;
65    import javax.naming.NamingException;
66   
67    import org.apache.log4j.*;// added for logging
68   
69    /**
70    *
71    * @author Linying Su
72    */
 
73    public class ToRawCredential {
74   
75    private static Logger logger = Logger.getLogger(ToRawCredential.class);
76    private Attributes atts = null;
77    private String type = null;
78   
79    /** Creates a new instance of ToRawCredential
80    * @param attsIn is a Attributes object, which are retrieved from any repository.
81    * @param typeIn is the class name of the repository, where the above Attributes are from.
82    */
83   
 
84  2922 toggle public ToRawCredential(Attributes attsIn,String typeIn) {
85  2922 this.atts = attsIn;
86  2922 this.type = typeIn;
87    }
88    /**
89    * this method returns Attributes, which contains a set of <Attribute>s.
90    * Each <Attribute> contains a set of RawCredentials if MultiAuthTokenParser is configured into PERMIS.
91    * Otherwise, this method returns this.atts.
92    * Data Structure:
93    * Attributes = <Attribute, Attribute, ..., Attribute>
94    * Attribute = <name, value, value, ..., value>
95    * name is represented as String
96    * value is represented as Object, which is decoded by a token parser.
97    */
 
98  2922 toggle public Attributes convert() throws RepositoryException {
99  0 if (this.atts==null) return null;
100  2922 if (!CustomisePERMIS.isMultiParserUsed()) return this.atts;
101  1 Attributes attributes = new BasicAttributes();
102  1 NamingEnumeration ids = this.atts.getIDs();
103  1 try {
104  1 while (ids.hasMore()) {
105  0 String id = (String)ids.next();
106  0 if (id!=null) {
107  0 Attribute attribute = this.atts.get(id);
108  0 if (attribute!=null) {
109  0 String name = attribute.getID();
110  0 Attribute newAtt = new BasicAttribute(name);
111  0 for (int i=0; i<attribute.size(); i++) {
112  0 Object value = attribute.get(i);
113  0 RawCredential credential = new RawCredential(value,this.type);
114  0 newAtt.add(credential);
115    }
116  0 attributes.put(newAtt);
117    }
118    }
119    }
120    } catch (NamingException ne) {
121  0 throw new RepositoryException("error:"+ne);
122    }
123  1 return attributes;
124    }
125    }