Java - Propagar contexto de seguridad en Jboss 5

 
Vista:

Propagar contexto de seguridad en Jboss 5

Publicado por jmromero (51 intervenciones) el 22/09/2010 10:06:46
Muy buenas.

Tengo una aplicación cliente/servidor con Jboss y varios EJB 2.1 de sesión sin estado.

Tengo sobrescrito la autentificación JAAS con mi propia clase LoginModule, y propago el contexto de seguridad propagando el principal autenticado hacia el stub del EJB, de la forma:



public class MyLoginModule extends ClientLoginModule {

...

public boolean login() throws LoginException {

...

String user = ...

String password = ...

MyPrincipal myprincipal = new MyPrincipal (user, password);

SecurityAssociation.setPrincipal((java.security.Principal) myprincipal);

SecurityAssociation.setCredential(password);

SecurityAssociation.setSubject(subject);

...




El objeto myprincipal lo tengo definido de la forma:

public class MyPrincipal extends SimplePrincipal implements Serializable {

...

public MyPrincipal (String user, String password)

{

super(user);

this.password = password;

}

...



De esta forma en el servidor puedo recojer el principal autenticado de la forma:

MyPrincipal myPrincipal= (MyPrincipal)this.sessionContext.getCallerPrincipal();



Pues bien todo esto me ha funcionado perfectamente con versiones de Jboss 4.X.X, de hecho la última que desplegué fue la 4.2.3. La aplicación funciona indistintamente con un cliente independiente ejecutado con un lanzador (.bat o .sh) o con web start.

He intentado actualizar a Jboss 5.1.0 y todo funciona perfectamente si ejecuto la aplicación con mi lanzador, pero cuando ejecuto con web start y recojo el principal autenticado en mi ejb, lo que obtengo es "anonymous".

He probado EJB 3, Jboss 6 y el problema persiste.

Consultando en foros decían que en mi clase LoginModule tenía que poner la línea:

SecurityAssociation.setServer();



Con esta línea el principal sólo llega al servidor para el primer objeto ejb que creo, para los siguientes que se crean llega "anonymous". Esto es indistinto con el lanzador y con web start.



¿Qué puede estar ocurriendo para que no se propague el contexto de seguridad con web start en Jboss 5.0.1?



Gracias.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder