Получил это после некоторого покопания в Javadocs. Оказывается, я могу отключить MXSession от объекта сеанса запроса следующим образом:
Enumeration e = req.getSession().getAttributeNames();
String username = null;
while (e.hasMoreElements()) {
String attrName = (String) e.nextElement();
if (attrName.equals("MXSession")) {
MXSession session = (MXSession) req
.getSession()
.getAttribute("MXSession");
UserInfo user = session.getUserInfo();
if (user != null) {
username = user.getUserName().toLowerCase();
}
}
Пример проповедника также работает, но только если есть активный WebclientSession
, и для моего конкретного случая использования я хочу он также будет работать, если есть только OslcSession
, с которым не всегда связан WebclientSession
. Это решение работает в любом случае, поскольку MXSession
всегда доступен.