本文整理汇总了Java中org.apache.shiro.web.subject.WebSubjectContext.getSession方法的典型用法代码示例。如果您正苦于以下问题:Java WebSubjectContext.getSession方法的具体用法?Java WebSubjectContext.getSession怎么用?Java WebSubjectContext.getSession使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类org.apache.shiro.web.subject.WebSubjectContext
的用法示例。
在下文中一共展示了WebSubjectContext.getSession方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Java代码示例。
示例1: createSubject
import org.apache.shiro.web.subject.WebSubjectContext; //导入方法依赖的package包/类
@Override
public Subject createSubject(SubjectContext context) {
WebSubjectContext wsc = (WebSubjectContext) context;
AuthenticationInfo info = wsc.getAuthenticationInfo();
AccountProfile profile = null;
AccountSubject subject = null;
if (info instanceof AccountAuthenticationInfo) {
profile = ((AccountAuthenticationInfo) info).getProfile();
subject = doCreate(wsc, profile);
subject.getSession(true).setAttribute("profile", profile);
}else{
Session session = wsc.getSession();
if(session != null){
profile = (AccountProfile)session.getAttribute("profile");
}
subject = doCreate(wsc, profile);
boolean isRemembered = subject.isRemembered();
if (session == null) {
wsc.setSessionCreationEnabled(true);
subject.getSession(true);
}
if (isRemembered && profile == null) {
Object username = subject.getPrincipal();
profile = userService.getProfileByName((String) username);
subject.getSession(true).setTimeout(30 * 60 * Consts.TIME_MIN);
subject.getSession(true).setAttribute("profile", profile);
}
}
return doCreate(wsc, profile);
}