1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18 package org.apache.jetspeed.sso.impl;
19
20 import java.util.Collection;
21 import java.util.Iterator;
22 import java.util.Vector;
23
24 import org.apache.jetspeed.sso.SSOException;
25 import org.apache.jetspeed.sso.SSOSite;
26 import org.apache.jetspeed.sso.SSOPrincipal;
27
28 /***
29 * SSOSiteImpl
30 * Class holding information about the Site and credentials for Single Sign on SSO.
31 * OJB will map the database entries into this class
32 *
33 * @author <a href="mailto:rogerrut@apache.org">Roger Ruttimann</a>
34 * @version $Id: SSOSiteImpl.java 516448 2007-03-09 16:25:47Z ate $
35 */
36
37 public class SSOSiteImpl implements SSOSite {
38
39
40 private int siteId;
41 private String name;
42 private String siteURL;
43 private boolean isAllowUserSet;
44 private boolean isCertificateRequired;
45
46 private boolean isChallangeResponseAuthentication;
47
48
49 private String realm;
50
51 private boolean isFormAuthentication;
52
53
54
55 private String formUserField;
56 private String formPwdField;
57
58 private Collection principals = new Vector();
59 private Collection remotePrincipals = new Vector();
60
61 /***
62 *
63 */
64 public SSOSiteImpl() {
65 super();
66
67 }
68
69
70
71
72
73 /***
74 * @return Returns the isAllowUserSet.
75 */
76 public boolean isAllowUserSet() {
77 return isAllowUserSet;
78 }
79 /***
80 * @param isAllowUserSet The isAllowUserSet to set.
81 */
82 public void setAllowUserSet(boolean isAllowUserSet) {
83 this.isAllowUserSet = isAllowUserSet;
84 }
85 /***
86 * @return Returns the isCertificateRequired.
87 */
88 public boolean isCertificateRequired() {
89 return isCertificateRequired;
90 }
91 /***
92 * @param isCertificateRequired The isCertificateRequired to set.
93 */
94 public void setCertificateRequired(boolean isCertificateRequired) {
95 this.isCertificateRequired = isCertificateRequired;
96 }
97 /***
98 * @return Returns the name.
99 */
100 public String getName() {
101 return name;
102 }
103 /***
104 * @param name The name to set.
105 */
106 public void setName(String name) {
107 this.name = name;
108 }
109 /***
110 * @return Returns the principals.
111 */
112 public Collection getPrincipals() {
113 return this.principals;
114 }
115 /***
116 * @param principals The principals to set.
117 */
118 public void setPrincipals(Collection principals) {
119 this.principals.addAll(principals);
120 }
121 /***
122 * @return Returns the siteId.
123 */
124 public int getSiteId() {
125 return siteId;
126 }
127 /***
128 * @param siteId The siteId to set.
129 */
130 public void setSiteId(int siteId) {
131 this.siteId = siteId;
132 }
133 /***
134 * @return Returns the siteURL.
135 */
136 public String getSiteURL() {
137 return siteURL;
138 }
139 /***
140 * @param siteURL The siteURL to set.
141 */
142 public void setSiteURL(String siteURL) {
143 this.siteURL = siteURL;
144 }
145
146 /***
147 * Utility functions
148 * addCredential()
149 * Adds the credentail to the credentials collection
150 *
151 */
152
153
154
155 /***
156 * addPrincipal
157 * Adds the SSOPrincipal to the principals collection
158 *
159 */
160 public void addPrincipal(SSOPrincipal principal) throws SSOException {
161 boolean bStatus = false;
162
163 try
164 {
165 bStatus = principals.add(principal);
166 }
167 catch(Exception e)
168 {
169
170 throw new SSOException(SSOException.FAILED_ADDING_PRINCIPAL_TO_MAPPING_TABLE_FOR_SITE + e.getMessage());
171 }
172
173 if ( bStatus == false)
174 throw new SSOException(SSOException.FAILED_ADDING_PRINCIPAL_TO_MAPPING_TABLE_FOR_SITE );
175 }
176
177 /***
178 * removePrincipal()
179 * removes a principal from the principals collection
180 *
181 */
182 public void removePrincipal(long principalId) throws SSOException
183 {
184 boolean bStatus = false;
185 SSOPrincipal principalObj = null;
186 Iterator itSitePrincipals = principals.iterator();
187
188 while (itSitePrincipals.hasNext() )
189 {
190 principalObj = (SSOPrincipal)itSitePrincipals.next();
191 if ( principalObj.getPrincipalId() == principalId)
192 {
193
194 try
195 {
196 bStatus = principals.remove(principalObj);
197 }
198 catch(Exception e)
199 {
200
201 throw new SSOException(SSOException.FAILED_REMOVING_PRINCIPAL_FROM_MAPPING_TABLE_FOR_SITE + e.getMessage());
202 }
203
204 if ( bStatus == false)
205 throw new SSOException(SSOException.FAILED_REMOVING_PRINCIPAL_FROM_MAPPING_TABLE_FOR_SITE );
206 }
207
208 }
209 }
210 /***
211 * @return Returns the remotePrincipals.
212 */
213 public Collection getRemotePrincipals() {
214 return remotePrincipals;
215 }
216 /***
217 * @param remotePrincipals The remotePrincipals to set.
218 */
219 public void setRemotePrincipals(Collection remotePrincipals) {
220 this.remotePrincipals = remotePrincipals;
221 }
222
223 /***
224 * Define the Authentication methods.
225 * Supported are: Challenge Response and From based
226 */
227 /***
228 * Form authentication requires two fields that hold the credential
229 * information for the request.
230 */
231 public void setFormAuthentication(String formUserField, String formPwdField)
232 {
233
234
235 }
236
237
238
239
240 public void setChallengeResponseAuthentication()
241 {
242
243
244 }
245
246
247 public String getFormPwdField() {
248 return formPwdField;
249 }
250
251 public void setFormPwdField(String formPwdField) {
252 this.formPwdField = formPwdField;
253 }
254
255 public String getFormUserField() {
256 return formUserField;
257 }
258
259 public void setFormUserField(String formUserField) {
260 this.formUserField = formUserField;
261 }
262
263 public boolean isChallangeResponseAuthentication() {
264 return isChallangeResponseAuthentication;
265 }
266
267 public void setChallengeResponseAuthentication(
268 boolean isChallangeResponseAuthentication) {
269 this.isChallangeResponseAuthentication = isChallangeResponseAuthentication;
270 }
271
272 public boolean isFormAuthentication() {
273 return isFormAuthentication;
274 }
275
276 public void setFormAuthentication(boolean isFormAuthentication) {
277 this.isFormAuthentication = isFormAuthentication;
278 }
279
280 public void configFormAuthentication(String formUserField, String formPwdField)
281 {
282 this.isFormAuthentication = true;
283 this.setChallengeResponseAuthentication(false);
284
285 this.formPwdField = formPwdField;
286 this.formUserField = formUserField;
287 }
288
289
290
291
292
293 public void setRealm(String realm)
294 {
295 this.realm = realm;
296 }
297
298
299
300
301
302 public String getRealm()
303 {
304 return this.realm;
305 }
306 }