帆软帮助文档代码合集。
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

60 lines
2.2 KiB

package com.fr;
import com.fr.decision.authority.data.User;
import com.fr.decision.webservice.exception.user.UserNotExistException;
import com.fr.decision.webservice.v10.login.LoginService;
import com.fr.decision.webservice.v10.login.TokenResource;
import com.fr.decision.webservice.v10.user.UserService;
import com.fr.log.FineLoggerFactory;
import com.fr.stable.StringUtils;
import com.fr.web.utils.WebUtils;
import java.io.IOException;
import javax.servlet.Filter;
import javax.servlet.FilterChain;
import javax.servlet.FilterConfig;
import javax.servlet.ServletException;
import javax.servlet.ServletRequest;
import javax.servlet.ServletResponse;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
public class FrLoginFilter implements Filter {
public FrLoginFilter() {
}
public void init(FilterConfig filterConfig) throws ServletException {
}
public void doFilter(ServletRequest servletRequest, ServletResponse servletResponse, FilterChain filterChain) throws IOException, ServletException {
HttpServletRequest req = (HttpServletRequest)servletRequest;
HttpServletResponse res = (HttpServletResponse)servletResponse;
String username = WebUtils.getHTTPRequestParameter(req, "username");
try {
if (StringUtils.isNotEmpty(username)) {
FineLoggerFactory.getLogger().error("username:" + username);
User user = UserService.getInstance().getUserByUserName(username);
if (user == null) {
throw new UserNotExistException();
}
String oldToken = TokenResource.COOKIE.getToken(req);
if (oldToken == null) {
String token = LoginService.getInstance().login(req, res, username);
req.setAttribute("fine_auth_token", token);
filterChain.doFilter(req, res);
} else {
filterChain.doFilter(req, res);
}
} else {
filterChain.doFilter(req, res);
}
} catch (Exception var10) {
FineLoggerFactory.getLogger().error(var10.getMessage(), var10);
}
}
public void destroy() {
}
}