Extraer datos de usuario conectado mediante Java

cancel
Showing results for 
Search instead for 
Did you mean: 
emelbye
Active Member

Extraer datos de usuario conectado mediante Java

Hola….

Estoy creando una aplicación web con NetBeans (Proyecto llamado ReporteBC), básicamente tiene un reporte.jsp que levanta un reporte.jasper (creado con iReports), se conecta por CMIS al repositorio y genera un PDF…. Para implementarlo, copio el Reporte.war en la carpeta /alfresco/tomcat/webapps donde se encuentran los demás archivos .war (share, alfresco, awe, wcmqs)…

El acceso a esa web seria: http://127.0.0.1/ReporteBC/reporte.jsp    
Esto funciona perfecto. Me muestra el reporte con datos y gráficos extraídos del repositorio.

Todo esto no se si esta hecho de la mejor manera pero funciona. Me muestra el reporte, con datos y gráficos como debe ser.

Que es lo que necesito?…. Para tener un control, tengo que añadir al reporte la persona que genero el reporte. Agregarlo en el diseño del reporte no seria problema, calculo que seria agregar un parámetro y listo. Lo que no puedo hacer es extraer de la sesión de usuario logueado en alfresco su nombre.

Probé algo como lo siguiente, pero me retorna NULL.
String nombreDeUsuario = org.alfresco.repo.security.authentication.AuthenticationUtil.getFullyAuthenticatedUser();
// reporte.pasarParametro(nombreDeUsuario);

Hay alguna otra solución?… O por que me retorna NULL si estoy logueado en el afresco como 'admin'?

Otra cosa que probé fue copiar la pagina user_profile.jsp, o los tags que tiene de FirstName y Lastname en un jsp vacio. Pero no entiendo como funciona JSF. (Me tira muchos errores). Soy novato.

Muchas gracias…
2 Replies
cristinamr
Advanced

Re: Extraer datos de usuario conectado mediante Java

Buenas!!

Prueba con esto:

AuthorityService authorityService=serviceRegistry.getAuthorityService();
Set<String> auths = authorityService.getAuthoritiesForUser(username);

Pon esto a ver qué pinta en el catalina:

AuthorityService authorityService = serviceRegistry.getAuthorityService();
Set<String> auths = authorityService.getAuthoritiesForUser(username);
Iterator<String> authIt = auths.iterator();
while (authIt.hasNext()){
           System.out.println("- " + authIt.next());
}

Así sabrás si te lo rescata bien o no.

Prueba y nos comentas Smiley Wink

Un saludoooo!
--
VenziaIT: helping companies since 2005! Our ECM products: AQuA & Seidoc
emelbye
Active Member

Re: Extraer datos de usuario conectado mediante Java

Por el momento pude resolverlo, pero de otra manera.

Realize el ejemplo (http://docs.alfresco.com/4.0/topic/com.alfresco.enterprise.doc/concepts/surf_share_v4-tutorials.html)

En mi webview puedo ver el reporte
Creando el webscript webview.get.js

if (model.isDefault ==  true )   
{       
   model.webviewTitle =  "Reporte";   
   model.uri = "http://localhost:8080/reportebcsa/index.jsp?usr='+person.properties.userName;       
   model.isDefault =  false;  
}

Lo que me quedaria pendiente es como hacer para que si intentan ingresar a http://localhost:8080/reportebcsa/index.jsp directamente pueda verificar si estan logueados o no. Digamos, si no estan que aparezca el login de alfresco o directamente no los deje entrar.

Vi algunos ejemplos que usan algo parecido a http://docs.alfresco.com/4.0/topic/com.alfresco.enterprise.doc/tasks/tutorial-share-add-page.html
Y en vez de setearlo a modo Freemaker se pone jsp con el link relativo de la pagina que queremos agregar, pero no puedo darle en el clavo…

Alguna sugerencia?… Muchas gracias de nuevo!