Solved
Get Logged in username in AEM6.5
Hello All,
How can we get the logged in user name or id in AEM service impl ?
Hello All,
How can we get the logged in user name or id in AEM service impl ?
To get the logged-in user's name or ID in an AEM service impl .you can use the ResourceResolver and Request objects available in the service context.
Here's a code snippet demonstrating how to retrieve the logged-in user's information in an AEM service impl.
import org.apache.sling.api.resource.ResourceResolver;
import org.apache.sling.api.resource.ResourceResolverFactory;
import org.apache.sling.api.resource.LoginException;
import javax.jcr.Session;
@Component(immediate = true, service = YourService.class)
public class YourServiceImpl implements YourService {
@Reference
private ResourceResolverFactory resourceResolverFactory;
public void yourServiceMethod() {
ResourceResolver resolver = null;
try {
// Get the ResourceResolver
resolver = resourceResolverFactory.getServiceResourceResolver(null);
// Access the current user's session
Session session = resolver.adaptTo(Session.class);
if (session != null && session.isLive()) {
// Get the User object representing the logged-in user
org.apache.jackrabbit.api.security.user.User user = (org.apache.jackrabbit.api.security.user.User) session.getUserPrincipal();
// Retrieve user ID and name
String userId = user.getID();
String userName = user.getPrincipal().getName();
// Now you can use userId and userName as needed
// ...
}
} catch (LoginException e) {
// Handle login exception
} finally {
// Close the ResourceResolver when done to release resources
if (resolver != null && resolver.isLive()) {
resolver.close();
}
}
}
}
Enter your E-mail address. We'll send you an e-mail with instructions to reset your password.