001: /*
002: * Copyright 1999,2004 The Apache Software Foundation.
003: *
004: * Licensed under the Apache License, Version 2.0 (the "License");
005: * you may not use this file except in compliance with the License.
006: * You may obtain a copy of the License at
007: *
008: * http://www.apache.org/licenses/LICENSE-2.0
009: *
010: * Unless required by applicable law or agreed to in writing, software
011: * distributed under the License is distributed on an "AS IS" BASIS,
012: * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
013: * See the License for the specific language governing permissions and
014: * limitations under the License.
015: */
016:
017: package org.apache.catalina.deploy;
018:
019: import org.apache.catalina.util.RequestUtil;
020: import java.io.Serializable;
021:
022: /**
023: * Representation of a login configuration element for a web application,
024: * as represented in a <code><login-config></code> element in the
025: * deployment descriptor.
026: *
027: * @author Craig R. McClanahan
028: * @version $Revision: 1.4 $ $Date: 2004/05/13 20:40:49 $
029: */
030:
031: public class LoginConfig implements Serializable {
032:
033: // ----------------------------------------------------------- Constructors
034:
035: /**
036: * Construct a new LoginConfig with default properties.
037: */
038: public LoginConfig() {
039:
040: super ();
041:
042: }
043:
044: /**
045: * Construct a new LoginConfig with the specified properties.
046: *
047: * @param authMethod The authentication method
048: * @param realmName The realm name
049: * @param loginPage The login page URI
050: * @param errorPage The error page URI
051: */
052: public LoginConfig(String authMethod, String realmName,
053: String loginPage, String errorPage) {
054:
055: super ();
056: setAuthMethod(authMethod);
057: setRealmName(realmName);
058: setLoginPage(loginPage);
059: setErrorPage(errorPage);
060:
061: }
062:
063: // ------------------------------------------------------------- Properties
064:
065: /**
066: * The authentication method to use for application login. Must be
067: * BASIC, DIGEST, FORM, or CLIENT-CERT.
068: */
069: private String authMethod = null;
070:
071: public String getAuthMethod() {
072: return (this .authMethod);
073: }
074:
075: public void setAuthMethod(String authMethod) {
076: this .authMethod = authMethod;
077: }
078:
079: /**
080: * The context-relative URI of the error page for form login.
081: */
082: private String errorPage = null;
083:
084: public String getErrorPage() {
085: return (this .errorPage);
086: }
087:
088: public void setErrorPage(String errorPage) {
089: // if ((errorPage == null) || !errorPage.startsWith("/"))
090: // throw new IllegalArgumentException
091: // ("Error Page resource path must start with a '/'");
092: this .errorPage = RequestUtil.URLDecode(errorPage);
093: }
094:
095: /**
096: * The context-relative URI of the login page for form login.
097: */
098: private String loginPage = null;
099:
100: public String getLoginPage() {
101: return (this .loginPage);
102: }
103:
104: public void setLoginPage(String loginPage) {
105: // if ((loginPage == null) || !loginPage.startsWith("/"))
106: // throw new IllegalArgumentException
107: // ("Login Page resource path must start with a '/'");
108: this .loginPage = RequestUtil.URLDecode(loginPage);
109: }
110:
111: /**
112: * The realm name used when challenging the user for authentication
113: * credentials.
114: */
115: private String realmName = null;
116:
117: public String getRealmName() {
118: return (this .realmName);
119: }
120:
121: public void setRealmName(String realmName) {
122: this .realmName = realmName;
123: }
124:
125: // --------------------------------------------------------- Public Methods
126:
127: /**
128: * Return a String representation of this object.
129: */
130: public String toString() {
131:
132: StringBuffer sb = new StringBuffer("LoginConfig[");
133: sb.append("authMethod=");
134: sb.append(authMethod);
135: if (realmName != null) {
136: sb.append(", realmName=");
137: sb.append(realmName);
138: }
139: if (loginPage != null) {
140: sb.append(", loginPage=");
141: sb.append(loginPage);
142: }
143: if (errorPage != null) {
144: sb.append(", errorPage=");
145: sb.append(errorPage);
146: }
147: sb.append("]");
148: return (sb.toString());
149:
150: }
151:
152: }
|