Я написал управляемый bean-объект сессионной области для кэширования специфической информации о пользователях sesion в приложении domino xpages, как и следующие коды:
public class NBUserInfo {
private String fullUserName;
private String commonUserName;
private String displayName;
private String mailAddress;
private String themeType;
private String themeData;
private Session _session;
private Database _dbnames;
private Name _dominoName;
public NBUserInfo(){
System.out.println("初始化Managed Bean:NBUserInfo...");
_session = ExtLibUtil.getCurrentSession();
try {
System.out.println(_session.getEffectiveUserName());
_dbnames = _session.getDatabase(_session.getCurrentDatabase().getServer(), "names.nsf",false);
_dominoName = _session.createName(_session.getEffectiveUserName());
} catch (NotesException e) {
// TODO 自动生成 catch 块
e.printStackTrace();
}
}
public String getFullUserName() {
if(fullUserName==null)
try {
fullUserName = _dominoName.getCanonical();
} catch (NotesException e) {
// TODO 自动生成 catch 块
e.printStackTrace();
}
return fullUserName;
}
затем я объявил это в face-configчтобы сделать его сессионным bean-объектом:
<?xml version="1.0" encoding="UTF-8"?>
<faces-config>
<!--注册受管Beans-->
<managed-bean>
<managed-bean-name>NBUser</managed-bean-name>
<managed-bean-class>com.nbhdtech.common.NBUserInfo</managed-bean-class>
<managed-bean-scope>session</managed-bean-scope>
</managed-bean>
<!--注册自定义XPAGES根渲染器-->
<render-kit>
<renderer>
<component-family>javax.faces.ViewRoot</component-family>
<renderer-type>com.ibm.xsp.ViewRootEx</renderer-type>
<renderer-class>com.nbhdtech.xsp.CustomViewRootRenderer</renderer-class>
</renderer>
</render-kit>
<!--AUTOGEN-START-BUILDER:由 IBM Domino Designer 自动生成。请勿修改。-->
<!--AUTOGEN-END-BUILDER:自动生成的区段的末尾-->
</faces-config>
при тестировании bean-компонента, я использовал его через # {NBUser.fullUserName}, он не всегда возвращает пользователя из текущего сеансового контекста http домино, например, Я вошел в систему сначала пользователем "user1" и вышел из системы, затем вошел в систему как user2, бин, кажется, не воссоздан для нового сеанса user2, просто все еще информация о сеансе user1.
есть ли обходной путьоб этом?мое домино было настроено на LTPAToken SSO config.Большое спасибо, если есть какие-либо ответы об этом