GNU Classpath (0.18) | ||
Frames | No Frames |
1: /* AuthorizeCallback.java -- 2: Copyright (C) 2003, 2004 Free Software Foundation, Inc. 3: 4: This file is part of GNU Classpath. 5: 6: GNU Classpath is free software; you can redistribute it and/or modify 7: it under the terms of the GNU General Public License as published by 8: the Free Software Foundation; either version 2, or (at your option) 9: any later version. 10: 11: GNU Classpath is distributed in the hope that it will be useful, but 12: WITHOUT ANY WARRANTY; without even the implied warranty of 13: MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 14: General Public License for more details. 15: 16: You should have received a copy of the GNU General Public License 17: along with GNU Classpath; see the file COPYING. If not, write to the 18: Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 19: 02110-1301 USA. 20: 21: Linking this library statically or dynamically with other modules is 22: making a combined work based on this library. Thus, the terms and 23: conditions of the GNU General Public License cover the whole 24: combination. 25: 26: As a special exception, the copyright holders of this library give you 27: permission to link this library with independent modules to produce an 28: executable, regardless of the license terms of these independent 29: modules, and to copy and distribute the resulting executable under 30: terms of your choice, provided that you also meet, for each linked 31: independent module, the terms and conditions of the license of that 32: module. An independent module is a module which is not derived from 33: or based on this library. If you modify this library, you may extend 34: this exception to your version of the library, but you are not 35: obligated to do so. If you do not wish to do so, delete this 36: exception statement from your version. */ 37: 38: 39: package javax.security.sasl; 40: 41: import javax.security.auth.callback.Callback; 42: 43: /** 44: * This callback is used by {@link SaslServer} to determine whether one entity 45: * (identified by an authenticated authentication ID) can act on behalf of 46: * another entity (identified by an authorization ID). 47: */ 48: public class AuthorizeCallback implements Callback 49: { 50: 51: // Constants and variables 52: // ------------------------------------------------------------------------- 53: 54: /** @serial The (authenticated) authentication id to check. */ 55: private String authenticationID = null; 56: 57: /** @serial The authorization id to check. */ 58: private String authorizationID = null; 59: 60: /** 61: * @serial The id of the authorized entity. If null, the id of the authorized 62: * entity is authorizationID. 63: */ 64: private String authorizedID = null; 65: 66: /** 67: * @serial A flag indicating whether the authentication id is allowed to act 68: * on behalf of the authorization id. 69: */ 70: private boolean authorized = false; 71: 72: // Constructor(s) 73: // ------------------------------------------------------------------------- 74: 75: /** 76: * Constructs an instance of <code>AuthorizeCallback</code>. 77: * 78: * @param authnID the (authenticated) authentication ID. 79: * @param authzID the authorization ID. 80: */ 81: public AuthorizeCallback(String authnID, String authzID) 82: { 83: super(); 84: 85: this.authenticationID = authnID; 86: this.authorizationID = authzID; 87: } 88: 89: // Class methods 90: // ------------------------------------------------------------------------- 91: 92: // Instance methods 93: // ------------------------------------------------------------------------- 94: 95: /** 96: * Returns the authentication ID to check. 97: * 98: * @return the authentication ID to check 99: */ 100: public String getAuthenticationID() 101: { 102: return authenticationID; 103: } 104: 105: /** 106: * Returns the authorization ID to check. 107: * 108: * @return the authorization ID to check. 109: */ 110: public String getAuthorizationID() 111: { 112: return authorizationID; 113: } 114: 115: /** 116: * Determines if the identity represented by authentication ID is allowed to 117: * act on behalf of the authorization ID. 118: * 119: * @return <code>true</code> if authorization is allowed; <code>false</code> 120: * otherwise. 121: * @see #setAuthorized(boolean) 122: * @see #getAuthorizedID() 123: */ 124: public boolean isAuthorized() 125: { 126: return authorized; 127: } 128: 129: /** 130: * Sets if authorization is allowed or not. 131: * 132: * @param authorized <code>true</code> if authorization is allowed; 133: * <code>false</code> otherwise. 134: * @see #isAuthorized() 135: * @see #setAuthorizedID(String) 136: */ 137: public void setAuthorized(boolean authorized) 138: { 139: this.authorized = authorized; 140: } 141: 142: /** 143: * Returns the ID of the authorized user. 144: * 145: * @return the ID of the authorized user. <code>null</code> means the 146: * authorization failed. 147: * @see #setAuthorized(boolean) 148: * @see #setAuthorizedID(String) 149: */ 150: public String getAuthorizedID() 151: { 152: if (!authorized) 153: { 154: return null; 155: } 156: return (authorizedID != null ? authorizedID : authorizationID); 157: } 158: 159: /** 160: * Sets the ID of the authorized entity. Called by handler only when the ID 161: * is different from {@link #getAuthorizationID()}. For example, the ID might 162: * need to be canonicalized for the environment in which it will be used. 163: * 164: * @see #setAuthorized(boolean) 165: * @see #getAuthorizedID() 166: */ 167: public void setAuthorizedID(String id) 168: { 169: this.authorizedID = id; 170: } 171: }
GNU Classpath (0.18) |