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
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() { |
|
} |
|
} |