001 package org.crsh.auth; 002 003 import org.crsh.plugin.CRaSHPlugin; 004 import org.crsh.plugin.PluginContext; 005 import org.crsh.plugin.PropertyDescriptor; 006 007 import java.util.Arrays; 008 009 /** 010 * A simple authentication plugin based on user a username and password. 011 * 012 * @author <a href="mailto:julien.viet@exoplatform.com">Julien Viet</a> 013 */ 014 public class SimpleAuthenticationPlugin extends 015 CRaSHPlugin<AuthenticationPlugin> implements 016 AuthenticationPlugin { 017 018 /** The username. */ 019 public static final PropertyDescriptor<String> SIMPLE_USERNAME = 020 PropertyDescriptor.create( 021 "auth.simple.username", 022 "admin", 023 "The username"); 024 025 /** The password. */ 026 public static final PropertyDescriptor<String> SIMPLE_PASSWORD = 027 PropertyDescriptor.create( 028 "auth.simple.password", 029 "admin", 030 "The password"); 031 032 /** . */ 033 private String username; 034 035 /** . */ 036 private String password; 037 038 @Override 039 protected Iterable<PropertyDescriptor<?>> createConfigurationCapabilities() { 040 return Arrays.<PropertyDescriptor<?>>asList( 041 SIMPLE_USERNAME, 042 SIMPLE_PASSWORD); 043 } 044 045 @Override 046 public AuthenticationPlugin getImplementation() { 047 return this; 048 } 049 050 @Override 051 public void init() { 052 PluginContext context = getContext(); 053 this.username = context.getProperty(SIMPLE_USERNAME); 054 this.password = context.getProperty(SIMPLE_PASSWORD); 055 } 056 057 public String getName() { 058 return "simple"; 059 } 060 061 public boolean authenticate(String username, String password) 062 throws Exception { 063 return this.username != null && 064 this.password != null && 065 this.username.equals(username) && 066 this.password.equals(password); 067 } 068 }