#571 : add logger, modify conf path
This commit is contained in:
parent
723c9a2c83
commit
b4d31da4f1
1 changed files with 25 additions and 3 deletions
|
@ -15,6 +15,7 @@
|
|||
*/
|
||||
package org.codelibs.fess.filter;
|
||||
|
||||
import java.io.File;
|
||||
import java.io.IOException;
|
||||
import java.util.Enumeration;
|
||||
|
||||
|
@ -27,6 +28,7 @@ import javax.servlet.ServletRequest;
|
|||
import javax.servlet.ServletResponse;
|
||||
|
||||
import org.codelibs.core.exception.IORuntimeException;
|
||||
import org.codelibs.core.io.ResourceUtil;
|
||||
import org.codelibs.core.lang.StringUtil;
|
||||
import org.codelibs.fess.exception.FessSystemException;
|
||||
import org.codelibs.fess.exception.ServletRuntimeException;
|
||||
|
@ -34,6 +36,8 @@ import org.codelibs.fess.mylasta.action.FessUserBean;
|
|||
import org.codelibs.fess.util.ComponentUtil;
|
||||
import org.codelibs.spnego.SpnegoHttpFilter;
|
||||
import org.codelibs.spnego.SpnegoHttpServletRequest;
|
||||
import org.slf4j.Logger;
|
||||
import org.slf4j.LoggerFactory;
|
||||
|
||||
/**
|
||||
* SpnegoFilter supports Integrated Windows Authentication(SSO).
|
||||
|
@ -42,6 +46,8 @@ import org.codelibs.spnego.SpnegoHttpServletRequest;
|
|||
*/
|
||||
public class SpnegoFilter extends SpnegoHttpFilter {
|
||||
|
||||
private static final Logger logger = LoggerFactory.getLogger(SpnegoFilter.class);
|
||||
|
||||
@Override
|
||||
public void init(final FilterConfig filterConfig) throws ServletException {
|
||||
ComponentUtil.processAfterContainerInit(() -> {
|
||||
|
@ -70,12 +76,16 @@ public class SpnegoFilter extends SpnegoHttpFilter {
|
|||
if (Constants.KRB5_CONF.equals(name)) {
|
||||
final String krb5Conf = ComponentUtil.getFessConfig().getSpnegoKrb5Conf();
|
||||
if (StringUtil.isNotBlank(krb5Conf)) {
|
||||
return krb5Conf;
|
||||
final File file = ResourceUtil.getResourceAsFileNoException(krb5Conf);
|
||||
if (file != null) {
|
||||
return file.getAbsolutePath();
|
||||
}
|
||||
}
|
||||
} else if (Constants.LOGIN_CONF.equals(name)) {
|
||||
final String loginConf = ComponentUtil.getFessConfig().getSpnegoLoginConf();
|
||||
if (StringUtil.isNotBlank(loginConf)) {
|
||||
return loginConf;
|
||||
final File file = ResourceUtil.getResourceAsFileNoException(loginConf);
|
||||
if (file != null) {
|
||||
return file.getAbsolutePath();
|
||||
}
|
||||
} else if (Constants.PREAUTH_USERNAME.equals(name)) {
|
||||
final String username = ComponentUtil.getFessConfig().getSpnegoPreauthUsername();
|
||||
|
@ -106,9 +116,15 @@ public class SpnegoFilter extends SpnegoHttpFilter {
|
|||
ServletException {
|
||||
try {
|
||||
ComponentUtil.getRequestManager().findUserBean(FessUserBean.class).ifPresent(u -> {
|
||||
if (logger.isDebugEnabled()) {
|
||||
logger.debug("process your request as " + u.getUserId());
|
||||
}
|
||||
doFilter(() -> chain.doFilter(request, response));
|
||||
}).orElse(() -> {
|
||||
if (ComponentUtil.getFessConfig().isSsoEnabled()) {
|
||||
if (logger.isDebugEnabled()) {
|
||||
logger.debug("process authentication");
|
||||
}
|
||||
doFilter(() -> SpnegoFilter.super.doFilter(request, response, chain));
|
||||
} else {
|
||||
doFilter(() -> chain.doFilter(request, response));
|
||||
|
@ -125,10 +141,16 @@ public class SpnegoFilter extends SpnegoHttpFilter {
|
|||
protected void processRequest(final SpnegoHttpServletRequest request, final ServletResponse response, final FilterChain chain)
|
||||
throws IOException, ServletException {
|
||||
if (StringUtil.isNotBlank(request.getRemoteUser())) {
|
||||
if (logger.isDebugEnabled()) {
|
||||
logger.debug("log in as " + request.getRemoteUser());
|
||||
}
|
||||
// TODO save path and parameters into session
|
||||
final RequestDispatcher dispatcher = request.getRequestDispatcher(ComponentUtil.getFessConfig().getSsoLoginPath());
|
||||
dispatcher.forward(request, response);
|
||||
} else {
|
||||
if (logger.isDebugEnabled()) {
|
||||
logger.debug("this request is not logged in.");
|
||||
}
|
||||
chain.doFilter(request, response);
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Add table
Reference in a new issue