。这是因为Liferay使用了自己的用户认证和授权系统,而不是依赖于Tomcat的基本身份验证。在这种情况下,Liferay会使用自己的用户存储库来验证用户的身份,并且不会直接从tomcat-users.xml文件中获取用户名。
要解决这个问题,可以通过Liferay提供的API来获取登录的用户名。以下是一种可能的解决方案:
import com.liferay.portal.kernel.util.PortalUtil;
// 获取当前登录的用户ID
long userId = PortalUtil.getUserId(request);
// 根据用户ID获取用户对象
User user = UserLocalServiceUtil.getUserById(userId);
// 获取用户的用户名
String username = user.getScreenName();
需要注意的是,上述代码假设您已经在Liferay的自定义登录端点中进行了身份验证,并且已经获取到了HttpServletRequest对象。如果您需要在其他地方获取登录的用户名,可以根据具体情况进行相应的调整。
此外,Liferay还提供了丰富的API和功能,用于管理用户、角色、权限等。您可以参考Liferay的官方文档以获取更多关于用户认证和授权的信息:
Liferay官方文档:https://help.liferay.com/hc/en-us/articles/360029147511-User-Authentication-and-Authorization
领取专属 10元无门槛券
手把手带您无忧上云