fix #847 move to request scope
This commit is contained in:
parent
ed4ed3e734
commit
d5e8d60cfc
1 changed files with 19 additions and 15 deletions
|
@ -88,6 +88,7 @@ public class RoleQueryHelper {
|
|||
public Set<String> build(final SearchRequestType searchRequestType) {
|
||||
final Set<String> roleSet = new HashSet<>();
|
||||
final HttpServletRequest request = LaRequestUtil.getOptionalRequest().orElse(null);
|
||||
final FessConfig fessConfig = ComponentUtil.getFessConfig();
|
||||
final boolean isApiRequest =
|
||||
!SearchRequestType.SEARCH.equals(searchRequestType) && !SearchRequestType.ADMIN_SEARCH.equals(searchRequestType);
|
||||
|
||||
|
@ -121,22 +122,25 @@ public class RoleQueryHelper {
|
|||
if (isApiRequest) {
|
||||
processAccessToken(request, roleSet);
|
||||
}
|
||||
}
|
||||
|
||||
final FessConfig fessConfig = ComponentUtil.getFessConfig();
|
||||
final RequestManager requestManager = ComponentUtil.getRequestManager();
|
||||
try {
|
||||
requestManager.findUserBean(FessUserBean.class)
|
||||
.ifPresent(fessUserBean -> stream(fessUserBean.getPermissions()).of(stream -> stream.forEach(roleSet::add)))
|
||||
.orElse(() -> {
|
||||
if (isApiRequest && ComponentUtil.getFessConfig().getApiAccessTokenRequiredAsBoolean()) {
|
||||
throw new InvalidAccessTokenException("invalid_token", "Access token is requried.");
|
||||
}
|
||||
roleSet.addAll(fessConfig.getSearchGuestPermissionList());
|
||||
});
|
||||
} catch (final RuntimeException e) {
|
||||
requestManager.findLoginManager(FessUserBean.class).ifPresent(manager -> manager.logout());
|
||||
throw e;
|
||||
final RequestManager requestManager = ComponentUtil.getRequestManager();
|
||||
try {
|
||||
requestManager.findUserBean(FessUserBean.class)
|
||||
.ifPresent(fessUserBean -> stream(fessUserBean.getPermissions()).of(stream -> stream.forEach(roleSet::add)))
|
||||
.orElse(() -> {
|
||||
if (isApiRequest && ComponentUtil.getFessConfig().getApiAccessTokenRequiredAsBoolean()) {
|
||||
throw new InvalidAccessTokenException("invalid_token", "Access token is requried.");
|
||||
}
|
||||
roleSet.addAll(fessConfig.getSearchGuestPermissionList());
|
||||
});
|
||||
} catch (final RuntimeException e) {
|
||||
try {
|
||||
requestManager.findLoginManager(FessUserBean.class).ifPresent(manager -> manager.logout());
|
||||
} catch (Exception e1) {
|
||||
// ignore
|
||||
}
|
||||
throw e;
|
||||
}
|
||||
}
|
||||
|
||||
if (defaultRoleList != null) {
|
||||
|
|
Loading…
Add table
Reference in a new issue