[Building Sakai] Retrieving current user from session

Sergio Muriel sergioame at hotmail.com
Tue Jul 29 10:48:49 PDT 2014


Oh! So, do you mean I cannot get the current user (or the current session) only by asking for them like this:
sessionManager.getCurrentSession();userDirectoryService.getCurrentUser();
without having any log in code, and even if I have the same JSESSIONID all the time , and even if I've previously logged into Sakai using the same browser instance I'm using in my JSP page??
I don't have any log in code! I have an application that wants to read something from Sakai, and as it is a web application I just wanted to make sure the user is someone that is authentic and authorized into Sakai. I don't want the user to log in again in a separated form that asks for the same user and password he/she has already submitted for Sakai.
Then, do you think is there any way to do this?


Best Regards,

Sergio Muriel


Date: Tue, 29 Jul 2014 21:31:33 +1000
Subject: Re: [Building Sakai] Retrieving current user from session
From: steve.swinsburg at gmail.com
To: sergioame at hotmail.com
CC: sakai-dev at collab.sakaiproject.org

What does the login code look like? If you have established a session previously you can pass the returned sessionid along to subsequent requests (just like how SakaiScript does it). You can't rely on the session to be passed in for you like you can with a browser because there is no session/cookie management in a stateless request such as this.


cheers,
Steve


On Tue, Jul 29, 2014 at 8:13 AM, Sergio Muriel <sergioame at hotmail.com> wrote:




Yes, I'm writing a web service, that's why I named my class 'MyWebService'.

I log in to this particular bit of code through a Web Service Consumer called from a JSP page.



Best Regards,

Sergio Muriel
Date: Mon, 28 Jul 2014 08:19:12 +1000
Subject: RE: [Building Sakai] Retrieving current user from session
From: steve.swinsburg at gmail.com

To: sergioame at hotmail.com
CC: ottenhoff at longsight.com; sakai-dev at collab.sakaiproject.org


Yes that is correct for the component manager. Note you are using axis though,  are you writing a Web service? How are you logging in to this particular bit of code?
sent from my mobile device
On 25/07/2014 2:50 AM, "Sergio Muriel" <sergioame at hotmail.com> wrote:




Dear Steve,I don't really know what you mean by your question.This is how I think I'm pulling dependency from the component manager:
public class MyWebService {


	private SessionManager sessionManager;	private SiteService siteService;	private UserDirectoryService userDirectoryService;

	private DeveloperHelperService developerHelperService;
	public MyWebService() {		sessionManager = (SessionManager) ComponentManager.get(SessionManager.class.getName());

		siteService = (SiteService) ComponentManager.get(SiteService.class.getName());		userDirectoryService = (UserDirectoryService) ComponentManager.get(UserDirectoryService.class.getName());

		developerHelperService = (DeveloperHelperService) ComponentManager.get(DeveloperHelperService.class);	}


	private Session myMethod() throws AxisFault {		Session session = sessionManager.getCurrentSession(); // this gives me the Sakai session

		User currentUser = userDirectoryService.getCurrentUser(); // this gives me a User object but it has null or empty properties, no matter if I'm logged into Sakai or not. 


...... etc}
I really appreciate any help.

Best Regards,

Sergio Muriel

Date: Thu, 24 Jul 2014 09:19:12 +1000
Subject: Re: [Building Sakai] Retrieving current user from session
From: steve.swinsburg at gmail.com


To: sergioame at hotmail.com
CC: sakai-dev at collab.sakaiproject.org; ottenhoff at longsight.com



The issue is your dependency injection. Either use spring to inject the dependency or use the component manager to pull the dependency in.
What is your code for setting the saki api's?
Cheers

Steve
sent from my mobile device
On 23/07/2014 9:01 AM, "Sergio Muriel" <sergioame at hotmail.com> wrote:




Dear Sam,I'm having a org.sakaiproject.user.api.User object, but when I fetch it into, like this:



			User currentUser = userDirectoryService.getCurrentUser();			System.out.println("*** User.getFirstName(): " + currentUser.getFirstName());			


