Clover coverage report - Acegi Security System for Spring - 1.0.0-RC1
Coverage timestamp: Mon Dec 5 2005 09:05:15 EST
file stats: LOC: 125   Methods: 10
NCLOC: 52   Classes: 1
 
 Source file Conditionals Statements Methods TOTAL
UsernamePasswordAuthenticationToken.java 100% 100% 100% 100%
coverage
 1    /* Copyright 2004, 2005 Acegi Technology Pty Limited
 2    *
 3    * Licensed under the Apache License, Version 2.0 (the "License");
 4    * you may not use this file except in compliance with the License.
 5    * You may obtain a copy of the License at
 6    *
 7    * http://www.apache.org/licenses/LICENSE-2.0
 8    *
 9    * Unless required by applicable law or agreed to in writing, software
 10    * distributed under the License is distributed on an "AS IS" BASIS,
 11    * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 12    * See the License for the specific language governing permissions and
 13    * limitations under the License.
 14    */
 15   
 16    package org.acegisecurity.providers;
 17   
 18    import org.acegisecurity.GrantedAuthority;
 19   
 20   
 21    /**
 22    * An {@link org.acegisecurity.Authentication} implementation that is
 23    * designed for simple presentation of a username and password.
 24    *
 25    * <p>
 26    * The <code>principal</code> and <code>credentials</code> should be set with
 27    * an <code>Object</code> that provides the respective property via its
 28    * <code>Object.toString()</code> method. The simplest such
 29    * <code>Object</code> to use is <code>String</code>.
 30    * </p>
 31    *
 32    * @author Ben Alex
 33    * @version $Id: UsernamePasswordAuthenticationToken.java,v 1.9 2005/11/17 00:55:49 benalex Exp $
 34    */
 35    public class UsernamePasswordAuthenticationToken
 36    extends AbstractAuthenticationToken {
 37    //~ Instance fields ========================================================
 38   
 39    private Object credentials;
 40    private Object details = null;
 41    private Object principal;
 42    private GrantedAuthority[] authorities;
 43    private boolean authenticated;
 44   
 45    //~ Constructors ===========================================================
 46   
 47    /**
 48    * This constructor can be safely used by any code that wishes to create a
 49    * <code>UsernamePasswordAuthenticationToken</code>, as the {@link
 50    * #isAuthenticated()} will return <code>false</code>.
 51    *
 52    * @param principal DOCUMENT ME!
 53    * @param credentials DOCUMENT ME!
 54    */
 55  116 public UsernamePasswordAuthenticationToken(Object principal,
 56    Object credentials) {
 57  116 this.principal = principal;
 58  116 this.credentials = credentials;
 59  116 this.authenticated = false;
 60    }
 61   
 62    /**
 63    * This constructor should only be used by
 64    * <code>AuthenticationManager</code> or
 65    * <code>AuthenticationProvider</code> implementations that are satisfied
 66    * with producing a trusted (ie {@link #isAuthenticated()} =
 67    * <code>true</code>) authentication token.
 68    *
 69    * @param principal
 70    * @param credentials
 71    * @param authorities
 72    */
 73  77 public UsernamePasswordAuthenticationToken(Object principal,
 74    Object credentials, GrantedAuthority[] authorities) {
 75  77 this.principal = principal;
 76  77 this.credentials = credentials;
 77  77 this.authorities = authorities;
 78  77 this.authenticated = true;
 79    }
 80   
 81  1 protected UsernamePasswordAuthenticationToken() {
 82  1 throw new IllegalArgumentException("Cannot use default constructor");
 83    }
 84   
 85    //~ Methods ================================================================
 86   
 87  5 public void setAuthenticated(boolean isAuthenticated)
 88    throws IllegalArgumentException {
 89  5 if (isAuthenticated) {
 90  1 throw new IllegalArgumentException(
 91    "Cannot set this token to trusted - use constructor containing GrantedAuthority[]s instead");
 92    }
 93   
 94  4 this.authenticated = isAuthenticated;
 95    }
 96   
 97  38 public boolean isAuthenticated() {
 98  38 return this.authenticated;
 99    }
 100   
 101  184 public GrantedAuthority[] getAuthorities() {
 102  184 return this.authorities;
 103    }
 104   
 105  83 public Object getCredentials() {
 106  83 return this.credentials;
 107    }
 108   
 109  37 public void setDetails(Object details) {
 110  37 this.details = details;
 111    }
 112   
 113    /**
 114    * Usually a {@link org.acegisecurity.ui.WebAuthenticationDetails}.
 115    *
 116    * @return the authentication request details, or <code>null</code>
 117    */
 118  44 public Object getDetails() {
 119  44 return details;
 120    }
 121   
 122  371 public Object getPrincipal() {
 123  371 return this.principal;
 124    }
 125    }