/** * License Agreement for OpenSearchServer * * Copyright (C) 2013-2015 Emmanuel Keller / Jaeksoft * * http://www.open-search-server.com * * This file is part of OpenSearchServer. * * OpenSearchServer is free software: you can redistribute it and/or * modify it under the terms of the GNU General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. * * OpenSearchServer is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with OpenSearchServer. * If not, see <http://www.gnu.org/licenses/>. **/ package com.jaeksoft.searchlib.renderer.plugin; public enum AuthPluginEnum { NO_AUTH("No authentication", null, false), HTTP_HEADER("HTTP Header", AuthPluginHttpHeader.class, false), NTLM("NTLM", AuthPluginNtlm.class, false), NTLM_LOGIN("NTLM with login", AuthPluginNtlmLogin.class, true), INDEX_LOGIN("INDEX with login", AuthPluginIndexLogin.class, true), WAFFLE("WAFFLE/SSO", AuthPluginWaffle.class, false); public final String label; public final Class<? extends AuthPluginInterface> authPluginClass; private final boolean isLogout; private AuthPluginEnum(String label, Class<? extends AuthPluginInterface> authPluginClass, boolean isLogout) { this.label = label; this.authPluginClass = authPluginClass; this.isLogout = isLogout; } @Override public String toString() { return label; } public String getClassName() { if (authPluginClass == null) return null; return authPluginClass.getName(); } public boolean isLogout() { return isLogout; } public static AuthPluginEnum find(String nameOrClass) { if (nameOrClass == null || nameOrClass.length() == 0) return NO_AUTH; for (AuthPluginEnum type : values()) { if (type.name().equalsIgnoreCase(nameOrClass)) return type; if (type.authPluginClass != null) if (nameOrClass .equalsIgnoreCase(type.authPluginClass.getName())) return type; if (nameOrClass.equalsIgnoreCase(type.label)) return type; } return null; } }