001 /*
002 * Copyright (c) 2002-2005 the original author or authors.
003 *
004 * Licensed under the Apache License, Version 2.0 (the "License"); you may not
005 * use this file except in compliance with the License. You may obtain a copy of
006 * 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, WITHOUT
012 * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
013 * License for the specific language governing permissions and limitations under
014 * the License.
015 */
016 package org.springframework.richclient.security;
017
018 import org.springframework.security.Authentication;
019 import org.springframework.security.SpringSecurityException;
020
021 /**
022 * Event fired when an authentication attempt fails.
023 * <p>
024 * The source of this event is the <code>Authentication</code> token that resulted in
025 * the authentication failure. This event also carries the exception that indicated the
026 * failure, {@see #getCause()}.
027 *
028 * @author Larry Streepy
029 */
030 public class AuthenticationFailedEvent extends ClientSecurityEvent {
031
032 private SpringSecurityException cause;
033
034 /**
035 * Constructor. Use the given authentication token as the source of the event.
036 * @param authentication token
037 * @param cause The exception that caused the login failure
038 */
039 public AuthenticationFailedEvent(Authentication authentication, SpringSecurityException cause) {
040 super( authentication );
041 setCause( cause );
042 }
043
044 /**
045 * Get the exception that caused the login failure
046 * @return causing exception
047 */
048 public SpringSecurityException getCause() {
049 return cause;
050 }
051
052 /**
053 * Set the exception that caused this login failure.
054 * @param cause
055 */
056 public void setCause(SpringSecurityException cause) {
057 this.cause = cause;
058 }
059 }