			System.out.println("*** User.getDisplayId(): " + currentUser.getDisplayId());			System.out.println("*** User.getDisplayName(): " + currentUser.getDisplayName());


			System.out.println("*** User.getEid(): " + currentUser.getEid());			System.out.println("*** User.getEmail(): " + currentUser.getEmail());


			System.out.println("*** User.getFirstName(): " + currentUser.getFirstName());			System.out.println("*** User.getId(): " + currentUser.getId());


			System.out.println("*** User.getLastName(): " + currentUser.getLastName());			System.out.println("*** User.getSortName(): " + currentUser.getSortName());


			System.out.println("*** User.getType(): " + currentUser.getType());			System.out.println("*** User.getUrl(): " + currentUser.getUrl());	



I get:
*** User.getFirstName(): *** User.getDisplayId(): null


*** User.getDisplayName(): null*** User.getEid(): null*** User.getEmail(): *** User.getFirstName(): *** User.getId(): *** User.getLastName(): *** User.getSortName(): null


*** User.getType(): null*** User.getUrl(): http://localhost:8080/access/user
And this is actually the information that I have in the database:



USER_ID;EMAIL;EMAIL_LC;FIRST_NAME;LAST_NAME;TYPE;PW;CREATEDBY;MODIFIEDBY;CREATEDON;MODIFIEDON849c5404-47ea-418e-bb6e-3a7ca8d760b6;sergioame at hotmail dot com;sergioame at hotmail dot com;Sergio;Muriel;Web Services Accessor;cceylQ==:hNIh42AwPO6m39+Ucnp+BvJgBhEm/jt1hf9OWUiOBoU=;admin;admin;2014-05-06 16:42:38;2014-05-06 16:42:38



And this is actually what Sakai shows me:My Account Details

User


User Idsergioame at hotmail dot com


First NameSergioLast Name


MurielEmailsergioame at hotmail dot com


TypeWeb Services Accessor


Created BySakai Administrator


CreatedMay 6, 2014 4:42 pmModified By


Sakai AdministratorModifiedMay 6, 2014 4:42 pm




Do you have any clue about what could be going on with that object? I'm testing it using the same browser but different tabs: One for logging into Sakai, and the other for calls the web service. Am I doing it right?



I appreciate any help.


Best Regards,

Sergio Muriel


From: ottenhoff at longsight.com
Date: Tue, 22 Jul 2014 16:51:16 -0400

Subject: Re: [Building Sakai] Retrieving current user from session
To: sergioame at hotmail.com
CC: sakai-dev at collab.sakaiproject.org




/** * Get a user's email address based on their session id * * @param   sessionid       the session id of the user who's email address you wish to retrieve




 * @return                  the email address for the user  * @throws  AxisFault * */public String getUserEmailForSession( String sessionid ) throws AxisFault{




    Session session = establishSession(sessionid);    User user = userDirectoryService.getCurrentUser();    return user.getEmail();}




On Tue, Jul 22, 2014 at 4:44 PM, Sergio Muriel <sergioame at hotmail.com> wrote:








Dear All,Does anyone have a good working example of a web service in which the current user is retrieved from the current session?Please note that what I need to retrieve is an object of the class: 




org.sakaiproject.user.api.User
Best Regards,

Sergio Muriel
 		 	   		  

_______________________________________________

sakai-dev mailing list

sakai-dev at collab.sakaiproject.org

http://collab.sakaiproject.org/mailman/listinfo/sakai-dev



TO UNSUBSCRIBE: send email to sakai-dev-unsubscribe at collab.sakaiproject.org with a subject of "unsubscribe"




 		 	   		  

_______________________________________________

sakai-dev mailing list

sakai-dev at collab.sakaiproject.org

http://collab.sakaiproject.org/mailman/listinfo/sakai-dev



TO UNSUBSCRIBE: send email to sakai-dev-unsubscribe at collab.sakaiproject.org with a subject of "unsubscribe"


 		 	   		  
 		 	   		  

 		 	   		  
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://collab.sakaiproject.org/pipermail/sakai-dev/attachments/20140729/45b0d46e/attachment.html 


More information about the sakai-dev mailing list