Pregunta

¿Cuál es la mejor manera de lograr que el usuario actual registrado a través de la aplicación Java se ejecute en JBoss? La variable de entorno del sistema System.getProperty (" usuario.nombre ") no funciona porque JBoss se ejecuta como un servicio.

La aplicación se está ejecutando en una computadora portátil con Windows XP. La aplicación está basada en la web y se accede mediante Internet Explorer por un usuario registrado en Windows. Solo 1 usuario de Windows puede iniciar sesión a la vez. La aplicación necesita saber qué usuario ha iniciado sesión para realizar un menú basado en roles y funciones de seguridad. Entonces, tanto el cliente (Internet Explorer) como el servidor (JBoss) se ejecutan en la misma computadora portátil. Actualmente, determinamos el usuario que inició sesión utilizando tasklist / v y luego analizamos la salida para buscar ciertos procesos y el usuario que los ejecuta. Sin embargo, debe saber si existe una forma más limpia de obtener el usuario de Windows registrado.

¿Fue útil?

Solución

No creo que la pregunta realmente tenga mucho sentido. Es posible que haya no usuarios conectados al host, o puede haber varios usuarios.

Sería un tanto cauteloso con un diseño que realmente quisiera saber esto de todos modos: las aplicaciones web no deberían estar realmente interesadas en ese tipo de cosas, OMI. ¿Qué intentas hacer?

Otros consejos

Esto supone que ha almacenado una variable de entorno llamada USERNAME cuando el usuario inició sesión:

String username = System.getenv("USERNAME");

O, si desea el conjunto completo de variables de entorno:

Map<String, String> envMap = System.getenv();

Luego itere a través del mapa para obtener una variable de entorno en la que está almacenando un nombre de usuario.

Map<String, String> envMap = System.getenv();
int mapsize = envMap.size();
Iterator i = envMap.entrySet().iterator();
for (int j = 0; j < mapsize; j++) {
    Map.Entry entry = (Map.Entry) i.next();
    Object key = entry.getKey();
    Object value = entry.getValue();
}

Utilice la autenticación JAAS. Debería poder usar NTLM en Windows, para que el usuario no tenga que hacer ningún trabajo adicional. Luego, en el servidor, puede usar el contexto de seguridad para obtener la llamada principal.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top