1 /** 2 * 3 * Copyright 2004 The Apache Software Foundation 4 * 5 * Licensed under the Apache License, Version 2.0 (the "License"); 6 * you may not use this file except in compliance with the License. 7 * You may obtain a copy of the License at 8 * 9 * http://www.apache.org/licenses/LICENSE-2.0 10 * 11 * Unless required by applicable law or agreed to in writing, software 12 * distributed under the License is distributed on an "AS IS" BASIS, 13 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 14 * See the License for the specific language governing permissions and 15 * limitations under the License. 16 */ 17 package org.apache.geronimo.security.deploy; 18 19 import java.beans.PropertyEditorManager; 20 21 import org.apache.geronimo.common.propertyeditor.PropertyEditorException; 22 import org.apache.geronimo.common.propertyeditor.TextPropertyEditorSupport; 23 24 25 /** 26 * @version $Rev: 355877 $ $Date: 2005-12-10 18:48:27 -0800 (Sat, 10 Dec 2005) $ 27 */ 28 public class LoginDomainPrincipalInfo extends PrincipalInfo { 29 30 static { 31 PropertyEditorManager.registerEditor(LoginDomainPrincipalInfo.class, LoginDomainPrincipalEditor.class); 32 } 33 34 public LoginDomainPrincipalInfo(String domainName, String className, String principalName, boolean designatedRunAs) { 35 super(className, principalName, designatedRunAs); 36 this.domainName = domainName; 37 } 38 39 private final String domainName; 40 41 public String getDomain() { 42 return domainName; 43 } 44 45 public static class LoginDomainPrincipalEditor extends TextPropertyEditorSupport { 46 47 public void setAsText(String text) { 48 if (text != null) { 49 String[] parts = text.split(","); 50 if (parts.length != 4) { 51 throw new PropertyEditorException("Principal should have the form 'domain,class,name,run-as'"); 52 } 53 LoginDomainPrincipalInfo principal = new LoginDomainPrincipalInfo(parts[0], parts[1], parts[2], Boolean.valueOf(parts[3]).booleanValue()); 54 setValue(principal); 55 } else { 56 setValue(null); 57 } 58 } 59 60 public String getAsText() { 61 LoginDomainPrincipalInfo principal = (LoginDomainPrincipalInfo) getValue(); 62 if (principal == null) { 63 return null; 64 } 65 return principal.getPrincipalName() + "," + principal.getClassName() + "," + principal.isDesignatedRunAs() + "," + principal.getDomain(); 66 } 67 } 68 }