I'm attempting to write my own plugin authentication module for activemq.  I
have created a bean that extends the broker plugin and register it with
activemq.xml " <bean
class="com.lmco.fltwinds.security.FltwindsAuthentication"/>".  it will fire
off the constructor with no problem but I want it to register the
userid/password (hard coded for now) with the activemq core so if
someone(user) is attempting to logon with invalid userid/password then it
will reject the connection request.  I will eventually pull the
userid/password from a database. 
1.  how do I get the userid/password into the security core through the
plugin without having to restart activemq
2.   how do I get the "installBroker" method to fire in my custom plugin.

Here is the plugin code I have created:
// Decompiled by Jad v1.5.8g. Copyright 2001 Pavel Kouznetsov.
// Jad home page: http://www.kpdus.com/jad.html
// Decompiler options: packimports(3) 
// Source File Name:   SimpleAuthenticationPlugin.java

package com.lmco.fltwinds.security;

import java.util.*;
import org.apache.activemq.broker.Broker;
import org.apache.activemq.broker.BrokerPlugin;
import org.apache.activemq.jaas.GroupPrincipal;
import org.apache.activemq.security.AuthenticationUser;
import org.apache.activemq.security.SimpleAuthenticationBroker;

// Referenced classes of package org.apache.activemq.security:
//            SimpleAuthenticationBroker, AuthenticationUser

public class FltwindsAuthentication
    implements BrokerPlugin
{

    public FltwindsAuthentication() {
        System.out.println("Hello world from my own plugin...:  Current time: "
+ new Date());
        AuthenticationUser user = new AuthenticationUser("SysAdm", "SysAdm",
"Groupa");
        List list = new ArrayList();
        list.add(user);
        setUsers(list);
    }
    
    public Broker installPlugin(Broker broker)
    {
        System.out.println("SDD install plugin");
        return new SimpleAuthenticationBroker(broker, userPasswords,
userGroups);
    }

    public Map getUserGroups()
    {
        return userGroups;
    }

    public void setUsers(List users)
    {
        userPasswords = new HashMap();
        userGroups = new HashMap();
        AuthenticationUser user;
        Set groups;
        for(Iterator it = users.iterator(); it.hasNext();
userGroups.put(user.getUsername(), groups))
        {
            user = (AuthenticationUser)it.next();
            userPasswords.put(user.getUsername(), user.getPassword());
            groups = new HashSet();
            String name;
            for(StringTokenizer iter = new StringTokenizer(user.getGroups(),
","); iter.hasMoreTokens(); groups.add(new GroupPrincipal(name)))
                name = iter.nextToken().trim();

        }

    }

    public void setUserGroups(Map userGroups)
    {
        this.userGroups = userGroups;
    }

    public Map getUserPasswords()
    {
        return userPasswords;
    }

    public void setUserPasswords(Map userPasswords)
    {
        this.userPasswords = userPasswords;
    }

    private Map userPasswords;
    private Map userGroups;
}

-- 
View this message in context: 
http://www.nabble.com/activemq-authentication-through-plugins-tp19398185p19398185.html
Sent from the ActiveMQ - User mailing list archive at Nabble.com.

Reply via email to