Clover Coverage Report
Coverage timestamp: Sun Mar 23 2008 08:24:39 GMT
21   146   7   3.5
12   59   0.57   6
6     2  
1    
 
 
  ACUserEntry       Line # 58 21 7 38.5% 0.3846154
 
  (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    package issrg.pba.rbac.x509;
47   
48    import java.math.BigInteger;
49   
50    import issrg.pba.repository.UserEntry;
51    import issrg.pba.rbac.LDAPDNPrincipal;
52    import issrg.utils.repository.Entry;
53   
54    /**
55    *
56    * @author rl59
57    */
 
58    public class ACUserEntry extends UserEntry{
59   
 
60  1779 toggle protected void _init_(issrg.ac.AttributeCertificate user){
61  1779 try{
62  1779 LDAPDNPrincipal subject= null;
63  1779 LDAPDNPrincipal issuer=null;
64  1779 BigInteger serial=null;
65   
66  1779 if(user.getACInfo().getHolder().getEntityName()!=null)
67  1779 subject = new LDAPDNPrincipal(issrg.ac.Util.generalNamesToString(user.getACInfo().getHolder().getEntityName()));
68  1779 if(user.getACInfo().getHolder().getBaseCertificateID()!=null)
69  0 issuer =new LDAPDNPrincipal(issrg.ac.Util.generalNamesToString(user.getACInfo().getHolder().getBaseCertificateID().getIssuer()));
70  1779 if(user.getACInfo().getHolder().getBaseCertificateID()!=null)
71  0 serial = user.getACInfo().getHolder().getBaseCertificateID().getSerial();
72   
73  1779 super._init_(subject, issuer,serial);
74   
75    }catch (issrg.utils.RFC2253ParsingException rpe){
76  0 throw new java.lang.IllegalArgumentException(rpe.getMessage());
77    }
78    }
79   
80    /**
81    * This constructor builds an object from the given Principal.
82    */
 
83  0 toggle public ACUserEntry(java.security.Principal subject){
84  0 super(subject);
85    }
86   
87    /**
88    * This constructor builds an object assuming that the object is an encoding of an AC.
89    */
 
90  0 toggle public ACUserEntry(Object ac) {
91  0 try{
92  0 _init_(issrg.ac.AttributeCertificate.guessEncoding((byte[])ac));
93    }catch (Exception e){
94  0 throw new IllegalArgumentException(e.getMessage());
95    }
96    }
97   
98    /**
99    * This constructor builds an object from the given V2Form object, containing
100    * all the necessary information about the user.
101    *
102    * @param user is the V2Form object with the fields filled in as appropriate;
103    * the issuerName reference is treated as the subjectName, baseCertificateID
104    * field is used as the reference to the alternative entry
105    */
 
106  0 toggle public ACUserEntry(issrg.ac.V2Form user){
107  0 try{
108  0 _init_(user.getIssuerName()!=null
109    ?new LDAPDNPrincipal(
110    issrg.ac.Util.generalNamesToString(user.getIssuerName())
111    )
112    :null,
113  0 user.getBaseCertificateID()!=null
114    ?new LDAPDNPrincipal(
115    issrg.ac.Util.generalNamesToString(user.getBaseCertificateID().getIssuer())
116    )
117    :null,
118  0 user.getBaseCertificateID()!=null
119    ?user.getBaseCertificateID().getSerial()
120    :null
121    );
122    }catch (issrg.utils.RFC2253ParsingException rpe){
123  0 throw new java.lang.IllegalArgumentException(rpe.getMessage());
124    }
125    }
126   
127    /**
128    * This constructor builds an object from the AttributeCertificate
129    * information. The holder field is used to retrieve all the necessary data.
130    *
131    * @param user is the valid X.509 AC
132    */
 
133  1779 toggle public ACUserEntry(issrg.ac.AttributeCertificate user){
134  1779 _init_(user);
135    }
136   
137    /**
138    * This constructor builds an object out of the data contained in the given
139    * X509 PKC.
140    *
141    * @param cert is the valid X509 certificate of the holder
142    */
 
143  0 toggle public ACUserEntry(java.security.cert.X509Certificate cert){
144  0 _init_(cert.getSubjectDN(), cert.getIssuerDN(), cert.getSerialNumber());
145    }
146    }