对比新文件 |
| | |
| | | package com.gk.firework.Config.Oauth2; |
| | | |
| | | |
| | | import com.gk.firework.Domain.Utils.Constants; |
| | | import org.springframework.beans.BeansException; |
| | | import org.springframework.context.ApplicationContext; |
| | | import org.springframework.context.ApplicationContextAware; |
| | | import org.springframework.security.web.util.matcher.AntPathRequestMatcher; |
| | | import org.springframework.security.web.util.matcher.OrRequestMatcher; |
| | | import org.springframework.security.web.util.matcher.RequestMatcher; |
| | | import org.springframework.stereotype.Component; |
| | | import org.springframework.web.filter.GenericFilterBean; |
| | | |
| | | import javax.servlet.FilterChain; |
| | | import javax.servlet.ServletException; |
| | | import javax.servlet.ServletRequest; |
| | | import javax.servlet.ServletResponse; |
| | | import javax.servlet.http.HttpServletRequest; |
| | | import javax.servlet.http.HttpServletResponse; |
| | | import java.io.IOException; |
| | | import java.util.Optional; |
| | | |
| | | /** |
| | | * 添加用户授权统一过滤【对登录类型支持】 |
| | | * |
| | | * @author zhangby |
| | | * @date 2019-04-09 16:41 |
| | | */ |
| | | @Component |
| | | public class LoginAuthenticationFilter extends GenericFilterBean implements ApplicationContextAware { |
| | | |
| | | private static final String OAUTH_TOKEN_URL = "/oauth/token"; |
| | | |
| | | private RequestMatcher requestMatcher; |
| | | |
| | | public LoginAuthenticationFilter(){ |
| | | this.requestMatcher = new OrRequestMatcher( |
| | | new AntPathRequestMatcher(OAUTH_TOKEN_URL, "GET"), |
| | | new AntPathRequestMatcher(OAUTH_TOKEN_URL, "POST") |
| | | ); |
| | | } |
| | | |
| | | /** |
| | | * 过滤拦截 |
| | | * @param servletRequest |
| | | * @param servletResponse |
| | | * @param filterChain |
| | | * @throws IOException |
| | | * @throws ServletException |
| | | */ |
| | | @Override |
| | | public void doFilter(ServletRequest servletRequest, ServletResponse servletResponse, FilterChain filterChain) throws IOException, ServletException { |
| | | |
| | | HttpServletRequest request = (HttpServletRequest) servletRequest; |
| | | HttpServletResponse response = (HttpServletResponse) servletResponse; |
| | | |
| | | if(requestMatcher.matches(request)){ |
| | | try{ |
| | | //设置集成登录信息 |
| | | String auth_type = request.getParameter("auth_type"); |
| | | System.setProperty(Constants.AUTH_TYPE, Optional.ofNullable(auth_type).orElse("")); |
| | | //预处理 |
| | | filterChain.doFilter(request,response); |
| | | //后置处理 |
| | | }finally { |
| | | System.clearProperty(Constants.AUTH_TYPE); |
| | | } |
| | | }else{ |
| | | filterChain.doFilter(request,response); |
| | | } |
| | | } |
| | | |
| | | @Override |
| | | public void setApplicationContext(ApplicationContext applicationContext) throws BeansException { |
| | | |
| | | } |
| | | } |