Updated OpenSAML library.
[java-idp.git] / src / edu / internet2 / middleware / shibboleth / common / ShibPOSTProfileFactory.java
1 package edu.internet2.middleware.shibboleth.common;
2
3 import java.security.Key;
4 import org.opensaml.SAMLException;
5 import org.opensaml.SAMLPOSTProfile;
6
7
8 /**
9  *  Used by Shibboleth HS/SHIRE to locate a Shibboleth POST profile
10  *  implementation
11  *
12  * @author     Scott Cantor
13  * @created    April 10, 2002
14  */
15 public class ShibPOSTProfileFactory
16 {
17     /**
18      *  Gets a compatible SHIRE-side profile implementation for the specified
19      *  policies
20      *
21      * @param  policies           Array of policy URIs that the implementation
22      *      must support
23      * @param  mapper             Interface between profile and trust base
24      * @param  receiver           URL of SHIRE
25      * @param  ttlSeconds         Length of time in seconds allowed to elapse
26      *      from issuance of SAML response
27      * @return                    A compatible profile implementation or null if
28      *      one cannot be found
29      * @exception  SAMLException  Raised if a profile implementation cannot be
30      *      constructed from the supplied information
31      */
32     public static ShibPOSTProfile getInstance(String[] policies, OriginSiteMapper mapper,
33                                               String receiver, int ttlSeconds)
34         throws SAMLException
35     {
36         // Current version only knows about Club Shib...
37         if (policies == null || policies.length != 1 || !policies[0].equals(Constants.POLICY_CLUBSHIB))
38             return null;
39
40         if (mapper == null || receiver == null || ttlSeconds <= 0)
41             return null;
42
43         return new ClubShibPOSTProfile(policies, mapper, receiver, ttlSeconds);
44     }
45
46     /**
47      *  Gets a compatible HS-side profile implementation for the specified
48      *  policies
49      *
50      * @param  policies           Array of policy URIs that the implementation
51      *      must support
52      * @param  issuer             "Official" name of issuing origin site
53      * @return                    A compatible profile implementation or null if
54      *      one cannot be found
55      * @exception  SAMLException  Raised if a profile implementation cannot be
56      *      constructed from the supplied information
57      */
58     public static ShibPOSTProfile getInstance(String[] policies, String issuer)
59         throws SAMLException
60     {
61         // Current version only knows about Club Shib...
62         if (policies == null || policies.length != 1 || !policies[0].equals(Constants.POLICY_CLUBSHIB))
63             return null;
64
65         if (issuer == null || issuer.length() == 0)
66             return null;
67
68         return new ClubShibPOSTProfile(policies, issuer);
69     }
70 }
71