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    }