Home | History | Annotate | Download | only in login
      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 
     18 package org.apache.harmony.javax.security.auth.login;
     19 
     20 import java.util.Collections;
     21 import java.util.Map;
     22 
     23 
     24 
     25 public class AppConfigurationEntry {
     26 
     27     // the login module options
     28     private final Map<String, ?> options;
     29 
     30     // the control flag
     31     private final AppConfigurationEntry.LoginModuleControlFlag controlFlag;
     32 
     33     // the login module name
     34     private final String loginModuleName;
     35 
     36     public AppConfigurationEntry(String loginModuleName,
     37             AppConfigurationEntry.LoginModuleControlFlag controlFlag, Map<String, ?> options) {
     38 
     39         if (loginModuleName == null || loginModuleName.length() == 0) {
     40             throw new IllegalArgumentException("auth.26"); //$NON-NLS-1$
     41         }
     42 
     43         if (controlFlag == null) {
     44             throw new IllegalArgumentException("auth.27"); //$NON-NLS-1$
     45         }
     46 
     47         if (options == null) {
     48             throw new IllegalArgumentException("auth.1A"); //$NON-NLS-1$
     49         }
     50 
     51         this.loginModuleName = loginModuleName;
     52         this.controlFlag = controlFlag;
     53         this.options = Collections.unmodifiableMap(options);
     54     }
     55 
     56     public String getLoginModuleName() {
     57         return loginModuleName;
     58     }
     59 
     60     public LoginModuleControlFlag getControlFlag() {
     61         return controlFlag;
     62     }
     63 
     64     public Map<java.lang.String, ?> getOptions() {
     65         return options;
     66     }
     67 
     68     public static class LoginModuleControlFlag {
     69 
     70         // the control flag
     71         private final String flag;
     72 
     73         public static final LoginModuleControlFlag REQUIRED = new LoginModuleControlFlag(
     74                 "LoginModuleControlFlag: required"); //$NON-NLS-1$
     75 
     76         public static final LoginModuleControlFlag REQUISITE = new LoginModuleControlFlag(
     77                 "LoginModuleControlFlag: requisite"); //$NON-NLS-1$
     78 
     79         public static final LoginModuleControlFlag OPTIONAL = new LoginModuleControlFlag(
     80                 "LoginModuleControlFlag: optional"); //$NON-NLS-1$
     81 
     82         public static final LoginModuleControlFlag SUFFICIENT = new LoginModuleControlFlag(
     83                 "LoginModuleControlFlag: sufficient"); //$NON-NLS-1$
     84 
     85         // Creates the LoginModuleControlFlag object with specified a flag
     86         private LoginModuleControlFlag(String flag) {
     87             this.flag = flag;
     88         }
     89 
     90         @Override
     91         public String toString() {
     92             return flag;
     93         }
     94     }
     95 }
     96