Keep informed?
Subscribe for our newsletter now!

Client-Jaas Anmeldung am JBoss

Sich programmatisch per JAAS beim JBoss anmelden ist gar nicht so einfach, daher habe ich hier kurz beschrieben, wie ich das realisiert habe.

Soll sich eine Anwendung über JAAS beim JBoss anmelden, sollte normalerweise eine jaas.conf existieren, mit etwa folgendem Inhalt:

ccs {
  	org.jboss.security.ClientLoginModule required;
};

Dies ist aber meist problematisch, da z.B. bei Webstart oder größeren Client-Installationen die Datei nicht über verschiedene Rechner verteilt werden soll. Dies kann nun aber auch programmatisch geschehen

package com.camunda.commons.ejb;

import java.util.HashMap;

import javax.security.auth.login.AppConfigurationEntry;
import javax.security.auth.login.Configuration;
import javax.security.auth.login.AppConfigurationEntry.LoginModuleControlFlag;

public class JaasJbossConfiguration extends Configuration {

       private static AppConfigurationEntry jbossEntry = new AppConfigurationEntry(
                       "org.jboss.security.ClientLoginModule",
                       LoginModuleControlFlag.REQUIRED,
                       new HashMap());

       public static void activateConfiguration() {
               Configuration.setConfiguration( new JaasJbossConfiguration() );
       }

       @Override
       public AppConfigurationEntry[] getAppConfigurationEntry(String name) {
               return new AppConfigurationEntry[] { jbossEntry };
       }

       @Override
       public void refresh() {
       }
}

Somit kann eine Anmeldung ganz einfach geschehen

     ...
     JaasJbossConfiguration.activateConfiguration();

     UsernamePasswordHandler handler = new UsernamePasswordHandler("ruecker", "xx");
     LoginContext lc = new LoginContext("ccs", handler);
     lc.login();
     ...

Der Name, der dem LoginContext übergeben wird entspricht dem in der JAAS-Konfiguration im JBoss. Soll sich eine Webanmeldung innerhalb des selben JBoss anmelden, braucht das “JaasJbossConfiguration.activateConfiguration();” nicht ausgeführt werden.

Already read?

Scientific performance benchmark of open source BPMN engines

Why BPMN is not enough

Decision Model and Notation (DMN) – the new Business Rules Standard. An introduction by example.

New Whitepaper: The Zero-Code BPM Myth

Leave a reply