From 1fc571e228fd4d483fa82c74c6ea059c7adbfde7 Mon Sep 17 00:00:00 2001 From: Manuel Traut Date: Sat, 21 Nov 2009 19:13:19 +0100 Subject: Auth: fixed Authentication handling - on server side, iterate through registrated auth plugins for any request - auth pg sql plugin, moved parts of old rmi based code, to new corba layout - remove of plugins not implemented yet - changing user details not implemented yet Signed-off-by: Manuel Traut --- src/YalpServer/AuthPluginHandler.java | 58 +++++++++++++++++++++++++++++++++++ 1 file changed, 58 insertions(+) create mode 100644 src/YalpServer/AuthPluginHandler.java (limited to 'src/YalpServer/AuthPluginHandler.java') diff --git a/src/YalpServer/AuthPluginHandler.java b/src/YalpServer/AuthPluginHandler.java new file mode 100644 index 0000000..1011b69 --- /dev/null +++ b/src/YalpServer/AuthPluginHandler.java @@ -0,0 +1,58 @@ +package YalpServer; + +import java.util.ArrayList; + +import org.apache.log4j.Logger; +import org.apache.log4j.PropertyConfigurator; + +import YalpInterfaces.*; + +public class AuthPluginHandler { + + private ArrayList plugins; + private static int auth_ids = 0; + + private String log4jFile = "log4j_server.conf"; + + private static Logger logger = + Logger.getLogger("Yalp.Server.AuthPluginHandler"); + + public AuthPluginHandler() { + PropertyConfigurator.configureAndWatch(log4jFile); + logger.debug("AuthPluginHandler()"); + plugins = new ArrayList(); + } + + public PluginInfo addPlugin(AuthPlugin plugin) + { + logger.debug("addPlugin("+plugin.info.name+")"); + plugin.info.id = auth_ids++; + plugins.add(plugin); + return plugin.info; + } + + Session logon( String userName, + String password, + String ipAddress, + SessionHolder session, + YalpErrorHolder err ) + { + YalpUserHolder user = new YalpUserHolder(); + PluginInfo[] p = {}; + + for (AuthPlugin plugin : plugins) + { + plugin.itf.userVerify(userName, password, err, user); + if (err.value.code == YalpErrorCode.OK) + { + session.value = new Session (auth_ids++, user.value, ipAddress, p); + return session.value; + } + } + + /* user not accepted return dummy objects (null causes segfault in corba) */ + YalpUser no_user = new YalpUser(-1, "", "", AccessRights.DENY); + Session s = new Session (-1, no_user, "0.0.0.0", p); + return s; + } +} -- cgit v1.2.3