Added configurability for domain and expiration to cookie cache
[java-idp.git] / src / edu / internet2 / middleware / shibboleth / wayf / WayfConfig.java
1 package edu.internet2.middleware.shibboleth.wayf;
2
3 import java.util.HashSet;
4
5 import org.apache.log4j.Logger;
6
7 /**
8  * Class used by the  WAYF service to determine runtime options
9  * Most of the fields of this class should have reasonable defaults.
10  * @author Walter Hoehn wassa@columbia.edu
11  */
12
13 public class WayfConfig {
14
15         private static Logger log = Logger.getLogger(WayfConfig.class.getName());
16
17         private String logoLocation = "images/internet2.gif";
18         private String supportContact = "mailto:shib-support@internet2.org";
19         private String helpText =
20                 "In order to fulfill the request for the  web resource you "
21                         + "have just chosen, information must first be obtained from "
22                         + "your home institution. Please select the institution with "
23                         + "which you are affiliated.";
24         private String searchResultEmptyText =
25                 "No institution found that matches your search " + "criteria, please try again.";
26         private HashSet ignoredForMatch = new HashSet();
27         private int cacheExpiration;
28         private String cacheDomain;
29         private String cacheType = "COOKIES";
30
31         public WayfConfig() {
32                 super();
33         }
34
35         public String getSearchResultEmptyText() {
36                 return searchResultEmptyText;
37         }
38
39         public void setSearchResultEmptyText(String searchResultEmptyText) {
40                 this.searchResultEmptyText = searchResultEmptyText;
41         }
42
43         public String getHelpText() {
44                 return helpText;
45         }
46
47         public void setHelpText(String helpText) {
48                 this.helpText = helpText;
49         }
50
51         public String getSupportContact() {
52                 return supportContact;
53         }
54
55         public void setSupportContact(String supportContact) {
56                 this.supportContact = supportContact;
57         }
58
59         public String getLogoLocation() {
60                 return logoLocation;
61         }
62
63         public void setLogoLocation(String logoLocation) {
64                 this.logoLocation = logoLocation;
65         }
66
67         /**
68          * Determines if a particular string token should be used for matching when a user searches for origins.
69          * @param str The string to lookup
70          */
71         public boolean isIgnoredForMatch(String str) {
72
73                 if (ignoredForMatch.contains(str.toLowerCase())) {
74                         return true;
75                 } else {
76                         return false;
77                 }
78         }
79
80         /**
81          * Sets the tokens that should be ignored when a user searches for an origin site.
82          * @param s The ignored tokens are passed as a single string, each separated by whitespace
83          */
84         public void addIgnoredForMatch(String s) {
85
86                 ignoredForMatch.add(s.toLowerCase());
87         }
88
89         public String getCacheType() {
90                 return cacheType;
91         }
92
93         public void setCacheType(String cache) {
94                 if (cache.toUpperCase().equals("NONE")
95                         || cache.toUpperCase().equals("SESSION")
96                         || cache.toUpperCase().equals("COOKIES")) {
97                         this.cacheType = cache.toUpperCase();
98                 } else {
99                         log.warn("Cache type :" + cache + ": not recognized, using default.");
100                 }
101         }
102
103         /**
104          * Returns the cacheDomain.
105          * @return String
106          */
107         public String getCacheDomain() {
108                 return cacheDomain;
109         }
110
111
112         /**
113          * Returns the cacheExpiration.
114          * @return int
115          */
116         public int getCacheExpiration() {
117                 return cacheExpiration;
118         }
119
120
121         /**
122          * Sets the cacheDomain.
123          * @param cacheDomain The cacheDomain to set
124          */
125         public void setCacheDomain(String cacheDomain) {
126                 this.cacheDomain = cacheDomain;
127         }
128
129
130         /**
131          * Sets the cacheExpiration.
132          * @param cacheExpiration The cacheExpiration to set
133          */
134         public void setCacheExpiration(int cacheExpiration) {
135                 this.cacheExpiration = cacheExpiration;
136         }
137
138
139 }