Save This Page
Home » geronimo-2.2-source-release » org.apache.geronimo.security.deploy » [javadoc | source]
    1   /**
    2    *  Licensed to the Apache Software Foundation (ASF) under one or more
    3    *  contributor license agreements.  See the NOTICE file distributed with
    4    *  this work for additional information regarding copyright ownership.
    5    *  The ASF licenses this file to You under the Apache License, Version 2.0
    6    *  (the "License"); you may not use this file except in compliance with
    7    *  the License.  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: 545781 $ $Date: 2007-06-09 10:44:02 -0700 (Sat, 09 Jun 2007) $
   27    */
   28   public class RealmPrincipalInfo extends LoginDomainPrincipalInfo {
   29   
   30       static {
   31           PropertyEditorManager.registerEditor(RealmPrincipalInfo.class, RealmPrincipalEditor.class);
   32       }
   33   
   34       private final String realm;
   35   
   36       public RealmPrincipalInfo(String realm, String domainName, String className, String principalName) {
   37           super(domainName, className, principalName);
   38           this.realm = realm;
   39       }
   40   
   41       public String getRealm() {
   42           return realm;
   43       }
   44   
   45       public static class RealmPrincipalEditor 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 'realm,domain,class,name'");
   52                   }
   53                   RealmPrincipalInfo principal = new RealmPrincipalInfo(parts[0], parts[1], parts[2], parts[3]);
   54                   setValue(principal);
   55               } else {
   56                   setValue(null);
   57               }
   58           }
   59   
   60           public String getAsText() {
   61               RealmPrincipalInfo principal = (RealmPrincipalInfo) getValue();
   62               if (principal == null) {
   63                   return null;
   64               }
   65               // output from getAsText() should match with the input expected by setAsText()
   66               return principal.getRealm() + "," + principal.getDomain() + "," + principal.getClassName() + "," + principal.getPrincipalName();
   67           }
   68       }
   69   }

Save This Page
Home » geronimo-2.2-source-release » org.apache.geronimo.security.deploy » [javadoc | source]