forked from demo/example
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
60 lines
2.2 KiB
6 years ago
|
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() {
|
||
|
}
|
||
|
}
|