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