fix role query
This commit is contained in:
parent
ba4ece2f5d
commit
7f2e6eb3cb
1 changed files with 15 additions and 12 deletions
|
@ -15,6 +15,7 @@
|
|||
*/
|
||||
package org.codelibs.fess.helper.impl;
|
||||
|
||||
import java.io.IOException;
|
||||
import java.io.Serializable;
|
||||
import java.util.Collections;
|
||||
import java.util.HashMap;
|
||||
|
@ -22,17 +23,20 @@ import java.util.HashSet;
|
|||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.Set;
|
||||
import java.util.Base64;
|
||||
import java.util.Optional;
|
||||
|
||||
import javax.servlet.http.Cookie;
|
||||
import javax.servlet.http.HttpServletRequest;
|
||||
import javax.servlet.http.HttpSession;
|
||||
|
||||
import org.codelibs.core.crypto.CachedCipher;
|
||||
import org.codelibs.core.lang.StringUtil;
|
||||
import org.codelibs.fess.Constants;
|
||||
import org.codelibs.fess.entity.LoginInfo;
|
||||
import org.codelibs.fess.app.web.base.login.FessLoginAssist;
|
||||
import org.codelibs.fess.helper.RoleQueryHelper;
|
||||
import org.codelibs.fess.helper.SystemHelper;
|
||||
import org.codelibs.fess.util.ComponentUtil;
|
||||
import org.codelibs.fess.util.StreamUtil;
|
||||
import org.lastaflute.web.util.LaRequestUtil;
|
||||
import org.slf4j.Logger;
|
||||
import org.slf4j.LoggerFactory;
|
||||
|
@ -103,16 +107,15 @@ public class RoleQueryHelperImpl implements RoleQueryHelper, Serializable {
|
|||
roleList.addAll(buildByCookieNameMapping(request));
|
||||
}
|
||||
|
||||
// JAAS roles
|
||||
if (request != null) {
|
||||
final HttpSession session = request.getSession(false);
|
||||
if (session != null) {
|
||||
final LoginInfo loginInfo = (LoginInfo) session.getAttribute(Constants.USER_INFO);
|
||||
if (loginInfo != null) {
|
||||
roleList.addAll(loginInfo.getRoleSet());
|
||||
}
|
||||
}
|
||||
}
|
||||
final FessLoginAssist fessLoginAssist = ComponentUtil.getComponent(FessLoginAssist.class);
|
||||
fessLoginAssist.getSessionUserBean().ifPresent(
|
||||
fessUserBean -> StreamUtil.of(fessUserBean.getRoles()).map(role -> Base64.getDecoder().decode(role)).map(role -> {
|
||||
try {
|
||||
return Optional.of(new String(role, Constants.UTF_8));
|
||||
} catch (IOException e) {
|
||||
return null;
|
||||
}
|
||||
}).forEach(role -> role.ifPresent(roleList::add)));
|
||||
|
||||
if (defaultRoleList != null) {
|
||||
roleList.addAll(defaultRoleList);
|
||||
|
|
Loading…
Add table
Reference in a new issue