1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29 package net.sf.jguard.core.provisioning;
30
31 import java.util.HashSet;
32 import java.util.Iterator;
33 import java.util.Set;
34 import net.sf.jguard.core.authentication.credentials.JGuardCredential;
35 import org.slf4j.Logger;
36 import org.slf4j.LoggerFactory;
37
38
39
40
41
42 public abstract class EntityTemplate implements Cloneable {
43
44
45 private static final Logger logger = LoggerFactory.getLogger(EntityTemplate.class.getName());
46
47
48
49 public EntityTemplate(){
50 super();
51
52 }
53
54
55 abstract public Object clone() throws CloneNotSupportedException;
56
57
58
59
60
61
62
63
64
65
66
67
68 protected static Set getCredentials(Set credentialSetFromTemplate, Set credentialSetFromCandidate) {
69 Set creds = new HashSet();
70 Iterator itCredentialFromTemplate = credentialSetFromTemplate.iterator();
71
72 while(itCredentialFromTemplate.hasNext()){
73 JGuardCredential jcred = (JGuardCredential)itCredentialFromTemplate.next();
74 Iterator itCredentialFromUser = credentialSetFromCandidate.iterator();
75 while(itCredentialFromUser.hasNext()){
76 JGuardCredential jcredFromUser =(JGuardCredential)itCredentialFromUser.next();
77
78 if(jcred.getName().equals(jcredFromUser.getName())){
79 creds.add(jcred);
80 break;
81 }
82 }
83 }
84
85 return creds;
86 }
87
88
89
90
91
92
93
94
95 protected static Set filterCredentialSet(Set credentialSetFromTemplate, Set credentialSetFromCandidate) {
96 Iterator itCredentialFromTemplate;
97
98 Set credentialsNotRegistered = new HashSet();
99 Iterator itCredentialFromUser = credentialSetFromCandidate.iterator();
100 while(itCredentialFromUser.hasNext()){
101 JGuardCredential jcredFromUser = (JGuardCredential)itCredentialFromUser.next();
102 itCredentialFromTemplate = credentialSetFromTemplate.iterator();
103 boolean found = false;
104 while(itCredentialFromTemplate.hasNext()){
105 JGuardCredential jcredFromTemplate =(JGuardCredential)itCredentialFromTemplate.next();
106 if(jcredFromUser.getName().equals(jcredFromTemplate.getName())){
107 found = true;
108 break;
109 }
110 }
111 if (false == found){
112 credentialsNotRegistered.add(jcredFromUser);
113
114
115 itCredentialFromUser.remove();
116 }
117 }
118 return credentialsNotRegistered;
119 }
120
121
122
123
124
125
126
127
128
129 protected static Set validateCredentialSet(Set credentialSetFromTemplate,Set credentialSetFromCandidate) {
130 Iterator itCredentialFromTemplate = credentialSetFromTemplate.iterator();
131 Set missingCredentials = new HashSet();
132
133
134 while(itCredentialFromTemplate.hasNext()){
135 JGuardCredential jcred = (JGuardCredential)itCredentialFromTemplate.next();
136 Iterator itCredentialFromUser = credentialSetFromCandidate.iterator();
137 boolean found = false;
138 while(itCredentialFromUser.hasNext()){
139 JGuardCredential jcredFromUser =(JGuardCredential)itCredentialFromUser.next();
140
141 if(jcred.getName().equals(jcredFromUser.getName())){
142 found = true;
143 break;
144 }
145 }
146 if (false == found){
147 missingCredentials.add(jcred);
148 }
149 }
150
151 Set credentialsNotRegistered = SubjectTemplate.filterCredentialSet(credentialSetFromTemplate, credentialSetFromCandidate);
152 if(credentialsNotRegistered.size()>0){
153 logger.warn(" there are some unknown credentials filled by the user during the registration process: ");
154 logger.warn(credentialsNotRegistered.toString());
155 }
156
157 return missingCredentials;
158 }
159
160
161
162 }